# ranjeetchauhan0805/student-exam-score-predictor architecture

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

- Interactive diagram: https://gitdiagram.com/ranjeetchauhan0805/student-exam-score-predictor
- Repository: https://github.com/ranjeetchauhan0805/student-exam-score-predictor

## Overview

The product is a student exam-score prediction app: students enter study and academic details, and the app returns a score predicted by a saved linear-regression model. A separate training script builds and evaluates that model from the CSV; the Streamlit app also shows dataset summaries. The README documents exploratory analysis and visualization, and the tree includes a notebook, but its contents were not sampled, so its specific operations and connections are uncertain.

Main entry points: [`app.py`](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/app.py) (Streamlit app), [`models/exam_score_predictor.pkl`](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/models/exam_score_predictor.pkl) (Regression model), [`src/predict.py`](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/src/predict.py) (CLI predictor), [`data/student_exam_scores.csv`](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/data/student_exam_scores.csv) (Student scores CSV)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_analysis_training["Analysis &amp; training"]
  node_training["Train &amp; evaluate<br/>[train.py]"]
  node_eda["EDA &amp; visualization<br/>[eda.ipynb]"]
end

subgraph group_prediction["Prediction interfaces"]
  node_streamlit_app["Streamlit app<br/>[app.py]"]
  node_predicted_score["Predicted score"]
  node_cli_predictor["CLI predictor<br/>[predict.py]"]
  node_cli_score["Printed score"]
end

subgraph group_artifacts["Data &amp; model artifacts"]
  node_dataset["Student scores CSV"]
  node_model["Regression model"]
end

node_student(("Student"))
node_terminal_user(("Terminal user"))

node_student -->|"enters details"| node_streamlit_app
node_streamlit_app -->|"loads model"| node_model
node_streamlit_app -->|"predicts with"| node_model
node_streamlit_app -->|"displays"| node_predicted_score
node_streamlit_app -->|"reads summaries"| node_dataset
node_training -->|"reads"| node_dataset
node_training -->|"saves model"| node_model
node_eda -.->|"analyzes"| node_dataset
node_terminal_user -->|"enters details"| node_cli_predictor
node_cli_predictor -->|"loads model"| node_model
node_cli_predictor -->|"predicts with"| node_model
node_cli_predictor -->|"prints"| node_cli_score

click node_streamlit_app "https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/app.py"
click node_cli_predictor "https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/src/predict.py"
click node_training "https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/src/train.py"
click node_eda "https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/notebooks/eda.ipynb"
click node_dataset "https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/data/student_exam_scores.csv"
click node_model "https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/models/exam_score_predictor.pkl"

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_training,node_eda,node_terminal_user toneBlue
class node_streamlit_app,node_predicted_score,node_cli_predictor,node_cli_score toneAmber
class node_dataset,node_model toneMint
class node_student toneIndigo
```

## Components

### Analysis & training

- [Train & evaluate](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/src/train.py): `src/train.py`
- [EDA & visualization](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/notebooks/eda.ipynb): `notebooks/eda.ipynb`

### Prediction interfaces

- [Streamlit app](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/app.py): `app.py`
- **Predicted score**
- [CLI predictor](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/src/predict.py): `src/predict.py`
- **Printed score**

### Data & model artifacts

- [Student scores CSV](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/data/student_exam_scores.csv): `data/student_exam_scores.csv`
- [Regression model](https://github.com/ranjeetchauhan0805/student-exam-score-predictor/blob/main/models/exam_score_predictor.pkl): `models/exam_score_predictor.pkl`

### Other components

- **Student**
- **Terminal user**

## Connections

- Student → Streamlit app: enters details
- Streamlit app → Regression model: loads model
- Streamlit app → Regression model: predicts with
- Streamlit app → Predicted score: displays
- Streamlit app → Student scores CSV: reads summaries
- Train & evaluate → Student scores CSV: reads
- Train & evaluate → Regression model: saves model
- EDA & visualization → Student scores CSV: analyzes
- Terminal user → CLI predictor: enters details
- CLI predictor → Regression model: loads model
- CLI predictor → Regression model: predicts with
- CLI predictor → Printed score: prints
