SERVICES: Dedicated solution, Cloud services
AREA: Azure, Java, React, TypeScript
JCommerce worked on a project designing a payment system for the German autobahns (federal motorways), which aimed to improve toll collection throughout the country.
The client was developing an IT system that would avoid the necessity of collecting tolls for an autobahn transit each and every time. The system was designed to handle payment transfers for short- and long-term vignettes, as well as to process transfers and send letters to Germans once a year letting them know that they need to pay. The charge levied on German citizens for vignettes was to be turned into a tax credit. They could choose between an annual vignette or a short-term one. In turn, citizens of other countries who wish to use the German road infrastructure were to pay for vignettes using a dedicated WWW panel, but without the possibility of having their costs refunded. In this case, payments could be made via a web panel. The client asked JCommerce for competence support in developing the system. The project was implemented using the latest technologies, inclusive MS Azure and involved 4 specialists on the JCommerce side.
One of the key challenges was the stringent requirements of the German government in terms of protecting citizens’ privacy. In Germany, there is neither a database of all citizens (such as the PESEL database in Poland, for example), nor personal identification numbers (like the abovementioned PESEL numbers in Poland or social security numbers in the USA). For example, if there were two citizens with the same surname and date of birth living at the same address, it would be impossible to distinguish between them. The proposed payment system would therefore have a functionality that would allow for the correct identification of 80 million citizens.
The second challenge was that the storage of personal data in the system was prohibited. In order to send letters to approximately 60 million citizens a year, the system downloaded data, generated letters, processed transfers and checked whether a specific person had paid – and deleted all of their data if so. Only the data of citizens who have not paid could be stored in the system.
The above requirements translated into the need to create, process and delete the data of 2 million people every month. To handle such a large amount of data, JCommerce specialists have created a modern, scalable architecture that allows for the operation of any number of servers in the Azure Cloud processing data for a given task. This makes it possible to adapt the required computing power to the requirements of the system. Another challenge was to track system behavior and verify historical data, as the history of activities performed (such as sending a letter to a given address or receiving a transfer) had to be deleted on a regular basis.
Node, Azure, CQRS, RabbitMQ, Node.JS, TypeScript, Express, JEST, GraphQL, React, Sass, GraphQL, Cypress.io, Gatling, Consumer Driven Contracts