01 / 10 · Booking and dispatch platform

BusFlow

Booking, pricing and dispatch platform for a coach company.

German coach operator2026 –Frontend and part of the backend

  • Web
  • Backend
BusFlow booking: every driven leg and the tariff calculation
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 show demo data.

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.

Stack

  • .NET 10
  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • TanStack Query
  • MapLibre
  • Keycloak
  • PostgreSQL
  • OSRM
  • Docker

Links