In order to provide more security for drivers and passengers, as well as fewer delays and shorter dwell times at bus stops, the Dutch government had passed a law that obligated all public transport companies in the Netherlands to make public transport in the country cash-free by the end of 2017. In the Netherlands cashless payment outstrips notes and coins, and cash is on the verge of extinction. Many European countries are following the same path. Dutch public transport companies needed a stable, reliable, and adjustable software solution that would make this migration to a cashless payment system as seamless as possible.
HTEC possesses extensive expertise in the area of transportation and logistics. Cooperating with Telexis, we have already developed solutions for Dutch public transport companies in the past. This time, the intention was to create systems for cashless ticket purchasing and several other operations. One of the requests was to make it as customizable as possible, keeping in mind the needs of other potential clients. Using systems we have created, passengers are now able to buy tickets cashlessly, accounting time is reduced, and maintenance costs are lower. In addition, paper and coin production costs will decrease in the long run.
TSU (Telexis Sales Unit) is a device that enables users to buy one-time tickets or place other products on OV-chip cards that are a universal means of paying for public transport in the Netherlands. The unit is designed as a self-service box with a Windows 10 Panel PC which is not an industrial machine, but a purpose-made one. We needed to enable printing and third-party credit and debit card management.
It has two basic functionalities and both of them have passed certification procedures:
- Selection, purchasing, and issuing of one-time paper tickets.
- Delivering previously bought products for OV-chip cards.
Products are selected and bought online prior to using them in buses. They are paid for via debit or credit cards and collected by placing the OV-card on the TSU which transfers the information about purchased products on the card and enables usage. For this Windows platform, we have chosen .NET 4.5, C#, WPF. As far as architecture is concerned, there are four components:
- Core service — in charge of all business logic and libraries such as communication with Payplaza and the printer.
- UI app.
- AutoUpdater service — automatically downloads a new version of the software and installs it, has a rollback option, so it's error-proof.
- Monitoring service — collects all data about the system and sends it to the external monitoring tool/dashboard.
These components communicate with each other via WCF. It was selected because it is extremely simple to implement a new UI by generating a new client using already existing functions. All other libraries are switched on using dependency injection which enables us to quickly implement the same interface for a different client. For example, when an interface is created for a certain printer, we can use that interface and just inject a different library for a different type of printer, and that printer will work without any change to the core service. Segmentation of the system, which we paid significant attention to, leads to changes made to one part of the system not being propagated to other parts. Third-party in charge of payment transactions management is Payplaza.
Arriva OBSU (On-Board Sales Unit) is a system that allows credit card and debit card payments. A system that we have developed, it enables the coordination between two existing systems:
- MBC (Master Board Computer), which acquires geographical data, and
- Quarto Kassa, which is in charge of payment and ticket printing.
Because these systems worked independently, bus drivers had to login two times at the beginning of their shift. Furthermore, the ticket that Quarto Kassa would print out for the user did not include information such as bus line and bus stop on which the ticket has been issued.
Thanks to our OBSU system, these problems are solved. We connected MBC with OBSU via TCP/IP protocol so that every time a driver logs in, or every time the bus arrives at a bus station, we receive that message, process it, and, using the same TCP/IP protocol, forward it to Quarto. Since Quarto didn’t support this kind of communication earlier, there were features that had to be implemented in that system too.
Another important part of the system is the Monitoring Service. OBSU collects various data (the number of transactions, number of tickets sold on certain lines or bus stops, etc.) and forwards it to the back-office. This allows the company to keep track of transactions and gain insight into customers’ behavior. The component also monitors other changes in the system, such as malfunctions and failures, so that it can alert administrators who can then quickly address the issue and repair it.
OBSU system also consists of a service called Auto Updater, which was manually installed in the vehicles in August 2017. Auto Updater allows remote automatic installation of the system in all vehicles, as well as bug fixing in all buses at the same time.
We created systems that have several advantages compared to other forms of ticket purchase:
- End-clients are able to buy paper tickets in a quick, easy, and secure way. TSU also enables them to collect their already bought OV-chipkaart products.
- Systems are built to be self-service devices, they are robust and don't require a lot of maintenance. Maintenance costs are thus low.
- This payment method is more secure because the ticket purchase is cashless, which decreased the potential for robberies or violent behavior toward bus drivers.
- It is easier to buy tickets directly in the vehicle than at stores or stations. This is achieved by the UI that is easy to use and navigate.
- Detailed and more efficient reporting is achieved, which in turn enables better insight into customer behavior and market demands.
In part two of this article, you will discover the challenges of working on these projects, how our team dealt with demanding tasks, and what they learned from the process. Read the part two story here.