-
Doctor Controller : Chedly
- GET /api/v1/doctors/{doctorId}/appointments (Sortable - Pageable)
- PATCH /api//v1/doctors/{doctorId} (Should only be accessed by the doctor himself)
-
Appointments Controller : Mouwahed
- POST /api/v1/appointments
- PATCH /api/v1/appointments ( Status - Date - Time - Notes / Should on be accessed by a doctor)
- GET /api/v1/appointments/{appointmentID}
-
Patients Controller : Mouwahed
- GET /api/v1/patients/{patientId}/appointments (Sortable - Pageable)
- GET /api/v1/patients/{patientId}/appointments/{appointmentID}
- PATCH /api/v1/patients/{patientId} (Should only be accessed by the patient himself)
-
User Auth ESLEM (https://javatodev.com/spring-boot-jwt-authentication/) :
- Add Spring Security
- ReferralID (https://www.baeldung.com/spring-request-param)
- User Confirmation
- JWT
-
Aspects : Chedly
- Logging Aspect
- Global Exception Handler
-
Exceptions :
- Exceptions
- Managing multiple request params with Spring
- Spring Profiling aspect
- Full logging aspect
- Exception Handling
- Pagination in Spring REST APIs
- Exception Handling solutions
- Exception handling best practices
- Project structure and best practices
- JWT Auth with Spring Security
- Real World Example app
- A user can create and manage his account, he can refer other users to sign up in order to obtain special offers/gifts.
- A user has to confirm his account in order to obtain full functionality access.
- A user can be a Doctor or a Patient.
A Doctor, in addition to his normal user abilities, can :
- Create/Read/Update/Delete(Cancel) an appointment.
- Checkout patients that have already had an appointment with him.
- Accept or reject appointments requested by a patient.
- List future appointments in a calendar.
- Update his contact information.
A Patient, in addition to his normal user abilities, can :
- List all Doctors affiliated with this service and sort them by city/speciality...
- Request an appointment with any doctor.
- List his history of Appointments with any doctor.
- List future appointments in a calendar.
- Update his contact information.