# laykimhoung/student-performance-prediction architecture

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

- Interactive diagram: https://gitdiagram.com/laykimhoung/student-performance-prediction
- Repository: https://github.com/laykimhoung/student-performance-prediction

## Overview

EduVision AI is a desktop student-management and academic intervention application. Users enter through the main window and select an administrator, teacher, or prediction-sandbox experience. The main domain workflow covers class and student management, assessment recording, performance and risk prediction, recommendations, analytics, and report export. The graph includes the database access layer and the documented model-training capability; unsampled page wiring is represented only where the tree and README support the capability, not as a specific call chain.

Main entry points: [`ui/main_window.py`](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/main_window.py) (Main Window), [`ui/teacher/class_detail_page.py`](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/class_detail_page.py) (Class Workspace), [`ui/student/preview_page.py`](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/student/preview_page.py) (Prediction Sandbox), [`database/crud.py`](https://github.com/laykimhoung/student-performance-prediction/blob/main/database/crud.py) (Database Operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application UI"]
  node_entry["Desktop Entry<br/>[app.py]"]
  node_window["Main Window<br/>[main_window.py]"]
  node_roles["Role Selection"]
end

subgraph group_admin["Administration"]
  node_admin_login["Admin Login<br/>[login_page.py]"]
  node_admin_dashboard["Admin Dashboard<br/>[dashboard.py]"]
  node_admin_management["Academic Management"]
  node_admin_students["Student Management"]
end

subgraph group_teacher["Teacher Workspace"]
  node_teacher_login["Teacher Login<br/>[login_page.py]"]
  node_teacher_dashboard["Teacher Dashboard<br/>[dashboard.py]"]
  node_class_detail["Class Workspace"]
  node_grade_entry["Grade Entry"]
  node_analytics["Class Analytics<br/>[analytics_page.py]"]
end

subgraph group_intelligence["AI and Intervention"]
  node_preview["Prediction Sandbox<br/>[preview_page.py]"]
  node_predictor["Score and Risk Prediction<br/>[predictor.py]"]
  node_recommender["Recommendations<br/>[recommender.py]"]
  node_trainer["Model Training<br/>[trainer.py]"]
end

subgraph group_data_reports["Data and Reports"]
  node_crud["Database Operations<br/>[crud.py]"]
  node_db[("SQLite Database<br/>[db.py]")]
  node_class_pdf["Class PDF Export<br/>[pdf_generator.py]"]
  node_excel["Excel Export<br/>[excel_generator.py]"]
  node_student_pdf["Student PDF Export"]
end

node_user(("User"))

node_user -->|"launches"| node_entry
node_entry -->|"starts"| node_window
node_window -->|"shows"| node_roles
node_window -->|"routes to"| node_admin_login
node_window -->|"routes to"| node_teacher_login
node_window -->|"opens"| node_preview
node_admin_dashboard -->|"offers management"| node_admin_management
node_admin_management -->|"manages records"| node_crud
node_admin_students -->|"manages students"| node_crud
node_teacher_dashboard -->|"opens classes"| node_class_detail
node_class_detail -->|"opens grading"| node_grade_entry
node_class_detail -->|"opens analytics"| node_analytics
node_class_detail -->|"exports class"| node_class_pdf
node_class_detail -->|"exports class"| node_excel
node_preview -->|"requests prediction"| node_predictor
node_preview -->|"requests advice"| node_recommender
node_preview -->|"exports report"| node_student_pdf
node_crud -->|"reads and writes"| node_db
node_trainer -.->|"loads training data"| node_db

click node_entry "https://github.com/laykimhoung/student-performance-prediction/blob/main/app.py"
click node_window "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/main_window.py"
click node_roles "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/role_selection_page.py"
click node_admin_login "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/admin/login_page.py"
click node_admin_dashboard "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/admin/dashboard.py"
click node_admin_management "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/admin/academic_management.py"
click node_admin_students "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/admin/student_management.py"
click node_teacher_login "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/login_page.py"
click node_teacher_dashboard "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/dashboard.py"
click node_class_detail "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/class_detail_page.py"
click node_grade_entry "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/grade_entry_page.py"
click node_analytics "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/analytics_page.py"
click node_preview "https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/student/preview_page.py"
click node_predictor "https://github.com/laykimhoung/student-performance-prediction/blob/main/ai/predictor.py"
click node_recommender "https://github.com/laykimhoung/student-performance-prediction/blob/main/ai/recommender.py"
click node_trainer "https://github.com/laykimhoung/student-performance-prediction/blob/main/ai/trainer.py"
click node_crud "https://github.com/laykimhoung/student-performance-prediction/blob/main/database/crud.py"
click node_db "https://github.com/laykimhoung/student-performance-prediction/blob/main/database/db.py"
click node_class_pdf "https://github.com/laykimhoung/student-performance-prediction/blob/main/reports/pdf_generator.py"
click node_excel "https://github.com/laykimhoung/student-performance-prediction/blob/main/reports/excel_generator.py"
click node_student_pdf "https://github.com/laykimhoung/student-performance-prediction/blob/main/reports/student_pdf_generator.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_entry,node_window,node_roles,node_user toneBlue
class node_admin_login,node_admin_dashboard,node_admin_management,node_admin_students toneAmber
class node_teacher_login,node_teacher_dashboard,node_class_detail,node_grade_entry,node_analytics toneMint
class node_preview,node_predictor,node_recommender,node_trainer toneRose
class node_crud,node_db,node_class_pdf,node_excel,node_student_pdf toneIndigo
```

## Components

### Application UI

- [Desktop Entry](https://github.com/laykimhoung/student-performance-prediction/blob/main/app.py): `app.py`
- [Main Window](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/main_window.py): `ui/main_window.py`
- [Role Selection](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/role_selection_page.py): `ui/role_selection_page.py`

### Administration

- [Admin Login](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/admin/login_page.py): `ui/admin/login_page.py`
- [Admin Dashboard](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/admin/dashboard.py): `ui/admin/dashboard.py`
- [Academic Management](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/admin/academic_management.py): `ui/admin/academic_management.py`
- [Student Management](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/admin/student_management.py): `ui/admin/student_management.py`

### Teacher Workspace

- [Teacher Login](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/login_page.py): `ui/teacher/login_page.py`
- [Teacher Dashboard](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/dashboard.py): `ui/teacher/dashboard.py`
- [Class Workspace](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/class_detail_page.py): `ui/teacher/class_detail_page.py`
- [Grade Entry](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/grade_entry_page.py): `ui/teacher/grade_entry_page.py`
- [Class Analytics](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/teacher/analytics_page.py): `ui/teacher/analytics_page.py`

### AI and Intervention

- [Prediction Sandbox](https://github.com/laykimhoung/student-performance-prediction/blob/main/ui/student/preview_page.py): `ui/student/preview_page.py`
- [Score and Risk Prediction](https://github.com/laykimhoung/student-performance-prediction/blob/main/ai/predictor.py): `ai/predictor.py`
- [Recommendations](https://github.com/laykimhoung/student-performance-prediction/blob/main/ai/recommender.py): `ai/recommender.py`
- [Model Training](https://github.com/laykimhoung/student-performance-prediction/blob/main/ai/trainer.py): `ai/trainer.py`

### Data and Reports

- [Database Operations](https://github.com/laykimhoung/student-performance-prediction/blob/main/database/crud.py): `database/crud.py`
- [SQLite Database](https://github.com/laykimhoung/student-performance-prediction/blob/main/database/db.py): `database/db.py`
- [Class PDF Export](https://github.com/laykimhoung/student-performance-prediction/blob/main/reports/pdf_generator.py): `reports/pdf_generator.py`
- [Excel Export](https://github.com/laykimhoung/student-performance-prediction/blob/main/reports/excel_generator.py): `reports/excel_generator.py`
- [Student PDF Export](https://github.com/laykimhoung/student-performance-prediction/blob/main/reports/student_pdf_generator.py): `reports/student_pdf_generator.py`

### Other components

- **User**

## Connections

- User → Desktop Entry: launches
- Desktop Entry → Main Window: starts
- Main Window → Role Selection: shows
- Main Window → Admin Login: routes to
- Main Window → Teacher Login: routes to
- Main Window → Prediction Sandbox: opens
- Admin Dashboard → Academic Management: offers management
- Academic Management → Database Operations: manages records
- Student Management → Database Operations: manages students
- Teacher Dashboard → Class Workspace: opens classes
- Class Workspace → Grade Entry: opens grading
- Class Workspace → Class Analytics: opens analytics
- Class Workspace → Class PDF Export: exports class
- Class Workspace → Excel Export: exports class
- Prediction Sandbox → Score and Risk Prediction: requests prediction
- Prediction Sandbox → Recommendations: requests advice
- Prediction Sandbox → Student PDF Export: exports report
- Database Operations → SQLite Database: reads and writes
- Model Training → SQLite Database: loads training data
