Three-role dispatch platform for collection requests with photo proof of completion
A Laravel API and React Native app serving three roles from one codebase — client organisations raise collection requests, a central operator approves participants and assigns work, and field drivers complete jobs with photographic proof — replacing phone-and-spreadsheet coordination with a recorded, auditable workflow.
Collection and dispatch work was coordinated by phone, email and a spreadsheet: a client called or emailed a request, the operator wrote it down and phoned a driver, and nobody had a reliable record of what was collected, when, or by whom. Disputes about whether a collection happened, or how many items were collected, had no evidence behind them, and the operator had no controlled way to onboard new organisations or drivers, or see live workload across the fleet.
Partitioned the API by role at the routing level rather than with conditionals — separate route groups per role, each behind its own authentication guard and prefix, so a driver endpoint isn't just forbidden to a client account, it's unreachable. Photographic proof at completion wasn't treated as an optional attachment; it's part of what completing a job means, captured on the device, uploaded to Google Cloud Storage, and viewable later with zoom for dispute resolution.
Recorded assignment and completion as an auditable timeline rather than a bare status field — who assigned the work, when, and when it was completed — and wired lifecycle notifications across push and email so operators and drivers in a vehicle are both reachable. As real usage accumulated, measured listing query behaviour and added targeted indexes across the main tables rather than assuming performance up front, and the mobile app resolves the user's role at login to compose an entirely different navigation structure per role from one codebase.
Requests now arrive structured and complete instead of transcribed from a phone call, and the operator has a single live queue instead of relying on memory to balance load across drivers. Every assignment carries attribution and a timestamp, every completion carries photographic evidence stored durably, and client organisations are vetted through an approval gate before they can raise work at all.
Something holding you back?
New build, rebuild, or adding AI to what you already have — I'll take a look and give you an honest perspective.