NavSmart is an enterprise-grade Automated Bus Scheduling and Route Management System. It was originally developed as a Finalist solution for the Smart India Hackathon (SIH), specifically targeting the Delhi Transport Corporation's (DTC) operational bottlenecks.
The system replaces manual, resource-intensive logistics with a highly automated micro-frontend architecture. It specializes in two core transit problems:
- Algorithmic Duty Scheduling: Managing both Linked (fixed crew/bus) and Unlinked (dynamic handovers/rest periods) crew schedules.
- GIS Route Management: Utilizing real-world map data to map existing networks, draw new routes, and highlight geographical overlaps to reduce congestion.
Powered by a centralized Node.js/Express API gateway and a Supabase PostgreSQL database, the ecosystem serves distinct Vue 3/Quasar frontends tailored for admins, drivers, conductors, and passengers.
flowchart TD
subgraph Frontends ["Vue 3 / Quasar Client Portals"]
A[Admin Portal]
D[Driver Portal]
C[Conductor Portal]
P[Passenger Portal]
B[Bus Stop Signage]
end
BE["Node.js / Express Backend (API Gateway)"]
DB[("Supabase (PostgreSQL)")]
OSRM["OSRM API (Routing)"]
A -->|"REST API + JWT"| BE
D -->|"REST API + JWT"| BE
C -->|"REST API + JWT"| BE
P -->|"REST API + JWT"| BE
B -->|"REST API (30s Polling)"| BE
D -.->|"Coordinate Data"| OSRM
BE <-->|"supabase-js (CRUD & Auth)"| DB
This ecosystem is divided into specialized applications based on user roles and hardware requirements.
| Portal / Service | Primary Role | Source Code | Live Deployment |
|---|---|---|---|
| Admin Portal | Command center for transit administrators to manage data, schedules, and monitor live GIS overlaps. | 📂 /admin-portal |
🔗 Launch App |
| Passenger Portal | Public web application for passengers to search routes, book tickets, and generate digital QR codes. | 📂 /everything-portal |
🔗 Launch App |
| Driver Portal | Mobile interface for drivers to initiate linked/unlinked laps and follow live map navigation via OSRM. | 📂 /driver-portal |
🔗 Launch App |
| Conductor Portal | Mobile tool utilizing device cameras to scan passenger QR codes and issue manual tickets dynamically. | 📂 /conductor-portal |
🔗 Launch App |
| Bus Stop Signage | Unattended digital signage auto-polling real-time ETA and status to waiting passengers. | 📂 /bus-stop-portal |
🔗 Launch App |
| Backend API | Secure Node.js middleware enforcing business logic and custom JWT authentication. | 📂 /backend |
Internal Service (Render) |
- Definition: An admin creates a recurring schedule in the
admin-portal. This fires an Axios POST to/api/scheduleson the backend, writing to Supabase. - Expansion: The driver opens the
driver-portal. The frontend fetches the schedules, and a local Javascript algorithm expands that single schedule into multiple "virtual slots" (laps) based on interval timings. - Execution: The driver clicks "Start Trip" on Lap 1. The
driver-portalsends a POST to/api/tripswith thein_progressstatus, creating an active trip row in Supabase. - Broadcast:
- The
bus-stop-portal, which auto-polls/api/tripsevery 30 seconds, detects the newin_progresstrip and instantly displays the bus as arriving on the public screen. - The
conductor-portalfetches/api/trips, identifies thein_progresstrip assigned to theirconductor_id, and automatically unlocks the QR scanning and manual ticketing UI for that specific route.