How mohamedfawzy29/shefaa works
Shefaa is a multi-role clinic and appointment platform. Patients discover doctors, book appointments, attend a branch, and receive medical records; completed visits can lead to reviews. Doctors configure branch membership and schedules, receptionists manage check-in and no-shows, and administrators oversee clinic resources and analytics. The React frontend is organized by feature and calls an area-based ASP.NET API backed by Entity Framework and SQL Server. The README documents the broader capabilities; sampled sources confirm selected controller, persistence, authentication, and review behavior, but not every feature’s wiring.
Main entry points: App.tsx React application · IRepository.cs Repository access · ApplicationDbContext.cs SQL Server data · ReviewsController.cs Review handling
Components 25
Frontend experience
- React application
Frontend/src/app/App.tsx - Authentication
Frontend/src/features/auth/services/authService.ts - Doctor discovery
Frontend/src/features/patient-appointments/services/patientDoctorService.ts - Patient appointments
Frontend/src/features/patient-appointments/services/patientAppointmentService.ts - Staff appointments
Frontend/src/features/appointments/services/appointmentService.ts - Clinic scheduling
Frontend/src/features/doctor-clinic/services/doctorClinicService.ts - Medical history
Frontend/src/features/patient-medical/services/patientMedicalService.ts - Reviews
Frontend/src/features/reviews/services/patientReviewService.ts - Admin management
Frontend/src/features/branches/services/branchService.ts
Clinical workflows
- Identity and profile
Backend/Shefaa/Areas/Identity/Controllers - Public lookups
Backend/Shefaa/Public Controllers/LookupController.cs - Patient appointments
Backend/Shefaa/Areas/Patient/Controllers/AppiontmentController.cs - Doctor clinic and schedule
Backend/Shefaa/Areas/DoctorArea/Controllers/DoctorClinicController.cs - Front desk
Backend/Shefaa/Areas/Receptionist/Controllers/AppointmentController.cs - Medical records
Backend/Shefaa/Areas/DoctorArea/Controllers/DoctorMedicalController.cs - Review handling
Backend/Shefaa/Areas/Patient/Controllers/ReviewsController.cs
Clinic administration
- Admin operations
Backend/Shefaa/Areas/Admin/Controllers - Admin analytics
Backend/Shefaa/Areas/Admin/Controllers/DashboardController.cs
Platform services
- Repository access
Backend/Shefaa/Repositories/IRepository.cs - Doctor rating service
Backend/Shefaa/Services/IDoctorService.cs - SQL Server data
Backend/Shefaa/Data/ApplicationDbContext.cs
Other components
- Visitor / patient
- Doctor
- Receptionist
- Administrator
Connections 32
- Visitor / patient → React application: uses
- Doctor → React application: uses
- Receptionist → React application: uses
- Administrator → React application: uses
- React application → Authentication: routes through
Frontend/src/app/App.tsx - React application → Doctor discovery: offers discovery
- Visitor / patient → Authentication: registers
- Authentication → Identity and profile: sends auth requests
Frontend/src/features/auth/services/authService.ts - Doctor discovery → Public lookups: requests lookups
- Visitor / patient → Patient appointments: books visit
- Patient appointments → Patient appointments: sends booking requests
- Patient appointments → Repository access: reads and writes
Backend/Shefaa/Areas/Patient/Controllers/AppiontmentController.cs - Doctor → Clinic scheduling: sets availability
- Clinic scheduling → Doctor clinic and schedule: manages schedules
- Doctor clinic and schedule → SQL Server data: queries data
Backend/Shefaa/Areas/DoctorArea/Controllers/DoctorClinicController.cs - Receptionist → Staff appointments: manages visits
- Staff appointments → Front desk: sends appointment requests
- Front desk → Repository access: reads and writes
Backend/Shefaa/Areas/Receptionist/Controllers/AppointmentController.cs - Doctor → Medical history: records consultation
- Medical history → Medical records: sends record requests
- Medical records → SQL Server data: queries data
Backend/Shefaa/Areas/DoctorArea/Controllers/DoctorMedicalController.cs - Visitor / patient → Reviews: leaves review
- Reviews → Review handling: sends review requests
- Review handling → Repository access: reads and writes
Backend/Shefaa/Areas/Patient/Controllers/ReviewsController.cs - Review handling → Doctor rating service: recalculates rating
Backend/Shefaa/Areas/Patient/Controllers/ReviewsController.cs - Doctor rating service → SQL Server data: updates doctor rating
- Administrator → Admin management: manages clinics
- Admin management → Admin operations: sends management requests
- Administrator → Admin analytics: views analytics
- Admin operations → Repository access: accesses records
Backend/Shefaa/Areas/Admin/Controllers/ReviewController.cs - Admin analytics → SQL Server data: summarizes data
- Repository access → SQL Server data: persists entities