Making vehicles available to people who do not have access to this service is an idea which has been gaining momentum in Europe, ever since 1987. It was then that people started reevaluating the actual costs of owning a vehicle, compared to the actual time the vehicle is used, an approximate 8 days per year.
The car sharing market is available in more than 1000 cities, the following cities being representatives for Europe: Berlin, Munich and Vienna. We believe technology and innovation can improve the quality of life, and this vision permeates the projects we developed. Distributed mobility services do not bring benefits cost-wise, but they diminish the negative impact of personal cars on the environment.
In 2016 I built a B2C website for car rentals, and I have recently completed a car lease sharing B2B and B2C website. My company has been working on the ParkingPlus innovative solution since 2014.
The project's complexity offered us the chance to investigate various technical solutions, since we deal with a one-stop-shop startup, which offers cars, financing and maintenance. The stake holders of the startup are a bank and a European automobile company.
The startup we are discussing here uses top technologies which redefine mobility, being financially supported by the mother company, a global footprint finance company. The company offers means of transport which allow people to go from point A to point B, irrespective of whether we talk about business trips or private trips. The percentage rate of car owners is low in Europe, and our partners came up with personalized solutions for each customer and their needs, benefitting from the advantages of digitalization.
In terms of B2C, this idea enables end users to find another group of users who may acquire a car, together, in leasing. The car sharing concept is transferred to the shared leasing field as well! You no longer share the car; you can also share the car installments. The concept aims at making traffic more fluid and extending the range of auto rental offers to customers. Moreover, everything is highly digitalized, starting off with opening cars, checking car availability or updating your credit in time, actions which you can perform directly from your smartphone.
Car sharing is meant to ease consumer's life, consumer who only has to perform three steps: register, book the car of choice and drive. This ease of use is underpinned by a well-thought architecture, and by the auto fleet manager's ability to understand infrastructure complexity and to offer the necessary operational support.
Technically speaking, the infrastructure is based on back-end services made available by a whitelabel platform, the system being able to mediate the back-office (administration) side for all the applications customers in this field interact with.
The system architecture is based on microservices, the entire system being distributed across several specific microservices. The integration and continuous delivery aspects are mediated by Amazon Web Services and Docker. As such, each microservice is an independent entity, embedded in a Docker container, which makes updates and scalability easy to perform. The distribution allows the system to have high-availability levels, if used by a large number of users, via independent scaling and service load balancing.
Microservices were thought to have a classic architecture, distributed on levels and implemented with the help of Spring: Spring Data for data access, Spring Services for the business logic side, having outer exposure via REST Controllers. The APIs are documented with the help of Swagger. The main programming language used was Java 8, but the system was designed to function asynchronously, so RxJava was also added. The actual development is enabled by the use of various libraries, be they third-party (for mailing, PDF templating, competitive cost cuts), or developed and updated in house.
There are two types of microservices in the system, as can be seen in the attached diagram: service-type (lower level) and gateway-type (upper level).
Service-type microservices directly interact with persistent data (in our case PostgreSQL databases, ElasticSearch indexed data). These microservices are responsible for the business logic part of the application, a business logic divided the following way: a microservice for managing the data around user accounts, another microservice for managing the data around auto fleets, and other microservices for documentation, booking and recurrent tasks which require running in a complex environment as the one we currently deal with.
Gateway-type services represent the interaction points with many client applications. These are meant to ensure a large chunk of security issues, the selection of the data which will be transmitted to client applications, the delegation of functionalities towards service-type microservices. Three such microservices currently exist: one which ensures the delegation of the calls coming from the back-office client and the administration, one for the calls coming from websites, and another one from mobile applications.
The front-end of the client applications which are connected to the system were developed using ReactJs and Redux, but what should be noted is the technological stack of the car leasing application, which was initially though as a stand-alone application (with back-end and its very-own persistence level, unlike the other clients), and which was only later integrated in the system. It was developed with the help of the Play Java 8 framework, an MVC architecture. The object-relation mapping was mediated by EBean, while email dispatch was ensured by Akka.
These applications were the result of cross-functional teams, from two geographical areas, managed in accordance to the Agile Scrum model, enabled by technologies such as Jira for task management, Confluence for specification management, and GitLab for pipeline management.
Despite the fact that, at first sight, the technologies used are many, the unitary result eases up both the administration of the autos a company owns (making them available to the public, other companies or individuals), and their actual usage by application end users.
We live in the age of speed, but the streets are still teeming with cars. In Bucharest there are more cars per 1000 inhabitants than in Paris. Most Romanians prefer to drive to their destination, in the detriment of other means of transport. Several solutions have already been implemented in Cluj-Napoca and Bucharest, offering car access at a monthly cost, which is lower than a leasing installment. The future will tell whether a solution such as a shared leasing cost would be viable for the Romanian market, both at B2B and B2C levels.