# meettomb/healthconnect architecture

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

- Interactive diagram: https://gitdiagram.com/meettomb/healthconnect
- Repository: https://github.com/meettomb/healthconnect

## Overview

HealthConnect is an ASP.NET Core health-services portal combining doctor discovery and appointment management with pharmacy shopping, user and seller accounts, administration, blogs, feedback, and real-time chat. Users browse doctors or medicines, then book/manage appointments or shop and track orders; administrators manage users, approvals, catalogues, reports, and orders. The sampled application code shows Razor Pages issuing SQL queries directly, while Program.cs registers the shared database context, email service, middleware, and chat hub. Several feature branches are represented by their exact tree paths but their internal calls were not sampled.

Main entry points: [`HealthConnect/Program.cs`](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Program.cs) (ASP.NET host), [`HealthConnect/Pages/User/AppointmentManage/All_appointment.cshtml.cs`](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/User/AppointmentManage/All_appointment.cshtml.cs) (Appointment management), [`HealthConnect/Pages/Ecom/Single_Product.cshtml.cs`](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Ecom/Single_Product.cshtml.cs) (Product details), [`HealthConnect/Services/EmailService.cs`](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Services/EmailService.cs) (Email delivery)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_care["Care and appointments"]
  node_care_browse["Doctor discovery"]
  node_doctor_profile["Doctor profiles"]
  node_appointments["Appointment management"]
  node_appointment_model["Appointment records<br/>[Appointments.cs]"]
end

subgraph group_commerce["Pharmacy commerce"]
  node_pharmacy["Pharmacy catalogue<br/>[Pharmacy.cshtml.cs]"]
  node_product["Product details"]
  node_cart["Shopping cart<br/>[Cart.cshtml.cs]"]
  node_cart_model["Cart records<br/>[Cart.cs]"]
  node_orders["Order history"]
  node_seller["Seller operations"]
end

subgraph group_admin["Administration"]
  node_admin_dashboard["Admin dashboard"]
  node_admin_catalog["Catalog management"]
  node_admin_users["User approvals"]
  node_admin_orders["Order administration"]
  node_doctor_reports["Doctor reports"]
end

subgraph group_community["Content and chat"]
  node_blogs["Blog publishing"]
  node_feedback["Feedback intake<br/>[Index.cshtml.cs]"]
  node_chat_page["Chat pages"]
  node_chat_hub["SignalR chat<br/>[ChatHub.cs]"]
end

subgraph group_platform["Application platform"]
  node_web_app["ASP.NET host<br/>[Program.cs]"]
  node_db_context["EF database context"]
  node_auth_middleware["Token middleware"]
  node_email_service["Email delivery<br/>[EmailService.cs]"]
  node_email_interface["Email contract<br/>[IEmailService.cs]"]
end

node_user(("Portal user"))
node_administrator(("Administrator"))
node_sql[("SQL Server")]

node_user -->|"explores doctors"| node_care_browse
node_user -->|"manages visits"| node_appointments
node_care_browse -.->|"opens profiles"| node_doctor_profile
node_appointments -->|"queries appointments"| node_sql
node_appointments -->|"builds records"| node_appointment_model
node_appointments -->|"sends notices"| node_email_service
node_user -->|"browses medicines"| node_pharmacy
node_pharmacy -.->|"opens products"| node_product
node_product -->|"loads product data"| node_sql
node_product -->|"adds cart entries"| node_cart_model
node_user -->|"tracks orders"| node_orders
node_orders -->|"reads and updates orders"| node_sql
node_user -->|"manages listings"| node_seller
node_administrator -->|"reviews operations"| node_admin_dashboard
node_administrator -->|"maintains catalogue"| node_admin_catalog
node_administrator -->|"reviews accounts"| node_admin_users
node_administrator -->|"manages orders"| node_admin_orders
node_administrator -->|"reviews reports"| node_doctor_reports
node_admin_dashboard -->|"queries dashboard data"| node_sql
node_user -->|"writes and reads blogs"| node_blogs
node_user -->|"submits feedback"| node_feedback
node_feedback -->|"inserts feedback"| node_sql
node_user -->|"starts conversations"| node_chat_page
node_chat_page -.->|"uses chat hub"| node_chat_hub
node_web_app -->|"registers context"| node_db_context
node_db_context -->|"connects database"| node_sql
node_web_app -->|"maps hub"| node_chat_hub
node_web_app -->|"adds middleware"| node_auth_middleware
node_web_app -->|"registers service"| node_email_service
node_email_service -->|"implements contract"| node_email_interface

