During this workshop, we will implement a multi-layered server application for the Appointment Booking System.
Our development process will begin with defining the data model and implementing the data access layer. This will establish a solid foundation for handling appointments, treatments, and user roles within the system.
By following a structured approach, we will incrementally build the core functionalities, ensuring maintainability and scalability.
- 1. Overview
- 2. Use Cases
- 2.1. Retrieve List of Available Treatments
- 2.2. Retrieve Treatment Details
- 2.3. Specialist Creates a New Treatment
- 2.4. Client Books an Appointment
- 2.5. Validate Scheduling Conflicts
- 2.6. Client Checks Their Appointments
- 2.7. Client Cancels an Appointment
- 2.8. Specialist Marks an Appointment as Completed
- 2.9. Client Retrieves Appointment History
- 2.10. Specialist Retrieves Their Appointment History
- 2.11. Checking Appointment Availability
- 3. Sequence Diagram
- 4. Navigation
The Appointment Booking System is a web-based application designed to facilitate scheduling appointments between clients and specialists. The system ensures efficient booking management, availability validation, and appointment status tracking.
Actor: Client Description: A client can retrieve a list of available treatments, optionally filtering by specialist or treatment name.
Flow:
-
The client requests a list of treatments.
-
The system retrieves available treatments from the database.
-
The client receives the list of treatments, optionally filtered.
Actor: Client Description: A client can view the details of a specific treatment, including information about the assigned specialist.
Flow:
-
The client selects a treatment.
-
The system retrieves detailed information about the treatment, including the specialist assigned to it.
-
The client receives the treatment details.
Actor: Specialist Description: A specialist can create a new treatment, defining its name and duration.
Flow:
-
The specialist submits a request to create a treatment.
-
The system stores the treatment in the database.
-
The specialist receives a confirmation that the treatment was created.
Actor: Client Description: A client selects a treatment and schedules an appointment.
Flow:
-
The client chooses a treatment and provides a date and time.
-
The system checks if the specialist is available.
-
If available, the system saves the appointment and confirms the booking.
-
If not available, the client receives an error message.
Actor: Client Description: The system ensures no two appointments overlap for a specialist.
Flow:
-
The client requests an appointment.
-
The system checks for existing appointments at the same time.
-
If a conflict exists, the client is notified.
-
If no conflict exists, the appointment proceeds to booking.
Actor: Client Description: A client can retrieve a list of their scheduled appointments.
Flow:
-
The client requests a list of their appointments.
-
The system retrieves and returns the appointments.
Actor: Client Description: A client can cancel a previously scheduled appointment.
Flow:
-
The client selects an appointment to cancel.
-
The system updates the appointment status to "CANCELLED."
-
The client receives confirmation.
Actor: Specialist Description: A specialist can mark an appointment as completed after the service has been provided.
Flow:
-
The specialist selects an appointment to mark as completed.
-
The system updates the appointment status to "COMPLETED."
-
The specialist receives confirmation.
Actor: Client Description: A client can view past appointments (both completed and cancelled).
Flow:
-
The client requests a list of past appointments.
-
The system retrieves and displays the history.
Actor: Specialist Description: A specialist can view a list of their past appointments.
Flow:
-
The specialist requests a list of past appointments.
-
The system retrieves and displays the history.
Actor: Client Description: The system checks if a specialist is available for a given time slot.
Flow:
-
The client requests availability for a specific specialist and time.
-
The system checks for existing appointments at the given time.
-
If no conflicting appointments exist, the system returns "Available."
-
If a conflict exists, the system returns "Not Available."
For a visual representation of the use cases, see the sequence diagram.