A complete ticketing, revenue, and point-of-sale system for an electric bus fleet operator — built to handle real passenger volume across multiple routes, every day.
Running a bus fleet means issuing tickets at scale, tracking revenue across routes and shifts, and giving staff a reliable way to process payments on board or at the stop — all in real time, without manual reconciliation at the end of the day.
Without a connected system, ticketing and revenue tracking become two disconnected jobs: someone issuing tickets, and someone else trying to reconstruct what was actually collected. Nurbs.io built the system that closes that gap.
Before this system, the operator was running on paper-based ticketing and manual cash reconciliation at the end of each shift. There was no way to see in real time what was being collected across routes, or to verify that ticket counts matched revenue. Nurbs.io built the connected platform that replaced all of it — from the ticket issued on board to the revenue total visible in the dashboard.
Issues and tracks tickets per route and rider, replacing manual or paper-based ticketing with something that can be audited and reported on.
Aggregates revenue across routes, shifts, and buses, so the operator can see exactly what's being collected without manual reconciliation.
Handles in-person payment processing for staff, tied directly into the same ticketing and revenue data — no separate system to reconcile against.
Extends access to ticketing and revenue data beyond a fixed terminal, for staff who need it on the move.
Ticketing and POS hardware on a moving vehicle needs to be fast and dependable, so the on-board components were built natively in Kotlin rather than through a cross-platform layer — prioritizing reliability over shared codebase convenience for this specific piece.
For the parts of the system that didn't need to be tied to specific on-board hardware — the operations companion app — Flutter let us move faster and cover more ground without duplicating effort across platforms.
All ticketing and payment data flows into a single MERN backend, giving management a live view of revenue across every route and shift. No end-of-day manual tallies, no waiting until someone submits a report — the numbers are available the moment a transaction happens.



The ticketing, revenue, and POS system has been handling real passenger and payment volume for the operator since launch — giving staff and management one connected view instead of three disconnected processes.
Ticketing, POS, and revenue systems that need to work reliably on the move are exactly what this team builds.
Start a project →