
ParkScout: engineering notes
Problem
Park visitors need routes along real footpaths, useful place information and a map that does not fight their browsing as location updates arrive.
Approach
ParkScout builds a client-side path graph and computes walking routes with Dijkstra. A nearest-neighbour and 2-opt heuristic orders a full-park tour. Leaflet renders the map, routes and points of interest.
Browser-native routing
Footpath data becomes a graph. Shortest routes and tour ordering run client-side, with no backend or build step.
Designed for a phone
Place sheets combine photos, stories and distances. Location permission is explained first; live updates avoid interrupting panning.
Design decision
Keep route computation local and location updates polite. The interface recenters when asked, while denied permissions and failed data loads receive explicit handling.
Current scope
Map tiles and Leaflet still require network access. Tour ordering is a heuristic rather than a guarantee of the globally shortest tour.
Read the documentation ↗Explore the implementation
The repository contains setup instructions, the source and current limitations.
Source on GitHub ↗