Driver App Overview
Location: /Users/dhilshad/Metaonus/syncad-driver
Stack: Flutter 3.8.1+, Provider, Dio, flutter_map, Socket.IO, GetIt
API Base: https://dev-api.metaonus.in/driver/*
Purpose
The SyncAD Driver App gives bus drivers a mobile interface to manage their daily trips — view assigned buses, start/pause/resume/end trips, mark student boarding and alighting, report incidents, and track live location.
Feature Modules
| Module | Description |
|---|---|
| Home | Dashboard with assigned bus, today's trips, live map |
| Trips | Start, pause, resume, end trips; view trip details and stops |
| Students | View assigned students, mark boarding/alighting per stop |
| Incidents | Report vehicle breakdowns, traffic jams, accidents |
| Profile | View profile, change PIN |
Key Architecture Decisions
- Real-time location updates — driver location pushed via REST batch endpoint; Socket.IO used for live map markers on parent/tracking side
- Trip state machine — trips transition through
scheduled→in_progress→paused/resumed→completed/cancelled - Offline-first — location updates queued locally when offline, flushed on reconnect via
batchLocations - No evaluation mode — driver app is write-heavy by nature, all actions are always enabled