# saiteja74/diabetes_prediction architecture

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

- Interactive diagram: https://gitdiagram.com/saiteja74/diabetes_prediction
- Repository: https://github.com/saiteja74/diabetes_prediction

## Overview

This repository is a Streamlit app for exploring an early-stage diabetes dataset and estimating diabetes risk from user-entered symptoms. Users choose the EDA or ML section: EDA loads supplied CSVs for summaries and plots, while ML collects and encodes patient attributes before displaying a model prediction and probability scores. The graph reflects the shown routing and data use. One uncertainty: `ml_app.py` requests a model filename absent from the tree, which instead contains `decision_tree_model.pkl`; their relationship is therefore not asserted.

Main entry points: [`eda_app.py`](https://github.com/saiteja74/diabetes_prediction/blob/main/eda_app.py) (EDA interface), [`app.py`](https://github.com/saiteja74/diabetes_prediction/blob/main/app.py) (Menu and routing), [`ml_app.py`](https://github.com/saiteja74/diabetes_prediction/blob/main/ml_app.py) (Risk questionnaire), [`diabetes_data_upload.csv`](https://github.com/saiteja74/diabetes_prediction/blob/main/diabetes_data_upload.csv) (Diabetes records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Streamlit App"]
  node_router["Menu and routing<br/>[app.py]"]
end

subgraph group_eda["Data Exploration"]
  node_eda_view["EDA interface<br/>[eda_app.py]"]
  node_raw_data["Diabetes records"]
  node_clean_data["Cleaned records"]
  node_age_data["Age frequencies"]
  node_summaries["Data summaries<br/>[eda_app.py]"]
  node_plots["Exploration plots<br/>[eda_app.py]"]
end

subgraph group_prediction["Risk Prediction"]
  node_questionnaire["Risk questionnaire<br/>[ml_app.py]"]
  node_encoding["Feature encoding<br/>[ml_app.py]"]
  node_inference["Risk prediction<br/>[ml_app.py]"]
end

node_user(("App user"))

node_user -->|"selects section"| node_router
node_router -->|"routes to EDA"| node_eda_view
node_router -->|"routes to ML"| node_questionnaire
node_eda_view -->|"loads records"| node_raw_data
node_eda_view -->|"loads cleaned data"| node_clean_data
node_eda_view -->|"loads frequencies"| node_age_data
node_eda_view -->|"renders summaries"| node_summaries
node_eda_view -->|"renders plots"| node_plots
node_questionnaire -->|"encodes answers"| node_encoding
node_encoding -->|"predicts risk"| node_inference

click node_router "https://github.com/saiteja74/diabetes_prediction/blob/main/app.py"
click node_eda_view "https://github.com/saiteja74/diabetes_prediction/blob/main/eda_app.py"
click node_raw_data "https://github.com/saiteja74/diabetes_prediction/blob/main/diabetes_data_upload.csv"
click node_clean_data "https://github.com/saiteja74/diabetes_prediction/blob/main/diabetes_data_upload_clean.csv"
click node_age_data "https://github.com/saiteja74/diabetes_prediction/blob/main/freqdist_of_age_data.csv"
click node_summaries "https://github.com/saiteja74/diabetes_prediction/blob/main/eda_app.py"
click node_plots "https://github.com/saiteja74/diabetes_prediction/blob/main/eda_app.py"
click node_questionnaire "https://github.com/saiteja74/diabetes_prediction/blob/main/ml_app.py"
click node_encoding "https://github.com/saiteja74/diabetes_prediction/blob/main/ml_app.py"
click node_inference "https://github.com/saiteja74/diabetes_prediction/blob/main/ml_app.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_router,node_user toneBlue
class node_eda_view,node_raw_data,node_clean_data,node_age_data,node_summaries,node_plots toneAmber
class node_questionnaire,node_encoding,node_inference toneMint
```

## Components

### Streamlit App

- [Menu and routing](https://github.com/saiteja74/diabetes_prediction/blob/main/app.py): `app.py`

### Data Exploration

- [EDA interface](https://github.com/saiteja74/diabetes_prediction/blob/main/eda_app.py): `eda_app.py`
- [Diabetes records](https://github.com/saiteja74/diabetes_prediction/blob/main/diabetes_data_upload.csv): `diabetes_data_upload.csv`
- [Cleaned records](https://github.com/saiteja74/diabetes_prediction/blob/main/diabetes_data_upload_clean.csv): `diabetes_data_upload_clean.csv`
- [Age frequencies](https://github.com/saiteja74/diabetes_prediction/blob/main/freqdist_of_age_data.csv): `freqdist_of_age_data.csv`
- [Data summaries](https://github.com/saiteja74/diabetes_prediction/blob/main/eda_app.py): `eda_app.py`
- [Exploration plots](https://github.com/saiteja74/diabetes_prediction/blob/main/eda_app.py): `eda_app.py`

### Risk Prediction

- [Risk questionnaire](https://github.com/saiteja74/diabetes_prediction/blob/main/ml_app.py): `ml_app.py`
- [Feature encoding](https://github.com/saiteja74/diabetes_prediction/blob/main/ml_app.py): `ml_app.py`
- [Risk prediction](https://github.com/saiteja74/diabetes_prediction/blob/main/ml_app.py): `ml_app.py`

### Other components

- **App user**

## Connections

- App user → Menu and routing: selects section (evidence: `app.py`)
- Menu and routing → EDA interface: routes to EDA (evidence: `app.py`)
- Menu and routing → Risk questionnaire: routes to ML (evidence: `app.py`)
- EDA interface → Diabetes records: loads records (evidence: `eda_app.py`)
- EDA interface → Cleaned records: loads cleaned data (evidence: `eda_app.py`)
- EDA interface → Age frequencies: loads frequencies (evidence: `eda_app.py`)
- EDA interface → Data summaries: renders summaries (evidence: `eda_app.py`)
- EDA interface → Exploration plots: renders plots (evidence: `eda_app.py`)
- Risk questionnaire → Feature encoding: encodes answers (evidence: `ml_app.py`)
- Feature encoding → Risk prediction: predicts risk (evidence: `ml_app.py`)
