# azher-devs/student-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/azher-devs/student-management-system
- Repository: https://github.com/azher-devs/student-management-system

## Overview

This is a Windows Forms student-record and course-grade manager. A user searches the student list, opens dialogs to add, edit, or delete students, or selects a student to manage grades. Forms delegate changes to services, which validate and persist the in-memory student-and-grade data to an Excel workbook; student averages are calculated from grades. The README documents the overall dependency flow; some form excerpts are partial, so the graph omits uncertain details rather than inferring extra calls.

Main entry points: [`Forms/MainForm.cs`](https://github.com/azher-devs/student-management-system/blob/main/Forms/MainForm.cs) (Student List), [`ExcelManager.cs`](https://github.com/azher-devs/student-management-system/blob/main/ExcelManager.cs) (Workbook Access), [`Forms/GradesForm.cs`](https://github.com/azher-devs/student-management-system/blob/main/Forms/GradesForm.cs) (Grade List), [`Services/StudentService.cs`](https://github.com/azher-devs/student-management-system/blob/main/Services/StudentService.cs) (Student Operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Presentation"]
  node_program["Application Entry<br/>[Program.cs]"]
  node_main["Student List<br/>[MainForm.cs]"]
  node_studentform["Student Dialog<br/>[StudentForm.cs]"]
  node_gradesform["Grade List<br/>[GradesForm.cs]"]
  node_gradeform["Grade Dialog<br/>[GradeForm.cs]"]
end

subgraph group_rules["Business Logic"]
  node_studentservice["Student Operations<br/>[StudentService.cs]"]
  node_gradeservice["Grade Operations<br/>[GradeService.cs]"]
end

subgraph group_domain["Domain Model"]
  node_student["Student Record<br/>[Student.cs]"]
  node_grade["Grade Record<br/>[Grade.cs]"]
end

subgraph group_storage["Excel Persistence"]
  node_excel["Workbook Access<br/>[ExcelManager.cs]"]
  node_workbook[("Students.xlsx")]
end

node_user(("User"))
node_closedxml["ClosedXML"]

node_user -->|"uses"| node_main
node_program -->|"launches"| node_main
node_main -->|"loads and manages"| node_studentservice
node_studentservice -->|"loads and saves"| node_excel
node_excel -->|"reads and writes"| node_workbook
node_excel -->|"loads records"| node_student
node_excel -->|"loads records"| node_grade
node_studentservice -->|"returns students"| node_main
node_main -->|"opens dialog"| node_studentform
node_studentform -->|"returns input"| node_main
node_main -->|"opens grades"| node_gradesform
node_gradesform -->|"opens dialog"| node_gradeform
node_gradeform -->|"returns input"| node_gradesform
node_gradesform -->|"manages grades"| node_gradeservice
node_gradeservice -->|"saves changes"| node_excel
node_student -->|"owns grades"| node_grade
node_student -->|"calculates average"| node_grade
node_excel -->|"uses"| node_closedxml

click node_program "https://github.com/azher-devs/student-management-system/blob/main/Program.cs"
click node_main "https://github.com/azher-devs/student-management-system/blob/main/Forms/MainForm.cs"
click node_studentform "https://github.com/azher-devs/student-management-system/blob/main/Forms/StudentForm.cs"
click node_gradesform "https://github.com/azher-devs/student-management-system/blob/main/Forms/GradesForm.cs"
click node_gradeform "https://github.com/azher-devs/student-management-system/blob/main/Forms/GradeForm.cs"
click node_studentservice "https://github.com/azher-devs/student-management-system/blob/main/Services/StudentService.cs"
click node_gradeservice "https://github.com/azher-devs/student-management-system/blob/main/Services/GradeService.cs"
click node_student "https://github.com/azher-devs/student-management-system/blob/main/Models/Student.cs"
click node_grade "https://github.com/azher-devs/student-management-system/blob/main/Models/Grade.cs"
click node_excel "https://github.com/azher-devs/student-management-system/blob/main/ExcelManager.cs"

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_program,node_main,node_studentform,node_gradesform,node_gradeform,node_user toneBlue
class node_studentservice,node_gradeservice toneAmber
class node_student,node_grade toneMint
class node_excel,node_workbook toneRose
class node_closedxml toneIndigo
```

## Components

### Presentation

- [Application Entry](https://github.com/azher-devs/student-management-system/blob/main/Program.cs): `Program.cs`
- [Student List](https://github.com/azher-devs/student-management-system/blob/main/Forms/MainForm.cs): `Forms/MainForm.cs`
- [Student Dialog](https://github.com/azher-devs/student-management-system/blob/main/Forms/StudentForm.cs): `Forms/StudentForm.cs`
- [Grade List](https://github.com/azher-devs/student-management-system/blob/main/Forms/GradesForm.cs): `Forms/GradesForm.cs`
- [Grade Dialog](https://github.com/azher-devs/student-management-system/blob/main/Forms/GradeForm.cs): `Forms/GradeForm.cs`

### Business Logic

- [Student Operations](https://github.com/azher-devs/student-management-system/blob/main/Services/StudentService.cs): `Services/StudentService.cs`
- [Grade Operations](https://github.com/azher-devs/student-management-system/blob/main/Services/GradeService.cs): `Services/GradeService.cs`

### Domain Model

- [Student Record](https://github.com/azher-devs/student-management-system/blob/main/Models/Student.cs): `Models/Student.cs`
- [Grade Record](https://github.com/azher-devs/student-management-system/blob/main/Models/Grade.cs): `Models/Grade.cs`

### Excel Persistence

- [Workbook Access](https://github.com/azher-devs/student-management-system/blob/main/ExcelManager.cs): `ExcelManager.cs`
- **Students.xlsx**

### Other components

- **User**
- **ClosedXML**

## Connections

- User → Student List: uses
- Application Entry → Student List: launches
- Student List → Student Operations: loads and manages
- Student Operations → Workbook Access: loads and saves
- Workbook Access → Students.xlsx: reads and writes
- Workbook Access → Student Record: loads records
- Workbook Access → Grade Record: loads records
- Student Operations → Student List: returns students
- Student List → Student Dialog: opens dialog
- Student Dialog → Student List: returns input
- Student List → Grade List: opens grades
- Grade List → Grade Dialog: opens dialog
- Grade Dialog → Grade List: returns input
- Grade List → Grade Operations: manages grades
- Grade Operations → Workbook Access: saves changes
- Student Record → Grade Record: owns grades
- Student Record → Grade Record: calculates average
- Workbook Access → ClosedXML: uses
