How huyhoangphan2410/nhom1_medicalbookingapp works
MedBooking is a medical appointment booking application with a Vue frontend, Spring Boot API, and MySQL database. Patients browse doctors, register and verify email, book appointments, and make payments; doctors manage schedules, while administrators manage users and booking records. The graph preserves those domain branches, but several service and view implementations were not sampled, so their internal calls are not asserted. The documented deployment topology supports the frontend-to-backend-to-database links; OTP email is a documented optional integration.
Main entry points: MedBookingApplication.java Spring Boot API · index.js Role-Based Routes · axios.js HTTP Client · App.vue Vue Application
Components 20
Patient and Doctor UI
- Vue Application
frontend/src/App.vue - Role-Based Routes
frontend/src/router/index.js - Authentication Views
frontend/src/views/AuthView.vue - Session Store
frontend/src/stores/auth.js - Booking Views
frontend/src/views/HomeView.vue - Doctor Dashboard
frontend/src/views/DoctorDashboardView.vue - Admin Views
frontend/src/views/admin/AdminDashboard.vue - HTTP Client
frontend/src/api/axios.js
Backend API
- Spring Boot API
backend/src/main/java/com/medbooking/MedBookingApplication.java
Booking Services
- Authentication
backend/src/main/java/com/medbooking/service/impl/AuthServiceImpl.java - Email Verification
backend/src/main/java/com/medbooking/service/EmailVerificationService.java - Appointment Booking
backend/src/main/java/com/medbooking/controller/AppointmentController.java - Payment Confirmation
backend/src/main/java/com/medbooking/controller/PaymentController.java - Schedule Management
backend/src/main/java/com/medbooking/controller/ScheduleController.java - Doctor Catalog
backend/src/main/java/com/medbooking/controller/DoctorController.java - Booking Records
backend/src/main/java/com/medbooking/entity/Appointment.java
Administration
- Admin Management
backend/src/main/java/com/medbooking/controller/admin/AdminUserController.java
Other components
- Patients and Doctors
- MySQL Database
- Gmail SMTP
Connections 23
- Patients and Doctors → Vue Application: uses
- Vue Application → Role-Based Routes: renders routes
frontend/src/App.vue - Role-Based Routes → Authentication Views: routes to
frontend/src/router/index.js - Role-Based Routes → Booking Views: routes to
frontend/src/router/index.js - Role-Based Routes → Doctor Dashboard: routes to
frontend/src/router/index.js - Role-Based Routes → Admin Views: routes to
frontend/src/router/index.js - Authentication Views → Session Store: uses
frontend/src/views/AuthView.vue - Session Store → HTTP Client: sends requests
frontend/src/stores/auth.js - Booking Views → HTTP Client: requests data
- Doctor Dashboard → HTTP Client: requests data
- Admin Views → HTTP Client: requests data
frontend/src/views/admin/AdminDashboard.vue - HTTP Client → Spring Boot API: calls API
- Spring Boot API → Authentication: dispatches auth
- Spring Boot API → Appointment Booking: dispatches booking
- Spring Boot API → Payment Confirmation: dispatches payment
- Spring Boot API → Schedule Management: dispatches schedules
- Spring Boot API → Doctor Catalog: dispatches catalog
- Spring Boot API → Admin Management: dispatches admin
- Authentication → Email Verification: sends OTP
backend/src/main/java/com/medbooking/service/impl/AuthServiceImpl.java - Email Verification → Gmail SMTP: sends email
- Appointment Booking → Booking Records: persists bookings
backend/src/main/java/com/medbooking/controller/AppointmentController.java - Spring Boot API → MySQL Database: stores application data
- Admin Management → MySQL Database: manages records