# kptlvinod-star/project-health-assistance-and-diet-recommendation architecture

> Architecture diagram of the GitHub repository kptlvinod-star/project-health-assistance-and-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/kptlvinod-star/project-health-assistance-and-diet-recommendation
- Repository: https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation

## Overview

This is a Streamlit health and nutrition assistant. Users enter a profile to see BMI, BMR, TDEE, and a calorie target, then can request a diet plan or ask a health question. Both AI features retrieve nutrition context from a FAISS index before sending a prompt to the Hugging Face chat API. The README is brief; the graph follows the sampled source. The PDF path in rag.py uses lowercase `data`, while the tree shows `Data/nutrition.pdf`, so ingestion may not find the listed file as written.

Main entry points: [`app.py`](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py) (Diet recommendation), [`rag.py`](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/rag.py) (FAISS index), [`diet.py`](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/diet.py) (Diet calculators), [`Data/nutrition.pdf`](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/Data/nutrition.pdf) (Nutrition PDF)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_app["Streamlit assistant<br/>[app.py]"]
  node_dietplan["Diet recommendation<br/>[app.py]"]
  node_healthqa["Health assistance<br/>[app.py]"]
end

subgraph group_nutrition["Nutrition calculations"]
  node_metrics["Health metrics<br/>[app.py]"]
  node_calculators["Diet calculators<br/>[diet.py]"]
end

subgraph group_knowledge["Nutrition knowledge"]
  node_rag["RAG loader<br/>[rag.py]"]
  node_pdf["Nutrition PDF<br/>[nutrition.pdf]"]
  node_indexer["Index creation<br/>[rag.py]"]
  node_vectorstore[("FAISS index<br/>[rag.py]")]
end

subgraph group_ai["AI responses"]
  node_llm["Chat completion API"]
end

node_user(("User"))

node_user -->|"enters profile"| node_app
node_app -->|"renders metrics"| node_metrics
node_app -->|"calculates"| node_calculators
node_calculators -->|"returns values"| node_metrics
node_user -->|"requests plan"| node_dietplan
node_app -->|"handles request"| node_dietplan
node_dietplan -->|"loads index"| node_rag
node_rag -->|"loads index"| node_vectorstore
node_dietplan -->|"searches context"| node_vectorstore
node_dietplan -->|"sends prompt"| node_llm
node_llm -->|"returns answer"| node_dietplan
node_user -->|"asks question"| node_healthqa
node_app -->|"handles question"| node_healthqa
node_healthqa -->|"loads index"| node_rag
node_healthqa -->|"searches context"| node_vectorstore
node_healthqa -->|"sends prompt"| node_llm
node_llm -->|"returns answer"| node_healthqa
node_pdf -->|"provides source"| node_indexer
node_indexer -->|"builds and saves"| node_vectorstore

click node_app "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py"
click node_metrics "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py"
click node_calculators "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/diet.py"
click node_dietplan "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py"
click node_healthqa "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py"
click node_rag "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/rag.py"
click node_pdf "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/Data/nutrition.pdf"
click node_indexer "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/rag.py"
click node_vectorstore "https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/rag.py"

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_app,node_dietplan,node_healthqa,node_user toneBlue
class node_metrics,node_calculators toneAmber
class node_rag,node_pdf,node_indexer,node_vectorstore toneMint
class node_llm toneRose
```

## Components

### User experience

- [Streamlit assistant](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py): `app.py`
- [Diet recommendation](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py): `app.py`
- [Health assistance](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py): `app.py`

### Nutrition calculations

- [Health metrics](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/app.py): `app.py`
- [Diet calculators](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/diet.py): `diet.py`

### Nutrition knowledge

- [RAG loader](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/rag.py): `rag.py`
- [Nutrition PDF](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/Data/nutrition.pdf): `Data/nutrition.pdf`
- [Index creation](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/rag.py): `rag.py`
- [FAISS index](https://github.com/kptlvinod-star/project-health-assistance-and-diet-recommendation/blob/main/rag.py): `rag.py`

### AI responses

- **Chat completion API**

### Other components

- **User**

## Connections

- User → Streamlit assistant: enters profile
- Streamlit assistant → Health metrics: renders metrics
- Streamlit assistant → Diet calculators: calculates
- Diet calculators → Health metrics: returns values
- User → Diet recommendation: requests plan
- Streamlit assistant → Diet recommendation: handles request
- Diet recommendation → RAG loader: loads index
- RAG loader → FAISS index: loads index
- Diet recommendation → FAISS index: searches context
- Diet recommendation → Chat completion API: sends prompt
- Chat completion API → Diet recommendation: returns answer
- User → Health assistance: asks question
- Streamlit assistant → Health assistance: handles question
- Health assistance → RAG loader: loads index
- Health assistance → FAISS index: searches context
- Health assistance → Chat completion API: sends prompt
- Chat completion API → Health assistance: returns answer
- Nutrition PDF → Index creation: provides source
- Index creation → FAISS index: builds and saves