click node_care_browse "https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/User"
click node_doctor_profile "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/User/Doctor_Profile.cshtml.cs"
click node_appointments "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/User/AppointmentManage/All_appointment.cshtml.cs"
click node_appointment_model "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Models/Appointments.cs"
click node_pharmacy "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Pharmacy.cshtml.cs"
click node_product "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Ecom/Single_Product.cshtml.cs"
click node_cart "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Ecom/Cart.cshtml.cs"
click node_cart_model "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Models/Cart.cs"
click node_orders "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/User/Order_history.cshtml.cs"
click node_seller "https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/User/Saler"
click node_admin_dashboard "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Admin/Admin_index.cshtml.cs"
click node_admin_catalog "https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Admin/Medicine_list_management"
click node_admin_users "https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Admin/UserData"
click node_admin_orders "https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Admin/UserData/OrderStatus"
click node_doctor_reports "https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Admin/DoctorReportsManage"
click node_blogs "https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Blogs"
click node_feedback "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Index.cshtml.cs"
click node_chat_page "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Chatting/Chatting_page.cshtml.cs"
click node_chat_hub "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Hubs/ChatHub.cs"
click node_web_app "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Program.cs"
click node_db_context "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Models/HealthConnectContext.cs"
click node_auth_middleware "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/AuthTokenMiddleware.cs"
click node_email_service "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Services/EmailService.cs"
click node_email_interface "https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Services/IEmailService.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_care_browse,node_doctor_profile,node_appointments,node_appointment_model,node_user toneBlue
class node_pharmacy,node_product,node_cart,node_cart_model,node_orders,node_seller,node_sql toneAmber
class node_admin_dashboard,node_admin_catalog,node_admin_users,node_admin_orders,node_doctor_reports toneMint
class node_blogs,node_feedback,node_chat_page,node_chat_hub toneRose
class node_web_app,node_db_context,node_auth_middleware,node_email_service,node_email_interface,node_administrator toneIndigo
```

## Components

### Care and appointments

- [Doctor discovery](https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/User): `HealthConnect/Pages/User`
- [Doctor profiles](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/User/Doctor_Profile.cshtml.cs): `HealthConnect/Pages/User/Doctor_Profile.cshtml.cs`
- [Appointment management](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/User/AppointmentManage/All_appointment.cshtml.cs): `HealthConnect/Pages/User/AppointmentManage/All_appointment.cshtml.cs`
- [Appointment records](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Models/Appointments.cs): `HealthConnect/Models/Appointments.cs`

### Pharmacy commerce

- [Pharmacy catalogue](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Pharmacy.cshtml.cs): `HealthConnect/Pages/Pharmacy.cshtml.cs`
- [Product details](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Ecom/Single_Product.cshtml.cs): `HealthConnect/Pages/Ecom/Single_Product.cshtml.cs`
- [Shopping cart](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Ecom/Cart.cshtml.cs): `HealthConnect/Pages/Ecom/Cart.cshtml.cs`
- [Cart records](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Models/Cart.cs): `HealthConnect/Models/Cart.cs`
- [Order history](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/User/Order_history.cshtml.cs): `HealthConnect/Pages/User/Order_history.cshtml.cs`
- [Seller operations](https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/User/Saler): `HealthConnect/Pages/User/Saler`

### Administration

- [Admin dashboard](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Admin/Admin_index.cshtml.cs): `HealthConnect/Pages/Admin/Admin_index.cshtml.cs`
- [Catalog management](https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Admin/Medicine_list_management): `HealthConnect/Pages/Admin/Medicine_list_management`
- [User approvals](https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Admin/UserData): `HealthConnect/Pages/Admin/UserData`
- [Order administration](https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Admin/UserData/OrderStatus): `HealthConnect/Pages/Admin/UserData/OrderStatus`
- [Doctor reports](https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Admin/DoctorReportsManage): `HealthConnect/Pages/Admin/DoctorReportsManage`

### Content and chat

- [Blog publishing](https://github.com/meettomb/healthconnect/tree/main/HealthConnect/Pages/Blogs): `HealthConnect/Pages/Blogs`
- [Feedback intake](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Index.cshtml.cs): `HealthConnect/Pages/Index.cshtml.cs`
- [Chat pages](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Pages/Chatting/Chatting_page.cshtml.cs): `HealthConnect/Pages/Chatting/Chatting_page.cshtml.cs`
- [SignalR chat](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Hubs/ChatHub.cs): `HealthConnect/Hubs/ChatHub.cs`

### Application platform

- [ASP.NET host](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Program.cs): `HealthConnect/Program.cs`
- [EF database context](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Models/HealthConnectContext.cs): `HealthConnect/Models/HealthConnectContext.cs`
- [Token middleware](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/AuthTokenMiddleware.cs): `HealthConnect/AuthTokenMiddleware.cs`
- [Email delivery](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Services/EmailService.cs): `HealthConnect/Services/EmailService.cs`
- [Email contract](https://github.com/meettomb/healthconnect/blob/main/HealthConnect/Services/IEmailService.cs): `HealthConnect/Services/IEmailService.cs`

### Other components

- **Portal user**
- **Administrator**
- **SQL Server**

## Connections

- Portal user → Doctor discovery: explores doctors
- Portal user → Appointment management: manages visits
- Doctor discovery → Doctor profiles: opens profiles
- Appointment management → SQL Server: queries appointments (evidence: `HealthConnect/Pages/User/AppointmentManage/All_appointment.cshtml.cs`)
- Appointment management → Appointment records: builds records (evidence: `HealthConnect/Pages/User/AppointmentManage/All_appointment.cshtml.cs`)
- Appointment management → Email delivery: sends notices (evidence: `HealthConnect/Pages/User/AppointmentManage/All_appointment.cshtml.cs`)
- Portal user → Pharmacy catalogue: browses medicines
- Pharmacy catalogue → Product details: opens products
- Product details → SQL Server: loads product data (evidence: `HealthConnect/Pages/Ecom/Single_Product.cshtml.cs`)
- Product details → Cart records: adds cart entries (evidence: `HealthConnect/Pages/Ecom/Single_Product.cshtml.cs`)
- Portal user → Order history: tracks orders
- Order history → SQL Server: reads and updates orders (evidence: `HealthConnect/Pages/User/Order_history.cshtml.cs`)
- Portal user → Seller operations: manages listings
- Administrator → Admin dashboard: reviews operations
- Administrator → Catalog management: maintains catalogue
- Administrator → User approvals: reviews accounts
- Administrator → Order administration: manages orders
- Administrator → Doctor reports: reviews reports
- Admin dashboard → SQL Server: queries dashboard data (evidence: `HealthConnect/Pages/Admin/Admin_index.cshtml.cs`)
- Portal user → Blog publishing: writes and reads blogs
- Portal user → Feedback intake: submits feedback (evidence: `HealthConnect/Pages/Index.cshtml.cs`)
- Feedback intake → SQL Server: inserts feedback (evidence: `HealthConnect/Pages/Index.cshtml.cs`)
- Portal user → Chat pages: starts conversations
- Chat pages → SignalR chat: uses chat hub
- ASP.NET host → EF database context: registers context (evidence: `HealthConnect/Program.cs`)
- EF database context → SQL Server: connects database
- ASP.NET host → SignalR chat: maps hub (evidence: `HealthConnect/Program.cs`)
- ASP.NET host → Token middleware: adds middleware (evidence: `HealthConnect/Program.cs`)
- ASP.NET host → Email delivery: registers service (evidence: `HealthConnect/Program.cs`)
- Email delivery → Email contract: implements contract (evidence: `HealthConnect/Services/EmailService.cs`)
