--- title: MoBaz MRU emoji: 🚌 colorFrom: red colorTo: green sdk: docker app_port: 7860 pinned: false license: mit short_description: Offline-first Mauritius bus journey planner + live API --- # 🚌 MoBaz — Mauritius Bus Planner **MoBaz** (Mauritian Creole for *"my bus"*) is an offline-first journey planner for Mauritius' bus network. Pick an origin and destination and it plans a route — showing the bus line(s) to take, every stop with timing, the frequency (headway), and the road-following path on a map. This Space serves the live API + dataset **and** a Grafana metrics UI. One public port (7860) is fanned out by nginx to four processes (backend, Prometheus, Grafana, nginx): | Path | Serves | |------|--------| | `/` | **Grafana** dashboards (redirects to `/grafana/`) | | `/app/` | the **web app** (PWA) | | `/api/*`, `/data/*` | live planner API + dataset (the **iOS/Android apps use these** — unchanged) | | `/metrics` | Prometheus exposition (scraped internally) | | `/status` | dependency-free backend status page | - **Web app:** open `/app/` on this Space. - **Metrics:** open the Space root (Grafana). Set a `GF_SECURITY_ADMIN_PASSWORD` Space secret to lock the Grafana admin account; anonymous visitors get read-only. - **Android app refresh endpoint:** `./data/network.json` (unchanged). > Note: HF Space storage is ephemeral and the Space sleeps when idle, so the > Prometheus history resets on restart — dashboards show data since the last boot. All journey planning runs **on-device** over the bundled network, so the app works with no internet; map tiles are cached as you view them. ### Data & credits - Routes, stops, frequency: [mauritius-buses.com](https://www.mauritius-buses.com/) (unofficial community data). - Map tiles, stop coordinates: © [OpenStreetMap](https://www.openstreetmap.org/copyright) contributors. - Road geometry: [OSRM](https://project-osrm.org/). Not affiliated with NLTA, CNT or UBS. Frequencies are weekday headways, not fixed timetables.