On the customer side, when the slot reservation page is opened, the application checks whether the initiator of the request (the customer who wants to make a reservation) is logged in or not. If they are not logged in, they are redirected to the page that will help them log in and allow the application to configure itself according to their preferences.
When the logged-in customer accesses the page, they are presented with a calendar that only shows the days on which it is still possible to book, so that they can choose the day on which they wish to visit your establishment.
Once the day has been selected, they are taken directly to the time slot selection tab. In this tab, they are asked to select the time slots during which they wish to interact with your establishment. After making their selection, they can confirm their choice(s) of time slots for the day and access the summary page, which gives them an overview of their order with final confirmation.
Finally, when their offer is sent to the server and evaluated by it, they receive a message indicating whether or not their order has been validated.
NB: in each of the steps presented, the only choices available are those that match the user's profile and the administrator's configurations (number of places for a slot, number of slots, duration of a slot, etc.).
Potential causes of bugs during server validation:
- change in the availability status of a time slot, either because the period during which the time slot can be reserved has passed during the ordering process (this period can be configured by the administrator), or because customer B has completed their reservation for the same slot as customer A within the time interval between customer A accessing the time slot tab and validating their reservation
- Attempt to hack the natural functioning of the application by a malicious individual