How karthikchejarla/doctorappointment works
This is a doctor-appointment booking application with a React frontend and Spring backend. Patients register or sign in, discover and filter doctors, inspect booked slots, book appointments, and manage bookings; doctors have a separate dashboard for appointment and slot management. The backend exposes these operations through a REST controller, delegates appointment and registration work to a service, and uses repositories for doctor, patient, and appointment data. The sampled service also sends registration and booking emails. Some frontend and backend modules were not sampled, so their detailed call wiring is omitted.
Main entry points: PatientController.java Appointment API · PatientService.java Appointment service · App.jsx App routing · CustomUserDetailsService.java User lookup
Components 19
Web application
- App routing
Frontend/src/App.jsx - Sign in / register
Frontend/src/Components/Auth.jsx - Patient dashboard
Frontend/src/Components/PatientDashboard.jsx - Doctor dashboard
Frontend/src/Components/DoctorDashboard.jsx - Slot booking UI
Frontend/src/Components/Bookslot.jsx - Doctor registration UI
Frontend/src/Components/DoctorRegister.jsx - Login UI
Frontend/src/Components/Login.jsx - Patient registration UI
Frontend/src/Components/PaitentRegister.jsx
REST API
- Appointment API
doctorAppointment/src/main/java/com/spring/doctorAppointment/controller/PatientController.java
Appointment domain
- Appointment service
doctorAppointment/src/main/java/com/spring/doctorAppointment/service/PatientService.java - Doctor records
doctorAppointment/src/main/java/com/spring/doctorAppointment/repo/DoctorRepo.java - Patient records
doctorAppointment/src/main/java/com/spring/doctorAppointment/repo/PatientRepo.java - Appointment records
doctorAppointment/src/main/java/com/spring/doctorAppointment/repo/AppointmentRepo.java - Email service
doctorAppointment/src/main/java/com/spring/doctorAppointment/service/EmailService.java
Access and security
- Security configuration
doctorAppointment/src/main/java/com/spring/doctorAppointment/config/SecurityConfig.java - User lookup
doctorAppointment/src/main/java/com/spring/doctorAppointment/service/CustomUserDetailsService.java - Rate limiting
doctorAppointment/src/main/java/com/spring/doctorAppointment/config/RateLimitingFilter.java
Other components
- Patient
- Mail provider
Connections 23
- Patient → App routing: uses
- App routing → Sign in / register: shows when signed out
- App routing → Patient dashboard: routes patient
- App routing → Doctor dashboard: routes doctor
- Sign in / register → Appointment API: calls auth endpoints
- Patient dashboard → Appointment API: calls booking API
- Slot booking UI → Appointment API: books slots
- Doctor registration UI → Appointment API: registers doctor
- Patient registration UI → Appointment API: registers patient
- Login UI → Appointment API: signs in
- Doctor dashboard → Appointment API: manages appointments
- Appointment API → Appointment service: delegates operations
- Appointment API → Doctor records: looks up login
- Appointment API → Patient records: looks up login
- Appointment service → Doctor records: reads and writes
- Appointment service → Patient records: reads and writes
- Appointment service → Appointment records: reads and writes
- Appointment service → Email service: sends notices
- Email service → Mail provider: sends email
- Security configuration → User lookup: loads user details
- User lookup → Doctor records: checks doctor email
- User lookup → Patient records: checks patient email
- Rate limiting → Appointment API: filters requests