# Create Booking ## Flow ![](https://hackmd.io/_uploads/SkXzm1F_h.png) ### **Step 1: Start Booking Create** - **User Action:** User clicks on the "New Booking" button on the main dashboard. - **System Response:** This action directs the user to a new screen titled "Create New Booking". ![](https://hackmd.io/_uploads/SkxPlNRwh.png) ### **Step 2: Customer Search or Add** - **User Action:** User enters the customer's name or contact details into a search bar labeled "Search for Customer". The system displays matching results in real-time as the user types. - **System Response:** If an existing customer is selected from the search suggestions, the system displays a compact summary of the customer's details below the search bar. A list of vehicles associated with this customer appears in a dropdown list. ![](https://hackmd.io/_uploads/Hyt8GNCwh.png) ### **Step 3: Vehicle Search or Add** - **User Action:** User selects the desired vehicle from the dropdown list or chooses to add a new vehicle to the customer's profile by clicking on the "+ Add New Vehicle" option. - **System Response:** If a new vehicle is added, a simplified form appears on the same screen, asking for the vehicle's plate number, make, and model. Once the information is submitted, the new vehicle is added to the customer's profile and is selected for the current booking. ![](https://hackmd.io/_uploads/r1WOGECP3.png) ### **Step 4: Change Vehicle Owner (Optional)** - **User Action:** User clicks the "Change Owner" button next to the selected vehicle, performs a customer search to select the new owner. - **System Response:** The system updates the vehicle owner information. ![](https://hackmd.io/_uploads/Bk9FGNAwh.png) ### **Step 5: Booking Details** - **User Action:** User fills out a form with fields for booking date, time, and estimated hours for the job. A notes field is available for any additional job information. - **System Response:** The system checks the workshop's capacity for the selected date and time. ![](https://hackmd.io/_uploads/BJOnMNAP2.png) ### **Step 6: Submit Booking** - **User Action:** If the capacity allows, the user clicks the "Submit Booking" button. - **System Response:** A confirmation message is displayed, and the booking is added to the workshop's schedule. If the capacity is full, a notification is displayed prompting the user to select a different date or time. ![](https://hackmd.io/_uploads/Bkj6z40vn.png) ## Flow Justification: Our Booking Management Process is designed with simplicity and efficiency at its core, ensuring an intuitive user experience (UX). - **Efficiency:** The process consolidates multiple steps into a single flow, reducing user navigation, enhancing usability. - **Real-Time Search:** Real-time suggestions speed up customer or vehicle search and reduce errors. - **Simplicity:** Users can add new customers and vehicles within the same flow, improving the process efficiency. - **Flexibility & Control:** Allows changes in vehicle ownership and selection from available time slots based on workshop capacity. - **Capacity Check:** A built-in feature that ensures organized scheduling and prevents overbooking conflicts. - **Centralization:** All required information is entered in one place, improving data consistency and review process. This design caters to all users, providing an effective way to manage bookings and boost workshop productivity. ## Requirements (optional - based on) The system provides an efficient way to manage bookings. It aims to make the booking process as intuitive and user-friendly as possible. #### Search for Existing Customers or Vehicles The initial step in the booking process involves searching for the customer or vehicle. Users can quickly search for existing customers or vehicles using relevant parameters like name, contact information, plate number, model, or make. #### Add New Customers or Vehicles If the customer or vehicle is not found in the existing database, users have the option to add them. This process will include capturing necessary details for the customer, such as name and contact information, or for the vehicle, like plate number, model, and make. #### Manage Customer-Vehicle Association If a customer is found in the database, the system will show a list of vehicles associated with this customer. Users can select a vehicle from this list or add a new one. Similarly, if a vehicle is found in the database, users will be able to see the associated customer. If needed, they can change the customer for this booking. Changes in vehicle ownership for the new booking should be revertable in case of a mistake. The system will maintain a comprehensive history of these changes for audit purposes. #### Set Booking Date and Time While setting the booking date and time, the system will consider the workshop's available capacity and time slots for the selected date. This feature might show a calendar or any other intuitive interface to make the scheduling process simple and straightforward. #### UX Requirements The system design and user interface should be smooth and seamless for all users. It should support easy navigation and a user-friendly experience to enhance the efficiency of the workshop operations.