~/dev.jaspreetsingh
Mobile

Urban Route — NEMT Fleet Management

Cross-platform fleet management suite for Non-Emergency Medical Transport — Admin, Driver, and Passenger apps with real-time ride sync.

FlutterDartSupabasePostgreSQLGoogle Maps API
↗ Live Demo

Problem

NEMT operators were dispatching rides via phone calls with no real-time driver tracking, no passenger self-service booking, and no live sync between drivers and passengers.

Solution

Three interconnected Flutter apps — Admin (dispatch + fleet overview), Driver (trip management + navigation), Passenger (booking + live ride tracking). Rides can be scheduled by admin or booked directly by users. Driver and passenger apps stay in sync in real time throughout the trip lifecycle.

System Architecture

Flutter for all three apps — single codebase targeting Web, iOS, and Android. Supabase Realtime for live location and trip status sync between driver and passenger. PostgreSQL for trip, user, and scheduling data. Google Maps API for routing and ETA.

# system diagram

Admin App · Driver App · Passenger App

└─ Flutter (single codebase → Web, iOS, Android)

├─ Supabase Realtime → live ride sync

├─ PostgreSQL → trips, users, scheduling

└─ Google Maps API → routing + ETA

DevOps & Deployment

Deployment

Supabase (backend) · App Store · Play Store · Web

CI/CD

GitHub Actions with Fastlane for automated iOS and Android builds

Challenges

Keeping driver and passenger apps in sync in real time without draining device batteries. Used adaptive update frequency — high frequency during active trips, sparse polling when idle.

Key Learnings

Flutter is genuinely viable for complex multi-role apps. Supabase Realtime removed the need for a custom WebSocket server entirely — the right abstraction for this use case.


TrainEasy Web — Health & Measurements TrackerTrainEasy Mobile — Fitness & Exercise App

Have a project in mind? Let's talk.

Open to full-time remote roles, freelance projects, and interesting collaborations. I'll get back within 24 hours.

new-message.md