# fatema-rifa03/smart-health-diet-recommendation architecture

> Architecture diagram of the GitHub repository fatema-rifa03/smart-health-diet-recommendation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/fatema-rifa03/smart-health-diet-recommendation
- Repository: https://github.com/fatema-rifa03/smart-health-diet-recommendation

## Overview

This is a role-based nutrition and wellness platform: users track meals and health metrics, review plans and progress, and connect with dietitians; dietitians manage patients and plans, while administrators manage accounts, approvals, food data, and reporting. The backend exposes these capabilities through authenticated API routes backed by PostgreSQL. The route mounts and sampled controller responsibilities support the backend relationships shown; frontend pages indicate the product areas, but their API wiring was not sampled, so no UI-to-API calls are asserted.

Main entry points: [`Backend/src/config/db.js`](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/config/db.js) (PostgreSQL connection), [`Backend/src/app.js`](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/app.js) (Express API), [`Backend/src/middleware/auth.middleware.js`](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/middleware/auth.middleware.js) (Authentication guard), [`Backend/src/routes/tracking.routes.js`](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/tracking.routes.js) (Tracking routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Role-based interfaces"]
  node_user_ui["User pages"]
  node_dietitian_ui["Dietitian pages"]
  node_admin_ui["Admin pages"]
end

subgraph group_api["API and access"]
  node_app["Express API<br/>[app.js]"]
  node_auth_routes["Authentication routes<br/>[auth.routes.js]"]
  node_auth_controller["Authentication<br/>[auth.controller.js]"]
  node_auth_middleware["Authentication guard<br/>[auth.middleware.js]"]
end

subgraph group_wellness["User wellness"]
  node_tracking_routes["Tracking routes<br/>[tracking.routes.js]"]
  node_tracking_controller["Health tracking"]
  node_profile_routes["Profile routes<br/>[profile.routes.js]"]
  node_profile_controller["User profiles"]
  node_resource_routes["User resource routes"]
  node_resource_controller["Plans and messaging"]
end

subgraph group_care["Dietitian care"]
  node_dietitian_routes["Dietitian routes"]
  node_dietitian_controller["Dietitian services"]
end

subgraph group_operations["Administration and data"]
  node_admin_routes["Admin routes<br/>[admin.routes.js]"]
  node_admin_controller["Admin services"]
  node_db_config["PostgreSQL connection<br/>[db.js]"]
  node_database[("Platform data<br/>[schema.sql]")]
end

node_user(("User"))
node_dietitian(("Dietitian"))
node_admin(("Administrator"))

node_user -->|"uses"| node_user_ui
node_dietitian -->|"uses"| node_dietitian_ui
node_admin -->|"uses"| node_admin_ui
node_app -->|"mounts"| node_auth_routes
node_app -->|"mounts"| node_tracking_routes
node_app -->|"mounts"| node_profile_routes
node_app -->|"mounts"| node_resource_routes
node_app -->|"mounts"| node_dietitian_routes
node_app -->|"mounts"| node_admin_routes
node_auth_routes -->|"dispatches"| node_auth_controller
node_tracking_routes -->|"guards"| node_auth_middleware
node_tracking_routes -->|"dispatches"| node_tracking_controller
node_profile_routes -->|"guards"| node_auth_middleware
node_profile_routes -->|"dispatches"| node_profile_controller
node_resource_routes -->|"guards"| node_auth_middleware
node_resource_routes -->|"dispatches"| node_resource_controller
node_dietitian_routes -->|"guards"| node_auth_middleware
node_dietitian_routes -->|"dispatches"| node_dietitian_controller
node_admin_routes -->|"guards"| node_auth_middleware
node_admin_routes -->|"dispatches"| node_admin_controller
node_auth_controller -->|"queries"| node_db_config
node_auth_middleware -->|"queries"| node_db_config
node_tracking_controller -->|"queries"| node_db_config
node_profile_controller -->|"queries"| node_db_config
node_resource_controller -->|"queries"| node_db_config
node_dietitian_controller -->|"queries"| node_db_config
node_admin_controller -->|"queries"| node_db_config
node_db_config -->|"connects"| node_database

click node_user_ui "https://github.com/fatema-rifa03/smart-health-diet-recommendation/tree/main/frontend/user"
click node_dietitian_ui "https://github.com/fatema-rifa03/smart-health-diet-recommendation/tree/main/frontend/dietitian"
click node_admin_ui "https://github.com/fatema-rifa03/smart-health-diet-recommendation/tree/main/frontend/admin"
click node_app "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/app.js"
click node_auth_routes "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/auth.routes.js"
click node_auth_controller "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/auth.controller.js"
click node_auth_middleware "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/middleware/auth.middleware.js"
click node_tracking_routes "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/tracking.routes.js"
click node_tracking_controller "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/tracking.controller.js"
click node_profile_routes "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/profile.routes.js"
click node_profile_controller "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/profile.controller.js"
click node_resource_routes "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/user-resources.routes.js"
click node_resource_controller "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/user-resources.controller.js"
click node_dietitian_routes "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/dietitian.routes.js"
click node_dietitian_controller "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/dietitian.controller.js"
click node_admin_routes "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/admin.routes.js"
click node_admin_controller "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/admin.controller.js"
click node_db_config "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/config/db.js"
click node_database "https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/database/schema.sql"

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_user_ui,node_dietitian_ui,node_admin_ui,node_user toneBlue
class node_app,node_auth_routes,node_auth_controller,node_auth_middleware toneAmber
class node_tracking_routes,node_tracking_controller,node_profile_routes,node_profile_controller,node_resource_routes,node_resource_controller toneMint
class node_dietitian_routes,node_dietitian_controller toneRose
class node_admin_routes,node_admin_controller,node_db_config,node_database,node_dietitian,node_admin toneIndigo
```

## Components

### Role-based interfaces

- [User pages](https://github.com/fatema-rifa03/smart-health-diet-recommendation/tree/main/frontend/user): `frontend/user`
- [Dietitian pages](https://github.com/fatema-rifa03/smart-health-diet-recommendation/tree/main/frontend/dietitian): `frontend/dietitian`
- [Admin pages](https://github.com/fatema-rifa03/smart-health-diet-recommendation/tree/main/frontend/admin): `frontend/admin`

### API and access

- [Express API](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/app.js): `Backend/src/app.js`
- [Authentication routes](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/auth.routes.js): `Backend/src/routes/auth.routes.js`
- [Authentication](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/auth.controller.js): `Backend/src/controllers/auth.controller.js`
- [Authentication guard](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/middleware/auth.middleware.js): `Backend/src/middleware/auth.middleware.js`

### User wellness

- [Tracking routes](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/tracking.routes.js): `Backend/src/routes/tracking.routes.js`
- [Health tracking](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/tracking.controller.js): `Backend/src/controllers/tracking.controller.js`
- [Profile routes](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/profile.routes.js): `Backend/src/routes/profile.routes.js`
- [User profiles](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/profile.controller.js): `Backend/src/controllers/profile.controller.js`
- [User resource routes](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/user-resources.routes.js): `Backend/src/routes/user-resources.routes.js`
- [Plans and messaging](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/user-resources.controller.js): `Backend/src/controllers/user-resources.controller.js`

### Dietitian care

- [Dietitian routes](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/dietitian.routes.js): `Backend/src/routes/dietitian.routes.js`
- [Dietitian services](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/dietitian.controller.js): `Backend/src/controllers/dietitian.controller.js`

### Administration and data

- [Admin routes](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/routes/admin.routes.js): `Backend/src/routes/admin.routes.js`
- [Admin services](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/controllers/admin.controller.js): `Backend/src/controllers/admin.controller.js`
- [PostgreSQL connection](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/Backend/src/config/db.js): `Backend/src/config/db.js`
- [Platform data](https://github.com/fatema-rifa03/smart-health-diet-recommendation/blob/main/database/schema.sql): `database/schema.sql`

### Other components

- **User**
- **Dietitian**
- **Administrator**

## Connections

- User → User pages: uses
- Dietitian → Dietitian pages: uses
- Administrator → Admin pages: uses
- Express API → Authentication routes: mounts
- Express API → Tracking routes: mounts
- Express API → Profile routes: mounts
- Express API → User resource routes: mounts
- Express API → Dietitian routes: mounts
- Express API → Admin routes: mounts
- Authentication routes → Authentication: dispatches
- Tracking routes → Authentication guard: guards
- Tracking routes → Health tracking: dispatches
- Profile routes → Authentication guard: guards
- Profile routes → User profiles: dispatches
- User resource routes → Authentication guard: guards
- User resource routes → Plans and messaging: dispatches
- Dietitian routes → Authentication guard: guards
- Dietitian routes → Dietitian services: dispatches
- Admin routes → Authentication guard: guards
- Admin routes → Admin services: dispatches
- Authentication → PostgreSQL connection: queries
- Authentication guard → PostgreSQL connection: queries
- Health tracking → PostgreSQL connection: queries
- User profiles → PostgreSQL connection: queries
- Plans and messaging → PostgreSQL connection: queries
- Dietitian services → PostgreSQL connection: queries
- Admin services → PostgreSQL connection: queries
- PostgreSQL connection → Platform data: connects
