The Smart Clinic Queue Management System is a role-based web application built with Spring Boot and MySQL to digitize and streamline patient flow in healthcare facilities.
The system combines appointment booking, emergency prioritization, doctor approval workflow, and payment validation into a structured queue management platform.
- Registration and login
- Book appointment
- Request emergency priority
- Online payment simulation
- View queue status
- Login after admin approval
- Verify emergency requests
- Manage appointment status
- Complete appointments
- Approve new doctor registrations
- View dashboard analytics
- Monitor appointments
- Manage system workflow
- Role-based access control for admin, doctor, and patient
- Token-based queue system
- Emergency case verification by doctor
- Priority-based queue handling
- Payment validation before service
- Appointment lifecycle management
- Main flow:
WAITING -> ASSIGNED -> CONSULTING -> COMPLETED - Cancellation flow:
WAITING -> CANCELLEDorASSIGNED -> CANCELLED
- Main flow:
The current appointment workflow is:
WAITING -> ASSIGNED -> CONSULTING -> COMPLETED
Cancellation is allowed only before consultation starts:
WAITING -> CANCELLEDASSIGNED -> CANCELLED
Workflow notes:
- Online booking creates the appointment in
WAITING. - If a patient selects a doctor during booking, that doctor is stored on the appointment, but the status still remains
WAITING. ASSIGNEDmeans the appointment has been taken from the queue and allocated to a doctor for active handling.CONSULTINGmeans the doctor has started the consultation.COMPLETEDmeans diagnosis and prescription have been recorded.CONSULTINGandCOMPLETEDappointments cannot be cancelled.- Refund processing is not implemented yet. Cancellation currently updates only the appointment status.
- Java
- Spring Boot
- Spring Data JPA
- Thymeleaf
- MySQL
- Maven
The project follows layered architecture:
Controller -> Service -> Repository -> Database
This keeps responsibilities separated and the codebase maintainable.
- Real payment gateway integration
- SMS or email notifications
- Real-time WebSocket queue updates
- Doctor time slot scheduling
- Refund workflow for cancelled appointments
Developed as a mini project for academic purposes.
- Java 24+
- MySQL 8+ running locally
- Database created:
clinic_db
Ensure the MySQL service is running.
Windows:
.\mvnw.cmd spring-boot:runmacOS/Linux:
./mvnw spring-boot:runhttp://localhost:8080/
set PORT=9090
.\mvnw.cmd spring-boot:runThen open:
http://localhost:9090/