# leenalmahthi/student-management-system architecture

> Architecture diagram of the GitHub repository leenalmahthi/student-management-system, 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/leenalmahthi/student-management-system
- Repository: https://github.com/leenalmahthi/student-management-system

## Overview

Student-Management-System is a web application for managing accounts, students, courses, available courses, and enrollments. Users interact through browser scripts and backend controllers; controllers dispatch to application operations, which use repositories to persist domain data. Authentication uses ASP.NET Identity and JWTs, and enrollment creation records student and course details. The README provides no capability details, and several application and frontend files were not sampled, so uncertain internal calls and frontend-to-endpoint wiring are omitted.

Main entry points: [`Backend/Infrastructure/Data/DataContext.cs`](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/Data/DataContext.cs) (EF data context), [`Backend/Infrastructure/Identity/usermanager.cs`](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/Identity/usermanager.cs) (Identity manager), [`Backend/Application/Athu/SignIn.cs`](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/Athu/SignIn.cs) (Sign-in and sign-up), [`Backend/Application/enrollment/CreateEnrollment.cs`](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/enrollment/CreateEnrollment.cs) (Create enrollment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Browser interface"]
  node_frontend_scripts["Browser scripts"]
end

subgraph group_api["Backend API"]
  node_auth_controller["Auth controller"]
  node_students_controller["Students controller"]
  node_course_controller["Course controller"]
  node_available_controller["Available course controller"]
  node_enrollment_controller["Enrollment controller"]
end

subgraph group_application["Application operations"]
  node_auth_ops["Sign-in and sign-up<br/>[SignIn.cs]"]
  node_student_ops["Student operations<br/>[ShowStudents.cs]"]
  node_course_ops["Course operations<br/>[ShowCourse.cs]"]
  node_available_ops["Available course operations"]
  node_enrollment_op["Create enrollment"]
end

subgraph group_infrastructure["Identity and persistence"]
  node_auth_repo["Identity manager<br/>[usermanager.cs]"]
  node_jwt["JWT generation<br/>[GenerateJwt.cs]"]
  node_student_repo["Student repository"]
  node_course_repo["Course repository"]
  node_available_repo["Available course repository"]
  node_enrollment_repo["Enrollment repository"]
  node_data_context["EF data context<br/>[DataContext.cs]"]
end

node_user(("User"))
node_database[("SQL database")]

node_user -->|"uses"| node_frontend_scripts
node_auth_controller -->|"dispatches"| node_auth_ops
node_students_controller -->|"dispatches"| node_student_ops
node_course_controller -->|"dispatches"| node_course_ops
node_available_controller -->|"dispatches"| node_available_ops
node_enrollment_controller -->|"dispatches"| node_enrollment_op
node_auth_ops -->|"authenticates"| node_auth_repo
node_auth_repo -->|"creates token"| node_jwt
node_auth_repo -->|"uses Identity store"| node_data_context
node_student_repo -->|"queries and saves"| node_data_context
node_course_repo -->|"queries and saves"| node_data_context
node_available_repo -->|"queries and saves"| node_data_context
node_enrollment_op -->|"creates record"| node_enrollment_repo
node_enrollment_repo -->|"saves enrollment"| node_data_context
node_data_context -->|"reads and writes"| node_database

click node_frontend_scripts "https://github.com/leenalmahthi/student-management-system/tree/main/Frontend/Js"
click node_auth_controller "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/authApplicationController.cs"
click node_students_controller "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/StudentsController.cs"
click node_course_controller "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/CourseController.cs"
click node_available_controller "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/AvaliableCourseController.cs"
click node_enrollment_controller "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/EnrollmentController.cs"
click node_auth_ops "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/Athu/SignIn.cs"
click node_student_ops "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/Student/ShowStudents.cs"
click node_course_ops "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/Courses/ShowCourse.cs"
click node_available_ops "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/AvalibleCourses/ShowAvalibleCourse.cs"
click node_enrollment_op "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/enrollment/CreateEnrollment.cs"
click node_auth_repo "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/Identity/usermanager.cs"
click node_jwt "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/Identity/GenerateJwt.cs"
click node_student_repo "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/SqlInterface/sqllStudentRepository.cs"
click node_course_repo "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/SqlInterface/sqlICourseRepository.cs"
click node_available_repo "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/SqlInterface/sqlIAvailsbleCourseRepository.cs"
click node_enrollment_repo "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/SqlInterface/sqlIEnrollmentRepository.cs"
click node_data_context "https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/Data/DataContext.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_frontend_scripts,node_user toneBlue
class node_auth_controller,node_students_controller,node_course_controller,node_available_controller,node_enrollment_controller,node_database toneAmber
class node_auth_ops,node_student_ops,node_course_ops,node_available_ops,node_enrollment_op toneMint
class node_auth_repo,node_jwt,node_student_repo,node_course_repo,node_available_repo,node_enrollment_repo,node_data_context toneRose
```

## Components

### Browser interface

- [Browser scripts](https://github.com/leenalmahthi/student-management-system/tree/main/Frontend/Js): `Frontend/Js`

### Backend API

- [Auth controller](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/authApplicationController.cs): `Backend/Presentation/Controllers/authApplicationController.cs`
- [Students controller](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/StudentsController.cs): `Backend/Presentation/Controllers/StudentsController.cs`
- [Course controller](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/CourseController.cs): `Backend/Presentation/Controllers/CourseController.cs`
- [Available course controller](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/AvaliableCourseController.cs): `Backend/Presentation/Controllers/AvaliableCourseController.cs`
- [Enrollment controller](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Presentation/Controllers/EnrollmentController.cs): `Backend/Presentation/Controllers/EnrollmentController.cs`

### Application operations

- [Sign-in and sign-up](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/Athu/SignIn.cs): `Backend/Application/Athu/SignIn.cs`
- [Student operations](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/Student/ShowStudents.cs): `Backend/Application/Student/ShowStudents.cs`
- [Course operations](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/Courses/ShowCourse.cs): `Backend/Application/Courses/ShowCourse.cs`
- [Available course operations](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/AvalibleCourses/ShowAvalibleCourse.cs): `Backend/Application/AvalibleCourses/ShowAvalibleCourse.cs`
- [Create enrollment](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Application/enrollment/CreateEnrollment.cs): `Backend/Application/enrollment/CreateEnrollment.cs`

### Identity and persistence

- [Identity manager](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/Identity/usermanager.cs): `Backend/Infrastructure/Identity/usermanager.cs`
- [JWT generation](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/Identity/GenerateJwt.cs): `Backend/Infrastructure/Identity/GenerateJwt.cs`
- [Student repository](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/SqlInterface/sqllStudentRepository.cs): `Backend/Infrastructure/SqlInterface/sqllStudentRepository.cs`
- [Course repository](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/SqlInterface/sqlICourseRepository.cs): `Backend/Infrastructure/SqlInterface/sqlICourseRepository.cs`
- [Available course repository](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/SqlInterface/sqlIAvailsbleCourseRepository.cs): `Backend/Infrastructure/SqlInterface/sqlIAvailsbleCourseRepository.cs`
- [Enrollment repository](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/SqlInterface/sqlIEnrollmentRepository.cs): `Backend/Infrastructure/SqlInterface/sqlIEnrollmentRepository.cs`
- [EF data context](https://github.com/leenalmahthi/student-management-system/blob/main/Backend/Infrastructure/Data/DataContext.cs): `Backend/Infrastructure/Data/DataContext.cs`

### Other components

- **User**
- **SQL database**

## Connections

- User → Browser scripts: uses
- Auth controller → Sign-in and sign-up: dispatches
- Students controller → Student operations: dispatches
- Course controller → Course operations: dispatches
- Available course controller → Available course operations: dispatches
- Enrollment controller → Create enrollment: dispatches
- Sign-in and sign-up → Identity manager: authenticates
- Identity manager → JWT generation: creates token
- Identity manager → EF data context: uses Identity store
- Student repository → EF data context: queries and saves
- Course repository → EF data context: queries and saves
- Available course repository → EF data context: queries and saves
- Create enrollment → Enrollment repository: creates record
- Enrollment repository → EF data context: saves enrollment
- EF data context → SQL database: reads and writes
