Python · Flask · React · Algorithms
HerdUp
Finds the walking route two people can share the most of, and draws both paths on one map.

Overview
HerdUp answers a small question: two people are walking to different places from different starting points, so how much of the trip can they do together? It takes both origin and destination pairs and returns the route that maximises the overlap, plus a map showing it.
The core is a Dijkstra implementation I wrote directly rather than pulling from a graph library, with a second mode that solves both walkers at once and reconstructs the shared portion. Locations come in as place names, get geocoded through Nominatim, and are cached with an LRU wrapper because the public geocoder is rate limited and a route with a handful of stops will otherwise hit it repeatedly for the same points. Geocoder timeouts and outages are caught rather than allowed to kill the request.
The result is drawn with Folium into a standalone HTML map with both paths on it, which is the output that actually communicates something — a list of node names does not. Flask serves it over a small CORS-configured API, and the front end is React and TypeScript deployed on Vercel.
It is a short, weekend-shaped project and the graph is built from straight-line distances between the given points rather than real street geometry, which is the obvious next thing to fix.