# kingmaker1234/student_academic_performance architecture

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

- Interactive diagram: https://gitdiagram.com/kingmaker1234/student_academic_performance
- Repository: https://github.com/kingmaker1234/student_academic_performance

## Overview

This is a single-file, menu-driven student academic performance and parent–teacher monitoring console application. A user selects operations to manage students, parents, grades, attendance, homework, study logs, and communications, or to view reports; records persist in CSV files. The sampled code shows CSV validation and generic read/append helpers, plus examples of attendance summaries and performance-report lookups. The menu dispatch and several domain implementations are only partially excerpted, so those connections are limited to documented menu options; no external integrations are evident.

Main entry points: [`main.py`](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py) (Menu and dispatch), [`parents.csv`](https://github.com/kingmaker1234/student_academic_performance/blob/main/parents.csv) (Parent records), [`students.csv`](https://github.com/kingmaker1234/student_academic_performance/blob/main/students.csv) (Student records), [`grades.csv`](https://github.com/kingmaker1234/student_academic_performance/blob/main/grades.csv) (Grade records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Console application"]
  node_menu["Menu and dispatch<br/>[main.py]"]
  node_csv_support["CSV validation and I/O<br/>[main.py]"]
end

subgraph group_records["Student records"]
  node_student_ops["Student management<br/>[main.py]"]
  node_student_csv[("Student records<br/>[students.csv]")]
  node_parent_ops["Parent management<br/>[main.py]"]
  node_parent_csv[("Parent records<br/>[parents.csv]")]
end

subgraph group_tracking["Academic tracking"]
  node_grade_ops["Grades and averages<br/>[main.py]"]
  node_grades_csv[("Grade records<br/>[grades.csv]")]
  node_attendance_ops["Attendance summaries<br/>[main.py]"]
  node_attendance_csv[("Attendance records<br/>[attendance.csv]")]
  node_homework_ops["Homework tracking<br/>[main.py]"]
  node_homework_csv[("Homework records<br/>[homework.csv]")]
  node_study_ops["Study log summaries<br/>[main.py]"]
  node_study_csv[("Study logs<br/>[study_logs.csv]")]
end

subgraph group_engagement["Family engagement"]
  node_communication_ops["Parent–teacher messages<br/>[main.py]"]
  node_communication_csv[("Message records<br/>[communication.csv]")]
  node_reports["Student performance reports<br/>[main.py]"]
end

node_user(("Console user"))

node_user -->|"chooses option"| node_menu
node_menu -->|"dispatches options"| node_student_ops
node_menu -->|"dispatches options"| node_parent_ops
node_menu -->|"dispatches options"| node_grade_ops
node_menu -->|"dispatches options"| node_attendance_ops
node_menu -->|"dispatches options"| node_homework_ops
node_menu -->|"dispatches options"| node_study_ops
node_menu -->|"dispatches options"| node_communication_ops
node_menu -->|"dispatches options"| node_reports
node_menu -->|"checks CSV files"| node_csv_support
node_student_ops -->|"reads records"| node_student_csv
node_parent_ops -->|"reads records"| node_parent_csv
node_grade_ops -.->|"reads records"| node_grades_csv
node_attendance_ops -->|"reads records"| node_attendance_csv
node_homework_ops -.->|"tracks records"| node_homework_csv
node_study_ops -->|"summarizes logs"| node_study_csv
node_communication_ops -->|"shows messages"| node_communication_csv
node_reports -->|"reads parents"| node_parent_csv
node_reports -->|"gets student marks"| node_grade_ops

click node_menu "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_csv_support "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_student_ops "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_student_csv "https://github.com/kingmaker1234/student_academic_performance/blob/main/students.csv"
click node_parent_ops "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_parent_csv "https://github.com/kingmaker1234/student_academic_performance/blob/main/parents.csv"
click node_grade_ops "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_grades_csv "https://github.com/kingmaker1234/student_academic_performance/blob/main/grades.csv"
click node_attendance_ops "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_attendance_csv "https://github.com/kingmaker1234/student_academic_performance/blob/main/attendance.csv"
click node_homework_ops "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_homework_csv "https://github.com/kingmaker1234/student_academic_performance/blob/main/homework.csv"
click node_study_ops "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_study_csv "https://github.com/kingmaker1234/student_academic_performance/blob/main/study_logs.csv"
click node_communication_ops "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py"
click node_communication_csv "https://github.com/kingmaker1234/student_academic_performance/blob/main/communication.csv"
click node_reports "https://github.com/kingmaker1234/student_academic_performance/blob/main/main.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_menu,node_csv_support,node_user toneBlue
class node_student_ops,node_student_csv,node_parent_ops,node_parent_csv toneAmber
class node_grade_ops,node_grades_csv,node_attendance_ops,node_attendance_csv,node_homework_ops,node_homework_csv,node_study_ops,node_study_csv toneMint
class node_communication_ops,node_communication_csv,node_reports toneRose
```

## Components

### Console application

- [Menu and dispatch](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`
- [CSV validation and I/O](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`

### Student records

- [Student management](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`
- [Student records](https://github.com/kingmaker1234/student_academic_performance/blob/main/students.csv): `students.csv`
- [Parent management](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`
- [Parent records](https://github.com/kingmaker1234/student_academic_performance/blob/main/parents.csv): `parents.csv`

### Academic tracking

- [Grades and averages](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`
- [Grade records](https://github.com/kingmaker1234/student_academic_performance/blob/main/grades.csv): `grades.csv`
- [Attendance summaries](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`
- [Attendance records](https://github.com/kingmaker1234/student_academic_performance/blob/main/attendance.csv): `attendance.csv`
- [Homework tracking](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`
- [Homework records](https://github.com/kingmaker1234/student_academic_performance/blob/main/homework.csv): `homework.csv`
- [Study log summaries](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`
- [Study logs](https://github.com/kingmaker1234/student_academic_performance/blob/main/study_logs.csv): `study_logs.csv`

### Family engagement

- [Parent–teacher messages](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`
- [Message records](https://github.com/kingmaker1234/student_academic_performance/blob/main/communication.csv): `communication.csv`
- [Student performance reports](https://github.com/kingmaker1234/student_academic_performance/blob/main/main.py): `main.py`

### Other components

- **Console user**

## Connections

- Console user → Menu and dispatch: chooses option (evidence: `main.py`)
- Menu and dispatch → Student management: dispatches options (evidence: `main.py`)
- Menu and dispatch → Parent management: dispatches options (evidence: `main.py`)
- Menu and dispatch → Grades and averages: dispatches options (evidence: `main.py`)
- Menu and dispatch → Attendance summaries: dispatches options (evidence: `main.py`)
- Menu and dispatch → Homework tracking: dispatches options (evidence: `main.py`)
- Menu and dispatch → Study log summaries: dispatches options (evidence: `main.py`)
- Menu and dispatch → Parent–teacher messages: dispatches options (evidence: `main.py`)
- Menu and dispatch → Student performance reports: dispatches options (evidence: `main.py`)
- Menu and dispatch → CSV validation and I/O: checks CSV files (evidence: `main.py`)
- Student management → Student records: reads records (evidence: `main.py`)
- Parent management → Parent records: reads records (evidence: `main.py`)
- Grades and averages → Grade records: reads records
- Attendance summaries → Attendance records: reads records (evidence: `main.py`)
- Homework tracking → Homework records: tracks records
- Study log summaries → Study logs: summarizes logs (evidence: `main.py`)
- Parent–teacher messages → Message records: shows messages (evidence: `main.py`)
- Student performance reports → Parent records: reads parents (evidence: `main.py`)
- Student performance reports → Grades and averages: gets student marks (evidence: `main.py`)
