Skip to content

feat: add Freedom Trail with trailheads and parking/restroom amenities#450

Merged
fatherlinux merged 1 commit into
masterfrom
feature/freedom-trail
May 29, 2026
Merged

feat: add Freedom Trail with trailheads and parking/restroom amenities#450
fatherlinux merged 1 commit into
masterfrom
feature/freedom-trail

Conversation

@fatherlinux
Copy link
Copy Markdown
Member

Summary

  • Add the Summit Metro Parks Freedom Trail (Akron, OH) as a linear trail-role POI, rendered from pois.geometry (OpenStreetMap-derived, ODbL 1.0). ~8.1 mi, Canal District → Kent.
  • Add its 8 official trailheads/access points as point POIs (Middlebury, Lions Park, Erie Road, Osceola Avenue, Arlington, Adams Park, Perkins Street, University of Akron).
  • Add has_parking / has_restrooms amenity flags to pois (mirroring is_ada_accessible / is_bike_friendly):
    • returned by all POI / linear-feature SELECT lists
    • editable on any POI via the sidebar edit form + the three admin write paths (PUT /pois, PUT /destinations, POST /destinations)
    • shown in the Visitor Information section
    • trailheads marked per the Summit Metro Parks Freedom Trail map (parking: Middlebury, Lions Park, Erie Road, Arlington, University of Akron; restrooms: Lions Park)

Implementation

  • New migration 073_add_freedom_trail.sql — idempotent; adds columns, trail POI + inline geometry, and trailheads. Runs automatically on every container start/deploy.
  • Reuses the existing trail role + linear-feature rendering (same path as river POIs); no new map code.

Test plan

  • ./run.sh build passes
  • ./run.sh test passes (Gourmand 0 violations)
  • Verified locally: trail line renders, 7 trailheads display, Parking/Restrooms in Visitor Information, edit-mode checkboxes persist
  • Verify on production after deploy

Code review

Gatehouse: 1 medium advisory — pre-existing POI SELECT-clause duplication across endpoints. Justified as out-of-scope (the duplication predates this PR; centralizing it would touch unrelated read endpoints). Tracked for a separate refactor.

🤖 Generated with Claude Code

Add the Summit Metro Parks Freedom Trail (Akron, OH) as a linear 'trail'-role
POI rendered from pois.geometry (OpenStreetMap-derived, ODbL), plus its 8
official trailheads/access points as point POIs.

Add has_parking / has_restrooms amenity flags to pois (mirroring
is_ada_accessible / is_bike_friendly): returned by the POI/linear-feature
SELECT lists, editable on any POI via the sidebar edit form and the three
admin write paths, and shown in the Visitor Information section. Trailheads
are marked per the Summit Metro Parks Freedom Trail map.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds the Freedom Trail POI and its associated trailheads via a database migration, introducing new has_parking and has_restrooms amenity flags. The backend and frontend are updated to support, query, and edit these new fields. However, the reviewer pointed out that these fields are missing from several admin write paths (such as POST /destinations, POST /pois, POST /linear-features, and PUT /linear-features/:id), which will cause them to be silently ignored during creation or updates.

Comment thread backend/routes/admin.js
'navigation_latitude', 'navigation_longitude',
'property_owner', 'owner_id', 'brief_description', 'era_id', 'historical_description',
'primary_activities', 'surface', 'pets', 'cell_signal', 'opening_hours', 'wheelchair', 'fee', 'more_info_link',
'has_parking', 'has_restrooms',
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

While has_parking and has_restrooms have been added to the allowed fields for PUT /pois/:id and PUT /destinations/:id, they are missing from several other admin write paths. Specifically, they should be added to:

  1. POST /destinations (around line 298)
  2. POST /pois (around line 364)
  3. POST /linear-features (around line 2008)
  4. PUT /linear-features/:id (around line 2052)

Without these, any attempt to set or update parking/restroom amenities on creation or when editing linear features (like trails) will be silently ignored by the backend.

@fatherlinux fatherlinux merged commit b445bec into master May 29, 2026
3 checks passed
@fatherlinux fatherlinux deleted the feature/freedom-trail branch May 29, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant