Skip to content
K. VAISHNANI
Home

BusMitra

Live school-bus tracking parents open from a link, with nothing to install.

Kind
Multi-tenant SaaS product
Role
Sole engineer and operator
Status
Live
Years
2026 — present

Context

Schools coordinate bus routes over phone calls and a WhatsApp group. When a bus runs late the office takes the calls and has no authoritative answer to give.

The problem

Every tracking product on the market assumes each parent installs a native app and keeps it updated. Most do not, and adoption stalls at exactly the families who would benefit most. Boarding was the second gap: recorded on paper or not at all, which is precisely the record that matters on the day a child is missing.

What I did

Three progressive web apps over one multi-tenant .NET Core API. A school pastes a link into the parent group it already has, and the tracker opens in whatever browser the parent already uses. No app store, nothing to keep updated.

Three separate applications rather than one with role switching. The office needs a dense data screen, the driver needs large targets and a full-screen map while the vehicle is moving, and a parent looks twice a day. Collapsing those into one shell would have shipped route-management code to parents and an admin grid to a driver's phone.

Attendance is captured at the door by the driver, by QR or tap. A geofence proves the bus reached the stop; it does not prove a particular child boarded it. Two seconds of driver effort buys a record that is actually authoritative, which is the whole point of the feature.

Tenant isolation is enforced at the query layer, with tests that fail on any unscoped query. A database per school is cleaner in theory and unmanageable for a single operator, because migrations, backups and connection pooling all multiply with the tenant count.

Where it landed

Live since 2026, and I operate it. Parents get an arrival estimate they can watch move without installing anything, and the school office stops being a switchboard. The cost of the zero-install decision is real — no dependable background location or push on iOS — and I took it anyway, because a parent who opens the page when they care about it beats an app they never installed.

Built with

  • .NET Core
  • SQL Server
  • Next.js
  • TypeScript
  • Progressive Web Apps
  • Service workers

Working on something in this shape? Tell me about it.

Book a call