How meghanag-16/online-appointment-and-queue-management-system works
MediQueue is a hospital appointment and queue web application: role-based users book or manage appointments, staff run the doctor queue, and patients and clinicians use related billing and clinical-record features. The frontend routes users to role-specific pages and calls a Spring REST backend; backend services enforce domain rules and persist operational data. The README documents major capabilities not represented by sampled source excerpts, so those are shown at subsystem level. Relationships involving unsampled implementations are limited to documented links.
Main entry points: Appointment.java MySQL data · AppointmentService.java Appointment rules · AppRouter.jsx Role-based portals · controller REST controllers
Components 21
Web application
- Role-based portals
mediqueue-frontend/src/routes/AppRouter.jsx - Session state
mediqueue-frontend/src/context/AuthContext.jsx - API client
mediqueue-frontend/src/api/axiosInstance.js
Identity and access
- REST controllers
mediqueue-backend/src/main/java/com/mediqueue/controller - Authentication
mediqueue-backend/src/main/java/com/mediqueue/service/impl/AuthServiceImpl.java - Current user
mediqueue-backend/src/main/java/com/mediqueue/security/CurrentUserService.java - Account management
mediqueue-backend/src/main/java/com/mediqueue/service/UserAccountService.java
Appointments and queue
- Appointment endpoints
mediqueue-backend/src/main/java/com/mediqueue/controller/AppointmentController.java - Appointment rules
mediqueue-backend/src/main/java/com/mediqueue/service/AppointmentService.java - Live queue
mediqueue-backend/src/main/java/com/mediqueue/service/impl/QueueManager.java - Slot scheduling
mediqueue-backend/src/main/java/com/mediqueue/service - Appointment events
mediqueue-backend/src/main/java/com/mediqueue/event
Clinical and billing
- Clinical records
mediqueue-backend/src/main/java/com/mediqueue/service - Lab reports
mediqueue-backend/src/main/java/com/mediqueue/service - Billing
mediqueue-backend/src/main/java/com/mediqueue/billing - Complaints
mediqueue-backend/src/main/java/com/mediqueue/service - Notifications
Administration
- MySQL data
mediqueue-backend/src/main/java/com/mediqueue/entity/Appointment.java - Administration
mediqueue-backend/src/main/java/com/mediqueue/controller/AdminController.java - Audit log
mediqueue-backend/src/main/java/com/mediqueue/audit/AuditService.java
Other components
- Patients and staff
Connections 22
- Patients and staff → Role-based portals: use portals
- Role-based portals → Session state: reads session
mediqueue-frontend/src/routes/AppRouter.jsx - Session state → API client: stores token
mediqueue-frontend/src/context/AuthContext.jsx - Role-based portals → API client: requests data
- API client → REST controllers: calls REST API
- REST controllers → Authentication: delegates login
- Authentication → Account management: registers patients
mediqueue-backend/src/main/java/com/mediqueue/service/impl/AuthServiceImpl.java - Authentication → MySQL data: loads credentials
mediqueue-backend/src/main/java/com/mediqueue/service/impl/AuthServiceImpl.java - REST controllers → Appointment rules: handles appointments
mediqueue-backend/src/main/java/com/mediqueue/controller/AppointmentController.java - Appointment endpoints → Appointment rules: delegates requests
mediqueue-backend/src/main/java/com/mediqueue/controller/AppointmentController.java - Appointment rules → Live queue: updates queue
- Appointment events → Live queue: dispatches changes
mediqueue-backend/src/main/java/com/mediqueue/service/impl/QueueManager.java - Live queue → MySQL data: reads and writes
mediqueue-backend/src/main/java/com/mediqueue/service/impl/QueueManager.java - Slot scheduling → MySQL data: manages slots
mediqueue-backend/src/main/java/com/mediqueue/service/impl/QueueManager.java - Appointment rules → Billing: creates visit bills
- Appointment rules → Notifications: notifies patients
- Clinical records → MySQL data: persists records
mediqueue-backend/src/main/java/com/mediqueue/service/impl/QueueManager.java - Lab reports → MySQL data: stores reports
mediqueue-backend/src/main/java/com/mediqueue/service/impl/QueueManager.java - Complaints → MySQL data: stores complaints
mediqueue-backend/src/main/java/com/mediqueue/service/impl/QueueManager.java - Administration → Audit log: searches audit
mediqueue-backend/src/main/java/com/mediqueue/controller/AdminController.java - Administration → Account management: manages accounts
- Billing → MySQL data: records bills