Web Application
Baku Bus Route Planner
Multi-objective public-transit routing across 207 lines and 3,400+ Baku bus stops.
- TypeScript · Python
Overview
A production web app that computes optimal BakuBus routes between any two stops, covering 207 lines and 3,400+ stops. The backend implements a custom Dijkstra plus Yen's K-shortest-paths engine on a transit graph augmented with walking-transfer edges (up to 300m), exposed through Next.js API routes against a Neon Postgres database. Python scrapers refresh the graph every three hours via GitHub Actions, and the React/Leaflet frontend visualizes color-coded route segments with geolocation, mobile-first tabs, and instant search.
Key highlights
- Custom Dijkstra + Yen's K-shortest-paths engine over a transit graph
- Walking-transfer edges (≤300m) modeled directly in the graph for realistic itineraries
- Python scrapers on a 3-hour GitHub Actions cadence keep the network fresh
- Neon Postgres for the persistence layer; Next.js 16 API routes for serving
- React + Leaflet UI with geolocation, color-coded segments, mobile-first layout
Tech stack
- Next.js 16
- React 19
- Tailwind CSS 4
- Leaflet
- PostgreSQL (Neon)
- Python
- GitHub Actions
- Vercel
Topics
- #routing
- #public-transit
- #dijkstra
- #yens-algorithm
- #leaflet
- #nextjs
- #baku
- #geospatial