# sachin-agrahari/school-management architecture

> Architecture diagram of the GitHub repository sachin-agrahari/school-management, 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/sachin-agrahari/school-management
- Repository: https://github.com/sachin-agrahari/school-management

## Overview

SchoolManagementERP is an ASP.NET Core MVC school-management application. The visible user flow begins at the login page, stores the submitted username and role in session, and redirects to the dashboard; users can then reach school-management modules. The tree identifies attendance, classes, exams, fees, reports, students, teachers, and transport capabilities, though their implementations were not sampled. The sampled data path covers student retrieval and database-backed menu retrieval. The README provides no further architecture detail, so unsampled module wiring is not inferred.

Main entry points: [`Controllers/LoginController.cs`](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/LoginController.cs) (Login and session), [`Controllers/DashboardController.cs`](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/DashboardController.cs) (Dashboard), [`Controllers/StudentsController.cs`](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/StudentsController.cs) (Student management), [`Program.cs`](https://github.com/sachin-agrahari/school-management/blob/main/Program.cs) (MVC application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and navigation"]
  node_app["MVC application<br/>[Program.cs]"]
  node_login["Login and session<br/>[LoginController.cs]"]
  node_loginview["Login page<br/>[Index.cshtml]"]
  node_dashboard["Dashboard"]
  node_dashboardview["Dashboard page<br/>[Index.cshtml]"]
end

subgraph group_school["School operations"]
  node_students["Student management"]
  node_studentview["Student pages<br/>[Index.cshtml]"]
  node_attendance["Attendance"]
  node_attendanceview["Attendance page<br/>[Index.cshtml]"]
  node_classes["Classes"]
  node_classesview["Classes page<br/>[Index.cshtml]"]
  node_exams["Exams<br/>[ExamsController.cs]"]
  node_examsview["Exams page<br/>[Index.cshtml]"]
  node_teachers["Teachers"]
  node_teachersview["Teacher pages<br/>[Index.cshtml]"]
  node_transport["Transport"]
  node_transportview["Transport pages<br/>[Index.cshtml]"]
end

subgraph group_administration["Administration"]
  node_fees["Fees<br/>[FeesController.cs]"]
  node_feesview["Fees page<br/>[Index.cshtml]"]
  node_reports["Reports"]
  node_reportsview["Reports page<br/>[Index.cshtml]"]
  node_mastercontroller["Menu endpoint"]
end

subgraph group_data["Data access"]
  node_studentinterface["Student contract<br/>[IStudent.cs]"]
  node_studentdata["Student data access<br/>[Student.cs]"]
  node_masterinterface["Menu contract<br/>[IMaster.cs]"]
  node_masterdata["Menu data access<br/>[MasterData.cs]"]
  node_sqlhelper["SQL helper<br/>[SqlHelper.cs]"]
end

node_user(("School user"))
node_sqlserver[("SQL Server")]

node_user -->|"opens"| node_app
node_app -->|"routes requests"| node_login
node_login -->|"renders"| node_loginview
node_login -->|"redirects after login"| node_dashboard
node_dashboard -->|"redirects without session"| node_login
node_dashboard -->|"renders"| node_dashboardview
node_students -->|"renders"| node_studentview
node_students -->|"requests student data"| node_studentinterface
node_mastercontroller -->|"requests menu data"| node_masterinterface
node_masterdata -->|"executes query"| node_sqlhelper
node_sqlhelper -->|"queries"| node_sqlserver

click node_app "https://github.com/sachin-agrahari/school-management/blob/main/Program.cs"
click node_login "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/LoginController.cs"
click node_loginview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Login/Index.cshtml"
click node_dashboard "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/DashboardController.cs"
click node_dashboardview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Dashboard/Index.cshtml"
click node_students "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/StudentsController.cs"
click node_studentview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Students/Index.cshtml"
click node_attendance "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/AttendanceController.cs"
click node_attendanceview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Attendance/Index.cshtml"
click node_classes "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/ClassesController.cs"
click node_classesview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Classes/Index.cshtml"
click node_exams "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/ExamsController.cs"
click node_examsview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Exams/Index.cshtml"
click node_teachers "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/TeachersController.cs"
click node_teachersview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Teachers/Index.cshtml"
click node_transport "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/TransportController.cs"
click node_transportview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Transport/Index.cshtml"
click node_fees "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/FeesController.cs"
click node_feesview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Fees/Index.cshtml"
click node_reports "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/ReportsController.cs"
click node_reportsview "https://github.com/sachin-agrahari/school-management/blob/main/Views/Reports/Index.cshtml"
click node_mastercontroller "https://github.com/sachin-agrahari/school-management/blob/main/Controllers/MasterController.cs"
click node_studentinterface "https://github.com/sachin-agrahari/school-management/blob/main/Interface/IStudent.cs"
click node_studentdata "https://github.com/sachin-agrahari/school-management/blob/main/DataAccess/Student.cs"
click node_masterinterface "https://github.com/sachin-agrahari/school-management/blob/main/Interface/IMaster.cs"
click node_masterdata "https://github.com/sachin-agrahari/school-management/blob/main/DataAccess/MasterData.cs"
click node_sqlhelper "https://github.com/sachin-agrahari/school-management/blob/main/SqlHelper/SqlHelper.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_app,node_login,node_loginview,node_dashboard,node_dashboardview,node_user toneBlue
class node_students,node_studentview,node_attendance,node_attendanceview,node_classes,node_classesview,node_exams,node_examsview,node_teachers,node_teachersview,node_transport,node_transportview,node_sqlserver toneAmber
class node_fees,node_feesview,node_reports,node_reportsview,node_mastercontroller toneMint
class node_studentinterface,node_studentdata,node_masterinterface,node_masterdata,node_sqlhelper toneRose
```

## Components

### Entry and navigation

- [MVC application](https://github.com/sachin-agrahari/school-management/blob/main/Program.cs): `Program.cs`
- [Login and session](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/LoginController.cs): `Controllers/LoginController.cs`
- [Login page](https://github.com/sachin-agrahari/school-management/blob/main/Views/Login/Index.cshtml): `Views/Login/Index.cshtml`
- [Dashboard](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/DashboardController.cs): `Controllers/DashboardController.cs`
- [Dashboard page](https://github.com/sachin-agrahari/school-management/blob/main/Views/Dashboard/Index.cshtml): `Views/Dashboard/Index.cshtml`

### School operations

- [Student management](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/StudentsController.cs): `Controllers/StudentsController.cs`
- [Student pages](https://github.com/sachin-agrahari/school-management/blob/main/Views/Students/Index.cshtml): `Views/Students/Index.cshtml`
- [Attendance](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/AttendanceController.cs): `Controllers/AttendanceController.cs`
- [Attendance page](https://github.com/sachin-agrahari/school-management/blob/main/Views/Attendance/Index.cshtml): `Views/Attendance/Index.cshtml`
- [Classes](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/ClassesController.cs): `Controllers/ClassesController.cs`
- [Classes page](https://github.com/sachin-agrahari/school-management/blob/main/Views/Classes/Index.cshtml): `Views/Classes/Index.cshtml`
- [Exams](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/ExamsController.cs): `Controllers/ExamsController.cs`
- [Exams page](https://github.com/sachin-agrahari/school-management/blob/main/Views/Exams/Index.cshtml): `Views/Exams/Index.cshtml`
- [Teachers](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/TeachersController.cs): `Controllers/TeachersController.cs`
- [Teacher pages](https://github.com/sachin-agrahari/school-management/blob/main/Views/Teachers/Index.cshtml): `Views/Teachers/Index.cshtml`
- [Transport](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/TransportController.cs): `Controllers/TransportController.cs`
- [Transport pages](https://github.com/sachin-agrahari/school-management/blob/main/Views/Transport/Index.cshtml): `Views/Transport/Index.cshtml`

### Administration

- [Fees](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/FeesController.cs): `Controllers/FeesController.cs`
- [Fees page](https://github.com/sachin-agrahari/school-management/blob/main/Views/Fees/Index.cshtml): `Views/Fees/Index.cshtml`
- [Reports](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/ReportsController.cs): `Controllers/ReportsController.cs`
- [Reports page](https://github.com/sachin-agrahari/school-management/blob/main/Views/Reports/Index.cshtml): `Views/Reports/Index.cshtml`
- [Menu endpoint](https://github.com/sachin-agrahari/school-management/blob/main/Controllers/MasterController.cs): `Controllers/MasterController.cs`

### Data access

- [Student contract](https://github.com/sachin-agrahari/school-management/blob/main/Interface/IStudent.cs): `Interface/IStudent.cs`
- [Student data access](https://github.com/sachin-agrahari/school-management/blob/main/DataAccess/Student.cs): `DataAccess/Student.cs`
- [Menu contract](https://github.com/sachin-agrahari/school-management/blob/main/Interface/IMaster.cs): `Interface/IMaster.cs`
- [Menu data access](https://github.com/sachin-agrahari/school-management/blob/main/DataAccess/MasterData.cs): `DataAccess/MasterData.cs`
- [SQL helper](https://github.com/sachin-agrahari/school-management/blob/main/SqlHelper/SqlHelper.cs): `SqlHelper/SqlHelper.cs`

### Other components

- **School user**
- **SQL Server**

## Connections

- School user → MVC application: opens
- MVC application → Login and session: routes requests
- Login and session → Login page: renders
- Login and session → Dashboard: redirects after login
- Dashboard → Login and session: redirects without session
- Dashboard → Dashboard page: renders
- Student management → Student pages: renders
- Student management → Student contract: requests student data
- Menu endpoint → Menu contract: requests menu data
- Menu data access → SQL helper: executes query
- SQL helper → SQL Server: queries
