# vignesh-018/adoe2e architecture

> Architecture diagram of the GitHub repository vignesh-018/adoe2e, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vignesh-018/adoe2e
- Repository: https://github.com/vignesh-018/adoe2e

## Overview

My Health Clinic is a clinic-management web application: staff sign in, use browser screens to manage clinic tenants, users, doctors, and patients, and view dashboard/report information. The AngularJS controllers invoke feature services; the API exposes corresponding domain endpoints, with sampled user and tenant endpoints delegating to repositories. Persistence details and most feature-specific API wiring are inferred only from names in the tree, so those uncertain links are omitted. The tree also indicates appointment, medicine, tip, and reporting capabilities.

Main entry points: [`src/MyHealth.API/AppExtensions/Extensions.cs`](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/AppExtensions/Extensions.cs) (Clinic API), [`src/MyHealth.API/Controllers/TenantsController.cs`](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/TenantsController.cs) (Tenant endpoints), [`src/MyHealth.API/Controllers/UsersController.cs`](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/UsersController.cs) (User endpoints), [`src/MyHealth.Data/Repositories/ApplicationUsersRepository.cs`](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Data/Repositories/ApplicationUsersRepository.cs) (User repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experience"]
  node_webapp["Web application<br/>[Startup.cs]"]
  node_clinicui["Clinic management"]
  node_doctorui["Doctor management"]
  node_patientui["Patient management"]
  node_userui["User management<br/>[usersController.js]"]
  node_dashboard["Clinic dashboard"]
  node_clinicservice["Clinic service<br/>[clinicsService.js]"]
  node_doctorservice["Doctor service<br/>[doctorsService.js]"]
  node_patientservice["Patient service<br/>[patientsService.js]"]
  node_userservice["User service<br/>[usersService.js]"]
  node_dashboardservice["Dashboard service"]
end

subgraph group_api["API endpoints"]
  node_api["Clinic API<br/>[Extensions.cs]"]
  node_tenantsapi["Tenant endpoints"]
  node_usersapi["User endpoints<br/>[UsersController.cs]"]
  node_doctorsapi["Doctor endpoints"]
  node_patientsapi["Patient endpoints"]
  node_appointmentsapi["Appointment endpoints"]
  node_medicinesapi["Medicine endpoints"]
  node_reportsapi["Reports and tips"]
end

subgraph group_data["Domain and data"]
  node_repositories["Domain repositories<br/>[Repositories]"]
  node_database[("Clinic data<br/>[MyHealthContext.cs]")]
  node_models["Clinic domain<br/>[MyHealth.Model]"]
end

subgraph group_identity["Identity"]
  node_login["Sign-in"]
  node_identitydata["User repository"]
end

node_staff(("Clinic staff"))

node_staff -->|"uses"| node_webapp
node_webapp -->|"routes sign-in"| node_login
node_clinicui -->|"requests clinic data"| node_clinicservice
node_doctorui -->|"manages doctors"| node_doctorservice
node_patientui -->|"manages patients"| node_patientservice
node_userui -->|"manages users"| node_userservice
node_dashboard -->|"requests summaries"| node_dashboardservice
node_api -->|"dispatches"| node_tenantsapi
node_api -->|"dispatches"| node_usersapi
node_api -->|"dispatches"| node_doctorsapi
node_api -->|"dispatches"| node_patientsapi
node_api -->|"dispatches"| node_appointmentsapi
node_api -->|"dispatches"| node_medicinesapi
node_api -->|"dispatches"| node_reportsapi
node_tenantsapi -->|"delegates tenant queries"| node_repositories
node_usersapi -->|"delegates user operations"| node_identitydata
node_identitydata -->|"queries user data"| node_database
node_repositories -->|"accesses clinic data"| node_database
node_tenantsapi -->|"uses tenant model"| node_models
node_usersapi -->|"uses user model"| node_models
node_login -->|"authenticates"| node_identitydata

click node_webapp "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/Startup.cs"
click node_login "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/Controllers/AccountController.cs"
click node_clinicui "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/clinics/controllers/clinicsController.js"
click node_doctorui "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/doctors/controllers/doctorDetailController.js"
click node_patientui "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/patients/controllers/patientsController.js"
click node_userui "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/users/controllers/usersController.js"
click node_dashboard "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/dashboard/controllers/dashboardController.js"
click node_clinicservice "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/clinics/services/clinicsService.js"
click node_doctorservice "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/doctors/services/doctorsService.js"
click node_patientservice "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/patients/services/patientsService.js"
click node_userservice "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/users/services/usersService.js"
click node_dashboardservice "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/dashboard/services/dashboardService.js"
click node_api "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/AppExtensions/Extensions.cs"
click node_tenantsapi "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/TenantsController.cs"
click node_usersapi "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/UsersController.cs"
click node_doctorsapi "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/DoctorsController.cs"
click node_patientsapi "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/PatientsController.cs"
click node_appointmentsapi "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/ClinicAppointmentsController.cs"
click node_medicinesapi "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/MedicinesController.cs"
click node_reportsapi "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/ReportsController.cs"
click node_repositories "https://github.com/vignesh-018/adoe2e/tree/master/src/MyHealth.Data/Repositories"
click node_database "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Data/MyHealthContext.cs"
click node_models "https://github.com/vignesh-018/adoe2e/tree/master/src/MyHealth.Model"
click node_identitydata "https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Data/Repositories/ApplicationUsersRepository.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_webapp,node_clinicui,node_doctorui,node_patientui,node_userui,node_dashboard,node_clinicservice,node_doctorservice,node_patientservice,node_userservice,node_dashboardservice toneBlue
class node_api,node_tenantsapi,node_usersapi,node_doctorsapi,node_patientsapi,node_appointmentsapi,node_medicinesapi,node_reportsapi toneAmber
class node_repositories,node_database,node_models toneMint
class node_login,node_identitydata toneRose
class node_staff toneIndigo
```

## Components

### Web experience

- [Web application](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/Startup.cs): `src/MyHealth.Web/Startup.cs`
- [Clinic management](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/clinics/controllers/clinicsController.js): `src/MyHealth.Web/content/app/components/clinics/controllers/clinicsController.js`
- [Doctor management](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/doctors/controllers/doctorDetailController.js): `src/MyHealth.Web/content/app/components/doctors/controllers/doctorDetailController.js`
- [Patient management](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/patients/controllers/patientsController.js): `src/MyHealth.Web/content/app/components/patients/controllers/patientsController.js`
- [User management](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/users/controllers/usersController.js): `src/MyHealth.Web/content/app/components/users/controllers/usersController.js`
- [Clinic dashboard](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/dashboard/controllers/dashboardController.js): `src/MyHealth.Web/content/app/components/dashboard/controllers/dashboardController.js`
- [Clinic service](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/clinics/services/clinicsService.js): `src/MyHealth.Web/content/app/components/clinics/services/clinicsService.js`
- [Doctor service](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/doctors/services/doctorsService.js): `src/MyHealth.Web/content/app/components/doctors/services/doctorsService.js`
- [Patient service](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/patients/services/patientsService.js): `src/MyHealth.Web/content/app/components/patients/services/patientsService.js`
- [User service](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/users/services/usersService.js): `src/MyHealth.Web/content/app/components/users/services/usersService.js`
- [Dashboard service](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/content/app/components/dashboard/services/dashboardService.js): `src/MyHealth.Web/content/app/components/dashboard/services/dashboardService.js`

### API endpoints

- [Clinic API](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/AppExtensions/Extensions.cs): `src/MyHealth.API/AppExtensions/Extensions.cs`
- [Tenant endpoints](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/TenantsController.cs): `src/MyHealth.API/Controllers/TenantsController.cs`
- [User endpoints](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/UsersController.cs): `src/MyHealth.API/Controllers/UsersController.cs`
- [Doctor endpoints](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/DoctorsController.cs): `src/MyHealth.API/Controllers/DoctorsController.cs`
- [Patient endpoints](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/PatientsController.cs): `src/MyHealth.API/Controllers/PatientsController.cs`
- [Appointment endpoints](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/ClinicAppointmentsController.cs): `src/MyHealth.API/Controllers/ClinicAppointmentsController.cs`
- [Medicine endpoints](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/MedicinesController.cs): `src/MyHealth.API/Controllers/MedicinesController.cs`
- [Reports and tips](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.API/Controllers/ReportsController.cs): `src/MyHealth.API/Controllers/ReportsController.cs`

### Domain and data

- [Domain repositories](https://github.com/vignesh-018/adoe2e/tree/master/src/MyHealth.Data/Repositories): `src/MyHealth.Data/Repositories`
- [Clinic data](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Data/MyHealthContext.cs): `src/MyHealth.Data/MyHealthContext.cs`
- [Clinic domain](https://github.com/vignesh-018/adoe2e/tree/master/src/MyHealth.Model): `src/MyHealth.Model`

### Identity

- [Sign-in](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Web/Controllers/AccountController.cs): `src/MyHealth.Web/Controllers/AccountController.cs`
- [User repository](https://github.com/vignesh-018/adoe2e/blob/master/src/MyHealth.Data/Repositories/ApplicationUsersRepository.cs): `src/MyHealth.Data/Repositories/ApplicationUsersRepository.cs`

### Other components

- **Clinic staff**

## Connections

- Clinic staff → Web application: uses
- Web application → Sign-in: routes sign-in
- Clinic management → Clinic service: requests clinic data
- Doctor management → Doctor service: manages doctors
- Patient management → Patient service: manages patients
- User management → User service: manages users
- Clinic dashboard → Dashboard service: requests summaries
- Clinic API → Tenant endpoints: dispatches
- Clinic API → User endpoints: dispatches
- Clinic API → Doctor endpoints: dispatches
- Clinic API → Patient endpoints: dispatches
- Clinic API → Appointment endpoints: dispatches
- Clinic API → Medicine endpoints: dispatches
- Clinic API → Reports and tips: dispatches
- Tenant endpoints → Domain repositories: delegates tenant queries
- User endpoints → User repository: delegates user operations
- User repository → Clinic data: queries user data
- Domain repositories → Clinic data: accesses clinic data
- Tenant endpoints → Clinic domain: uses tenant model
- User endpoints → Clinic domain: uses user model
- Sign-in → User repository: authenticates
