One tap on the bus.
Three people know.
The driver confirms a stop. The parent sees “picked up”. The school sees the bus is on time. Same moment, same record.
Absences shape tomorrow's route.
Both children at Lake View are marked “not travelling”. The stop is skipped tomorrow, and the driver will see it struck through, never hidden.
Tap only who isn't there.
Everyone expected counts as picked up. The driver marks the one exception and confirms the stop once.
Kabir's mother knows in under a minute.
The school is alerted at the same moment. “He's with me” closes it; “Please check” puts the school on the phone.
Leave home at 7–9 min. Not before.
A range from your own stop with a timestamp. If the bus phone goes quiet for two minutes, the ETA is hidden instead of guessed.
No child left on board.
The trip can't end until the bus is checked empty. A false “dropped” is the worst thing we could ever say.
Tap only who isn't here.
Kabir was not marked boarded
The bus left his stop without him. The school has also been notified.
The numbers
behind every screen.
Each limit is a rule in our code with a test on either side of it.
If the last update from the bus is older, parents see “last seen” instead of a guess.
Parents get one nudge when the bus is 10 minutes from their stop.
Another only if the delay grows by more than 5 minutes. No drip of updates.
The school can set this anywhere from 5 to 15 minutes.
Speed is smoothed over 15 seconds so a bump doesn't unlock it.
Absences in by 9 PM change tomorrow's route. Later ones are still recorded.
A full school day,
end to end.
This is the day a pilot school must be able to run before we call it working.
- The admin imports students, stops and routes, and confirms every stop on the map.
- A parent signs in with an SMS code and sees their child's card.
- The driver starts the morning trip, and the parent sees the bus move with an ETA.
- At a stop the driver marks one child absent and confirms. Parent and admin get the alert, and the admin closes it with a reason.
- The other children are recorded picked up, then dropped at school, and their parents are told.
- A parent marks tomorrow's absence, then cancels it, and the child is back on the list.
- The admin records an afternoon exemption, and the afternoon trip runs with no false alert.
- The admin sends a broadcast to one bus's parents and sees the delivery report.
Under the hood.
Three apps on one backend, with the safety rules in one place.
Android and iPhone. Home, live journey, alerts, absences, messages, voice.
React Native · ExpoAndroid and iPhone. Trip, stop sheet, safety mode and SOS.
React Native · Expo · MapboxIn the browser. Live board, alerts, broadcasts, import, setup.
React · Vite · Mapbox GLApps send marks, locations, SOS and absences to the server, which applies the rules. Live updates are read straight from the database, which itself enforces who may see what.
FastAPI · PostgreSQL (Supabase, Mumbai) · push notifications · SMSSee it run on
your own routes.
We'll set up a demo with one of your routes so your team can watch a real morning.