SYSTEM: ONLINE SESSION: ACTIVE PAGE: 138/143 DATE: 2026-04-22

APP REVIEW — NYC ParkTime v1.0.0 ECE5545 · Random App Attack Assignment #3

LOADED_SRC: HTTPS://PRODUCINGTECHNOLOGY.COM/65-APPS/WUSAMANTHA_186170_15200392_NYC_PARKTIME_WHIMSICAL.HTML
01 · App Summary

NYC ParkTime v1.0.0 is a JSON-driven park recommendation web app described as "a cozy little park companion." It loads park data from a producingtechnology.com JSON URL (or falls back to bundled sample data), then filters and ranks NYC parks based on the user's activity preferences, crowd tolerance, and preferred temperature range — helping users find the best park and visiting window for their personal vibe.

The app is organized into four key areas:

  • Input Panel (top): A JSON URL input field with a Load JSON button and a Use bundled sample fallback option. Filter dropdowns for Borough, Activity, and Crowd mood allow users to narrow recommendations before loading.
  • App Snapshot (left sidebar): Displays app metadata — name, version (1.0.0), number of parks loaded (2), and last updated date (2026-02-25).
  • Your Earthy Vibe (left sidebar): Shows the user's inferred preference profile — activities (running, reading, outdoor workouts), park preference (prefers calm parks), and temperature range (60–75°F).
  • Park Recommendations (main panel): Displays ranked park cards side-by-side. Each card shows the park name, borough badge, fit score, feature tags (e.g., running trails, lakes, concerts), best time to visit with a natural-language reason, and a crowd rhythm breakdown (slot, weekday, park ID). The two sample parks — Central Park (Manhattan) and Prospect Park (Brooklyn) — both received a fit score of 20.
  • How Ranking Works (left sidebar): Transparently explains the scoring algorithm: +35 for matching activity, +25 for low-crowd alignment, +20 for weather/comfort reasoning, and +10 for preference profile match.
JSON-Driven Park Recommendations Fit Score Ranking Bundled Fallback Crowd Rhythm Whimsical · Earthy · Functional
02 · Observed Behavior
  • On load, the app automatically fetches the bundled sample data and displays a confirmation message: "Loaded 2 parks from the bundled sample." The UI populates immediately without any manual interaction.
  • Two park recommendation cards render side-by-side — Central Park and Prospect Park — each with borough tags, fit scores, feature pill tags, a "Best Time to Visit" section with a seasonal recommendation and a natural-language reason, and a crowd rhythm data block.
  • Both parks received identical fit scores of 20, with the same "Good because: comfort-forward timing" rationale, suggesting the scoring algorithm treated them equally given the sample data and default filters.
  • The "Your Earthy Vibe" sidebar correctly reflects a pre-set user preference profile (running, reading, outdoor workouts, calm parks, 60–75°F), pulled from the bundled JSON data.
  • The "How Ranking Works" sidebar clearly explains the point system, making the recommendation logic transparent and educational.
  • A footnote at the bottom of the page explains: "This single-file app attempts to fetch your producingtechnology JSON, and if that fails, it can still mock the experience with the bundled sample data." — confirming the graceful fallback design.
03 · Issues & Unexpected Behavior
  • Both parks received the exact same fit score of 20 and the same ranking rationale ("Good because: comfort-forward timing"), making the ranking appear meaningless. A useful recommendation system should differentiate between options — tied scores give the user no actionable guidance on which park to choose.
  • The sample dataset only contains 2 parks, which is far too small to demonstrate meaningful filtering or ranking. With only two results, the Borough, Activity, and Crowd mood filters have no visible effect on narrowing down choices.
  • Central Park's card does not show a "Best Time to Visit" section in the visible area of screenshot 2, while Prospect Park does — suggesting the layout may be inconsistently rendering sections across park cards, or Central Park's data is missing that field.
  • The user preference profile ("Your Earthy Vibe") appears to be hardcoded into the bundled JSON rather than something the user can actually set or adjust in the UI. There are no input controls to change activities, temperature preference, or crowd tolerance — the filters only cover Borough, Activity, and Crowd mood at load time.
  • The "Updated" date in the App Snapshot shows 2026-02-25, which is a static hardcoded value from the JSON file rather than dynamically reflecting when the data was actually last refreshed.
  • There is no map view or geographic context for the recommended parks. For a location-based NYC park app, the absence of a map makes it harder to understand spatial relationships between parks and the user's location.
04 · Prompt to Improve the App
Improve this NYC ParkTime single-page JSON park recommendation app with the following changes: 1. FIX THE SCORING DIFFERENTIATION: Revise the fit score algorithm so that parks receive meaningfully different scores based on how well they match the user's filters. If two parks tie on every criterion, add a tiebreaker (e.g., crowd level preference or temperature match) so recommendations are always ranked, not tied. 2. EXPAND THE DATASET: Include at least 6–8 NYC parks in the bundled sample data (e.g., Riverside Park, Flushing Meadows, Prospect Park, The High Line, Battery Park, Fort Tryon Park) so that the Borough, Activity, and Crowd mood filters have a visible effect on narrowing down results. 3. USER-EDITABLE PREFERENCES: Add an interactive "Your Vibe" form in the sidebar where users can select their preferred activities (checkboxes), crowd tolerance (slider: quiet → lively), and temperature range (range input). Re-rank the park cards live whenever preferences change. 4. CONSISTENT CARD LAYOUT: Ensure every park card always renders the same sections in the same order — Features, Best Time to Visit, and Crowd Rhythm — even if some JSON fields are missing. Show a "N/A" placeholder rather than omitting a section entirely. 5. DYNAMIC UPDATED DATE: Replace the hardcoded "Updated" date in the App Snapshot with the actual current date using JavaScript (new Date().toLocaleDateString()), or derive it from the most recently modified park entry in the loaded JSON. 6. ADD A MAP VIEW: Embed a simple static map (using OpenStreetMap or a lightweight SVG NYC borough map) that pins each recommended park's approximate location, so users can understand the geographic context of each recommendation alongside the card details.