Scabbr
Live school-bus tracking, end to end. I built every client surface of a three-sided product: a fleet dashboard for schools, a driver app that streams GPS and scans children on board, and a parent app that shows exactly when the bus will arrive.
Surfaces shipped - school dashboard, driver app and parent app
Bus position refresh in the parent app
ETA recalculation cycle from the driver’s phone
Thechallenge
Parents had no idea where the school bus was, and schools had no single view of their fleet, their routes or which children were actually on board.
The client wanted one product covering everyone in that chain: the school admin planning routes, the driver running the trip and the parent waiting at the stop - all talking to the same GraphQL API.
How Iapproached it
A multi-tenant console
A super admin onboards schools; school admins run their own fleet, with modules for buses, drivers, students, stops, routes, trips, roles and subscriptions, plus a bird’s-eye map of every vehicle.
Admin UX for non-technical staff
Spreadsheet import with validation, per-student QR codes, in-browser photo cropping, and stop planning by Places search or click-to-drop markers on a map.
A driver app that does the work
OTP login, start and end trip, live GPS broadcast with proper permission handling, and QR scanning to mark each child on and off the bus.
A parent app that answers one question
Where is the bus and when will it reach my stop - a live map, an ETA and the child’s pickup point.
Highlightsworth showing
- (01)
One frontend owner across a web console and two React Native apps.
- (02)
Driver app recalculates the ETA to the next stop every 30 seconds and pushes it to the server.
- (03)
Parent app refreshes the bus position every two seconds.
- (04)
QR-based boarding gives schools a verified record of which child got on and off where, not just where the bus was.
- (05)
Later grew into a lighter school ERP: timetable, library lending, leave, staff, a calendar and a notice board with real-time messaging over GraphQL subscriptions.
Have a project like this?
Tell me what you’re building or what’s broken. I’ll tell you straight whether I’m the right person for it.