The heart of the project was to design a high-performance site, accompanied by an intuitive booking module, designed from the outset to offer an experience close to that of a mobile application. To achieve this, I used Symfony and EasyAdmin to create an ergonomic back office, allowing efficient management of bookings and users.
The booking form
The booking form a été développé avec Vue.js, garantissant une interface fluide et réactive. Upon arriving on the site, users could enter a departure address, an arrival address, and a time. Thanks to API calls tracing the path between the two points, the journey was calculated in real-time, including the distance in kilometres. This calculation, performed directly in the database, integrated a factor adjustable by the manager to respond to situations such as peak periods. Once the price was displayed, users could finalise their request by submitting the booking.
Symfony workflows to manage transitions
To manage booking statuses, I integrated Symfony workflows. When a request was submitted, an email was automatically sent to the driver to accept or decline the trip. In both cases, the client was immediately informed of their booking status. Finally, a reminder was sent two hours before the journey, to both the driver and the client, to confirm the appointment details. Payment was made directly in the car, which simplified development by avoiding the integration of an online payment solution.