Portfolio
Mobile / Operations·2024

Towing Marketplace App

Mobile app to request towing, manage queues, assign drivers, and track status in real time.

Multi-role app for customers, drivers, and managers, with routing, notifications, and a request-assignment flow designed to reduce friction and replace WhatsApp-and-phone chaos. Version 1.0.0 was delivered in 21 days.

FlutterFirebasePush NotificationsGoogle MapsMulti-role

A quick look at the product before we get into the technical breakdown.

Customer · New request
Mobile app preview
9:41
5G
Customer
New Request
10 min
Pickup
123 King St · Downtown
Pin dropped and ready for dispatch
Waiting
Vehicle
Required
Year
2018
Make
Toyota
Model
Corolla
Condition
Not drivable
Service
Flatbed towing
ETA
10 min
Submit request
Contact details stay hidden until dispatch is confirmed.
Request creation flow with location, vehicle details, and status.
Manager · Queue
Mobile app preview
9:41
5G
Manager
Live Dispatch
10 min
Search by request or driver
Live
#1042
Queen St
Waiting
2 operators quoting
08 min
Open
#1039
Highway 7
Assigned
Driver D-12 on route
12 min
Open
#1031
Airport
Completed
Delivered to garage
Done
Open
Request queue with fast triage and quick access to details.
Driver · Job detail
Mobile app preview
9:41
5G
Driver
Job #1042
10 min
Status
En route to pickup
Enroute
Pickup
123 King St
ETA
09 min
Vehicle
2018 Toyota Corolla
Mobility
Not drivable
Clearance
Below 7ft
Arrived
Navigate
Job detail view with map, route, and status-based actions.
v1.0.0
Version delivered
Shipped in 21 days
Customer / Driver / Manager
Roles
Firebase
Backend
Auth · Firestore · Functions
Live status
Realtime
In-app + push
Google Maps
Maps
Pickup + route preview

Towing operations often run on phone calls, WhatsApp, and spreadsheets: incomplete requests, repeated data entry, no status trail, SLA delays, and too much back-and-forth between customer, operator, and driver. On top of that, sensitive details such as the customer phone number need to be controlled and released only at the right moment.

We built a Flutter app with three roles (Customer, Driver, and Manager) on top of a Firebase backend (Auth + Firestore + Functions). The customer creates a request with complete details such as location, vehicle, and constraints, operators triage and assign jobs, and drivers receive everything with route guidance and live status updates. Push notifications keep the flow synchronized, while privacy rules such as hiding phone numbers until acceptance reduce misuse and contact leakage.

Complete data without friction

A towing request needs detail such as location, vehicle, mobility status, and restrictions, but users will not tolerate a giant form. The flow was split into short steps with progressive validation, reducing drop-off and improving request quality.

Privacy and information timing

Sensitive information such as phone numbers cannot be exposed from the start. The data model supports releasing fields based on status, for example only after acceptance or assignment, which reduces abuse and off-process direct contact.

Real-time sync with push

Status updates need to be instant for every role. Firestore handles in-app realtime updates, while FCM ensures critical events still arrive when the app is in the background.

Flutter
Mobile app (iOS/Android)
Firebase Auth
Authentication & roles
Cloud Firestore
Realtime data + requests
Cloud Functions
Server-side rules & workflows
Firebase Cloud Messaging
Push notifications
Google Maps
Map + routing UI
Riverpod
State management
3
Roles
21 days
v1.0.0 delivery
Firestore
Realtime
Live ETA
Maps

Let's build it right.

Start a Project