# bhanuprakashkunduru/studentperformanceanalyzer architecture

> Architecture diagram of the GitHub repository bhanuprakashkunduru/studentperformanceanalyzer, 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/bhanuprakashkunduru/studentperformanceanalyzer
- Repository: https://github.com/bhanuprakashkunduru/studentperformanceanalyzer

## Overview

Student Performance Analyzer is a Flask application for managing student records, viewing performance summaries and analyses, and predicting student risk. The main workflow runs from a user request through Flask routes to MySQL queries or the risk model, then returns a rendered page. The README documents analytics and prediction history; sampled code confirms analytics queries and prediction writes, but omitted route excerpts limit detail on some page wiring.

Main entry points: [`app.py`](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/app.py) (Flask routes), [`templates/index.html`](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/index.html) (Dashboard page), [`templates/students.html`](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/students.html) (Student records), [`templates/add_student.html`](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/add_student.html) (Add student form)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_app["Flask routes<br/>[app.py]"]
  node_scripts["Browser navigation<br/>[script.js]"]
  node_styles["Responsive styles<br/>[style.css]"]
  node_dashboard["Dashboard page<br/>[index.html]"]
end

subgraph group_records["Student records"]
  node_store[("MySQL database")]
  node_records_page["Student records<br/>[students.html]"]
  node_add_page["Add student form<br/>[add_student.html]"]
  node_edit_page["Edit student form<br/>[edit_student.html]"]
end

subgraph group_insights["Performance insights"]
  node_analytics_page["Analytics charts<br/>[analytics.html]"]
  node_analysis_page["Data analysis<br/>[data_analysis.html]"]
  node_analysis["Performance analysis"]
end

subgraph group_risk["Risk prediction"]
  node_prediction_page["Risk prediction<br/>[prediction.html]"]
  node_model["Risk model"]
end

node_user(("User"))

node_user -->|"sends requests"| node_app
node_app -->|"renders"| node_dashboard
node_app -->|"renders"| node_records_page
node_app -->|"renders"| node_add_page
node_app -->|"renders"| node_edit_page
node_app -->|"renders"| node_analytics_page
node_app -->|"renders"| node_analysis_page
node_app -->|"renders"| node_prediction_page
node_dashboard -->|"displays"| node_user
node_records_page -->|"displays"| node_user
node_add_page -->|"displays"| node_user
node_edit_page -->|"displays"| node_user
node_analytics_page -->|"displays"| node_user
node_analysis_page -->|"displays"| node_user
node_prediction_page -->|"displays"| node_user
node_scripts -->|"redirects to route"| node_app
node_app -->|"reads and writes"| node_store
node_app -->|"calls analysis"| node_analysis
node_analysis -->|"reads student data"| node_store
node_app -->|"predicts with"| node_model
node_app -->|"serves page styles"| node_styles

click node_app "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/app.py"
click node_scripts "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/static/js/script.js"
click node_styles "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/static/css/style.css"
click node_dashboard "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/index.html"
click node_records_page "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/students.html"
click node_add_page "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/add_student.html"
click node_edit_page "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/edit_student.html"
click node_analytics_page "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/analytics.html"
click node_analysis_page "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/data_analysis.html"
click node_analysis "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/analysis/performance_analysis.py"
click node_prediction_page "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/prediction.html"
click node_model "https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/ml/student_performance_model.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_app,node_scripts,node_styles,node_dashboard,node_user toneBlue
class node_store,node_records_page,node_add_page,node_edit_page toneAmber
class node_analytics_page,node_analysis_page,node_analysis toneMint
class node_prediction_page,node_model toneRose
```

## Components

### Web application

- [Flask routes](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/app.py): `app.py`
- [Browser navigation](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/static/js/script.js): `static/js/script.js`
- [Responsive styles](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/static/css/style.css): `static/css/style.css`
- [Dashboard page](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/index.html): `templates/index.html`

### Student records

- **MySQL database**
- [Student records](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/students.html): `templates/students.html`
- [Add student form](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/add_student.html): `templates/add_student.html`
- [Edit student form](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/edit_student.html): `templates/edit_student.html`

### Performance insights

- [Analytics charts](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/analytics.html): `templates/analytics.html`
- [Data analysis](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/data_analysis.html): `templates/data_analysis.html`
- [Performance analysis](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/analysis/performance_analysis.py): `analysis/performance_analysis.py`

### Risk prediction

- [Risk prediction](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/templates/prediction.html): `templates/prediction.html`
- [Risk model](https://github.com/bhanuprakashkunduru/studentperformanceanalyzer/blob/main/ml/student_performance_model.pkl): `ml/student_performance_model.pkl`

### Other components

- **User**

## Connections

- User → Flask routes: sends requests
- Flask routes → Dashboard page: renders
- Flask routes → Student records: renders
- Flask routes → Add student form: renders
- Flask routes → Edit student form: renders
- Flask routes → Analytics charts: renders
- Flask routes → Data analysis: renders
- Flask routes → Risk prediction: renders
- Dashboard page → User: displays
- Student records → User: displays
- Add student form → User: displays
- Edit student form → User: displays
- Analytics charts → User: displays
- Data analysis → User: displays
- Risk prediction → User: displays
- Browser navigation → Flask routes: redirects to route
- Flask routes → MySQL database: reads and writes
- Flask routes → Performance analysis: calls analysis
- Performance analysis → MySQL database: reads student data
- Flask routes → Risk model: predicts with
- Flask routes → Responsive styles: serves page styles
