How omar-mahrem/medical_clinic works
MedicalClinic is a clinic-management platform with an Angular client and ASP.NET Core API over a SQL-backed application core. A representative patient journey is browsing doctors, booking an appointment, and later viewing medical records or a prescription PDF; doctors and staff also manage appointments and records. The README additionally documents role-based access, payment workflows, and automated reminders. Several backend capabilities are documented but their implementations were not sampled, so those branches are shown at subsystem level and uncertain links are omitted or marked unverified.
Main entry points: Program.cs API host · ApplicationDbContext.cs Application data context · MedicalRecordsController.cs Medical record endpoints · AppointmentServices.cs Appointment rules
Components 19
Angular client
- Route and role guards
MedicalClinic.Client/src/app/app.routes.ts - Clinic dashboards
MedicalClinic.Client/src/app/features - Client API services
MedicalClinic.Client/src/app/core/services
API and security
- API host
MedicalClinic.Api/Program.cs - Appointment endpoints
MedicalClinic.Api/Controllers/AppointmentsController.cs - Medical record endpoints
MedicalClinic.Api/Controllers/MedicalRecordsController.cs - Authentication endpoints
MedicalClinic.Api/Controllers/AuthController.cs
Clinic workflows
- Appointment rules
MedicalClinic.Application/Services/AppointmentServices.cs - Record management
MedicalClinic.Application/Services/MedicalRecordServices.cs - Identity workflows
MedicalClinic.Application/Services/AuthServices.cs - Doctor and patient management
MedicalClinic.Application/Services
Infrastructure services
- Prescription PDF
MedicalClinic.Infrastructure/Pdf/PrescriptionPdfGenerator.cs - Appointment notifications
MedicalClinic.Infrastructure/BackgroundJobs/NotificationService.cs - Email delivery
MedicalClinic.Infrastructure/Mail/EmailServices.cs - JWT provider
MedicalClinic.Infrastructure/Authentication/JwtProvider.cs
Domain and persistence
- Application data context
MedicalClinic.Infrastructure/Data/ApplicationDbContext.cs - SQL Server
- Clinic and identity entities
MedicalClinic.Core/Entities/Appointment.cs
Other components
- Patient or staff
Connections 19
- Patient or staff → Route and role guards: uses
MedicalClinic.Client/src/app/app.routes.ts - Route and role guards → Clinic dashboards: routes to
MedicalClinic.Client/src/app/app.routes.ts - Clinic dashboards → Client API services: requests data
- Client API services → API host: REST calls
README.md - API host → Appointment endpoints: hosts
README.md - API host → Medical record endpoints: hosts
README.md - API host → Authentication endpoints: hosts
README.md - Appointment endpoints → Appointment rules: invokes
MedicalClinic.Api/Controllers/AppointmentsController.cs - Medical record endpoints → Record management: invokes
MedicalClinic.Api/Controllers/MedicalRecordsController.cs - Medical record endpoints → Prescription PDF: generates PDF
MedicalClinic.Api/Controllers/MedicalRecordsController.cs - Authentication endpoints → Identity workflows: delegates
- Appointment rules → Application data context: reads and writes
MedicalClinic.Application/Services/AppointmentServices.cs - Record management → Application data context: reads and writes
- Identity workflows → JWT provider: issues tokens
- Appointment rules → Appointment notifications: requests notices
MedicalClinic.Application/Services/AppointmentServices.cs - Appointment notifications → Email delivery: sends email
MedicalClinic.Infrastructure/BackgroundJobs/NotificationService.cs - Identity workflows → Email delivery: queues email
MedicalClinic.Application/Services/AuthServices.cs - Application data context → SQL Server: persists data
README.md - Application data context → Clinic and identity entities: maps entities
MedicalClinic.Infrastructure/Data/ApplicationDbContext.cs