- 01
Mobile app uses React Native + Expo with local MMKV storage and offline BFS/Dijkstra fallback — full route computation runs on-device with no network dependency.
- 02
Backend uses Spring Boot 3.3.5 with layered REST APIs, service layer, PostgreSQL 16, Redis 7, Flyway migrations, JWT authentication, and Swagger/OpenAPI documentation.
- 03
3-tier network awareness: online (API-first), degraded (1.5s timeout then local fallback), and offline (fully local graph from MMKV cache).
- 04
Redis key patterns cover route cache, station cache, fare cache, and service-alert cache with TTL and invalidation strategy to keep data fresh without hammering the database.
- 05
Multi-city architecture isolates Delhi and Hyderabad route data and fare rules — adding a city is a data migration, not a code change.
- 06
Ticket QR payloads are HMAC-signed server-side to prevent forged or replayed tickets, with server-side validation on scan.