Four apps, one monorepo — a complete intercity bus reservation and boarding platform.
Ghana Transit Operator
Transport operators in Ghana run their bookings on paper or via WhatsApp. Digitalising means building multiple surfaces at once: passengers need a mobile app, terminal staff need a boarding tool, operations managers need a dashboard, and all of it needs a shared API that keeps seat inventory in sync in real time. There is no partial solution — if one piece is missing, the system breaks down.
Payments in Ghana flow through more than one channel. Some passengers pay online via mobile checkout; others walk up to the terminal counter; some pay cash and a receipt arrives out of order. The system had to reconcile all three payment types, track booking status accurately across every state, and auto-release unpaid seats after 30 minutes so they were available for the next customer.
Boarding security matters. Without tamper-proof QR codes, a screenshot of someone else's ticket could board multiple passengers. The system needed cryptographically signed boarding tokens that staff could scan and verify in milliseconds — including for group bookings where four seats share a single QR code.
- Bookings taken by phone or in person
- Payments collected manually at the terminal
- No live seat availability — overbooking risk
- Paper boarding passes — easy to forge
- Reconciliation done manually at end of day
- Seat selected and paid in the app< 3 min
- Payments auto-reconcile across 3 channels
- QR boarding pass — signed and verified in ms
Passengers open the app, pick a route, select their seats, and pay in under three minutes. The operator's full fleet and schedule is visible in an admin dashboard showing live occupancy rates, revenue, and trip status across all routes. Four products work together because they share a single API layer and type-checked data contracts — changes to the booking model propagate instantly.
Payments always reconcile. Mobile checkout, cash at the counter, and virtual terminal receipts all match automatically against open bookings. Any booking not paid within 30 minutes expires, and the seat releases for the next customer — no manual cleanup required. The system tracks the trip lifecycle — scheduled, departed, arrived — and updates every 10 minutes based on departure time.
Boarding is tamper-proof and fast. Each ticket carries a cryptographically signed QR code. Staff scan it with the boarding app, the server verifies in milliseconds, and the seat is marked boarded — atomically for groups, so no partial boarding is possible. A screenshot of someone else's ticket fails instantly. Passengers always see live seat availability before they pay.
- Live seat selection
- Paystack mobile checkout
- QR boarding pass issued
- Real-time booking status
- Cash & virtual terminal payments
- 30-min auto seat release
- Trip lifecycle tracking
- Staff management
- Signed QR code per ticket
- Millisecond verification
- Atomic group boarding
- Fraud instantly rejected
Ready to build something similar?
Book a discovery meeting ↗