A PWA transit navigator for Addis Ababa. Search landmarks in Amharic or English, plan multi-modal routes (minibus β LRT β walk), and see live commuter demand on a real-time heatmap β all with no app install required.
# EthioRoute
> Landmark-first navigation & real-time transit for Addis Ababa.
---
# The EthioRoute application is currently available upon request only
## π Quick Start
ethio-route.vercel.app
No build step, no bundler. Requires a local HTTP server (Service Worker and Fetch API do not work over `file://`):
```powershell
npx serve .
```
Then open `
localhost`.
**One-time setup checklist:**
1. Add your **Supabase credentials** to `config.js` (URL + anon key)
2. Create the required Supabase tables β SQL in `NEEDS_MORE_INFO.md` Step 2
3. Download the **Noto Sans Ethiopic** fonts into `fonts/` β instructions in `NEEDS_MORE_INFO.md` Step 1
---
## π Project Structure
```
EthioRoute/
βββ index.html # App shell β open this
βββ manifest.json # PWA manifest (installable)
βββ service-worker.js # Offline tile + asset caching
βββ config.js # Supabase URL & anon key β YOUR CONFIG
β
βββ css/
β βββ main.css # Global design system, tokens, splash, FABs
β βββ map.css # Map container, locate button, popups, user marker
β βββ panels.css # Left drawer, route steps, tariff table, toggles
β
βββ js/
β βββ app.js # Bootstrapper & all UI event wiring
β βββ map.js # Leaflet 1.9.4 initialisation & tile switching
β βββ i18n.js # Amharic β English string table & toggle
β βββ gtfs-data.js # Route registry, Haversine, nearest-stop finder
β βββ transfer-graph.js # Multi-leg transfer adjacency graph (BFS)
β βββ landmarks.js # Weighted POI search, favourites, suggestions
β βββ search.js # Search UI, per-input autocomplete, suggest modal
β βββ transit.js # LRT / Anbessa / Minibus / Sheger layer renderer
β βββ heatmap.js # Supabase real-time demand heatmap
β βββ crowdsource.js # Anonymous crowdsourced bus GPS
β βββ routin β¦