01 / 10 · Booking and dispatch platform
BusFlow
Booking, pricing and dispatch platform for a coach company.

- In production
- Aug 2026
- Backend tests
- 3,400+
- Languages
- de · en · hr
- Stack
- .NET 10 · React 19
BusFlow is a quoting, booking and dispatch platform for a coach operator. A customer enters the route, dates and passengers, the system plans the drive against EU driving-time rules, prices it from the operator's tariff, takes payment and issues an e-invoice. The dispatcher runs bookings, buses, drivers, partners and VAT from the admin side.
It has been in production for a German coach operator since August 2026. I own the frontend and contribute to the .NET backend.
Context
- A coach operator in Offenbach was quoting charter trips by hand: looking up the route, estimating driving time, checking whether one driver can legally do it, then writing the offer and the invoice. Every enquiry cost time, and the rules on breaks and rests were easy to get wrong.
- FlowSolutions built BusFlow so the customer gets a price while filling in the form, and the operator gets a booking that is already routed, planned, paid and invoiced.
What I built
- The whole React frontend: public booking flow with live price, route map and per-day schedule, offer pages, customer account, and the admin console for bookings, bus occupancy, drivers, partners and expenses.
- Backend work in .NET: multi-day driving-time planning, booking notifications with an outbox, driver schedule e-mails with backoff, and the EF Core migrations behind them.
- Keycloak OIDC login with a branded theme, so the SPA never handles credentials.
- Driver hire, partner-carrier enquiries and the operator's public pages in German, English and Croatian.
- Prerendered public pages with structured data and sitemap generated at build.
How it works
- A self-hosted OSRM server on Hetzner routes every trip, including the empty legs from and back to the depot.
- The driving-time planner applies Regulation (EC) 561/2006: breaks, daily rests, multi-day trips and when a second driver is needed.
- Kilometres are priced on progressive rate bands per bus, with minimum revenue and surcharges.
- Payment by card (myPOS) or PayPal; school trips can pay a deposit.
- Invoices are Factur-X PDFs with embedded EN 16931 XML, with VAT split per country crossed, and expense receipts are read by Azure Document Intelligence.
Screens
Screens show demo data.
Booking detail: driving-time check, trip, customer and the figures the customer never sees. Every leg the bus actually drives, including empty runs, and how the tariff prices it. Bookings with status filters, search and CSV export. Monthly occupancy per bus: trips, holds, lines and downtime. The dispatcher's view on a phone.
Outcome
- In production since August 2026, with bookings, payments and invoices running through the system.
- More than 3,400 automated backend tests; the build fails on any compiler or analyser warning.
- Screenshots show demo data.