Case study · Custom project
PlusBus: bus tickets online, in the app and from the driver
We designed and built a complete ticket booking and sales system for the coach operator PlusBus – a website with online ticket sales, a mobile app for Android and iOS and a dedicated app for drivers.
Operator website: plusbus.pl


Client
PlusBus – a coach operator from Białystok
Since 2004 PlusBus has been taking passengers from the Podlasie region to Warsaw and to both Warsaw airports. It runs long-distance routes with tickets for a specific departure as well as a suburban line with monthly passes.
It sells tickets in several places at once: on the website, in the app, at sales points, from the driver and through partners. It needed one system to connect all these channels.
- Białystok – Warsaw – Chopin Airport
- Białystok – Modlin Airport
- Line 700
Via Jeżewo, Zambrów and Ostrów Mazowiecka.
Via Jeżewo, Zambrów, Ostrów Mazowiecka and Wyszków.
Białystok – Turośń Dolna – Borowskie, single tickets and monthly passes.
Project scope
Four apps, one sales system
Every sales channel runs on a shared backend. The departure, the fare and the number of free seats are the same on the website, on the passenger's phone, at the sales point and on the bus.
Ticket booking website
Passengers choose where from, where to and when, add a return trip and pick a discount for each person. They pay online and get the ticket right away.
- One-way and return journey search
- Per-passenger discounts and promo codes
- Customer account with purchase history
- Online ticket refunds and exchanges
- Timetables, fares, stops, sales points and announcements
- Polish, English and Russian versions
Mobile app for Android and iOS
The ticket is always on the phone. Passengers buy a trip in a few steps, show the QR code to the driver when boarding and track the bus live.
- Ticket purchase in the app
- QR code ticket to show the driver
- Live bus tracking
- The same account and tickets as on the website
Driver app
Drivers see the passenger list for their departure on the phone and check tickets by scanning the QR code. They also sell tickets and extra fees on the bus – from the same seat pool.
- Passenger list per departure
- QR code ticket validation
- Ticket sales by the driver
- Extra fees, e.g. for luggage
Operator panel
The office manages departures, fares and sales in one place – no spreadsheets and no phone calls to drivers.
- Departures, timetables and seat limits
- Fares, discounts and monthly passes
- Sales channels and driver assignment
- Announcements for passengers
Multichannel sales
One seat pool, four sales channels
The same departure is sold at the same time online (on the website and in the app), at sales points, by the driver and by external partners. Every ticket takes a seat from the same pool, so the system never sells more tickets than there are seats on the bus.
The operator can close sales in a chosen channel for a specific departure – for example, switch off online sales and leave the last seats to the driver for passengers boarding along the way.
Białystok → Chopin Airport departure
Sales- Online – website and appopen
- Sales pointsopen
- Driveropen
- External partnersclosed
Example – sales in each channel can be opened or closed separately for every departure.
Passenger journey
From searching for a departure to boarding the bus
We designed it for passengers who buy a ticket on the go – usually on a phone, right before the trip.
- 01
Journey search
Where from, where to, the date and an optional return. Each passenger can have a different discount, and the system reminds them which document to show when boarding.
- 02
Online payment
Purchase on the website or in the app, with a promo code if the passenger has one.
- 03
Ticket on the phone
The QR code ticket goes to the passenger's e-mail and to the app. No printing needed.
- 04
Boarding
The driver scans the QR code in the driver app and sees the passenger on the departure list.
- 05
Change of plans
Online ticket refund or exchange, without calling the hotline.
Technology
One codebase for the website and the apps
We built the website and the passenger app in Angular and wrapped it with Capacitor. The same app runs in the browser, on Android and on iOS, so a new feature reaches every platform in a single release.
Shared API
The website, the passenger app, the driver app and the operator panel use one backend. Seats, fares and tickets are up to date everywhere.
Privacy in the apps
The Android and iOS builds contain no analytics or advertising SDKs, so the app does not need to ask passengers for tracking consent.
Three languages
Polish, English and Russian – on the website and in the app.
Contact
Need an IT system built to fit your business?
Tell us about your processes and what gets in the way today. We will get back to you with a proposed scope.
