# extrase7ent/classroom-management-system architecture

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

## Overview

EduManager is a Django application for managing supplementary classes, with separate teacher and student workflows. Teachers organize classes and schedules, take attendance and record comments, assign work, and grade submissions; students register or sign in, view their learning information, submit work, and review feedback. Django views coordinate these operations, using forms for validation and models backed by PostgreSQL for persistence. The README documents OTP password recovery and the broader feature set; sampled excerpts do not show every route or its exact wiring.

Main entry points: [`core/views.py`](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py) (Request views), [`core/models.py`](https://github.com/extrase7ent/classroom-management-system/blob/main/core/models.py) (Education records), [`core/forms.py`](https://github.com/extrase7ent/classroom-management-system/blob/main/core/forms.py) (Validation forms), [`core/urls.py`](https://github.com/extrase7ent/classroom-management-system/blob/main/core/urls.py) (URL routing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry"]
  node_routes["URL routing<br/>[urls.py]"]
  node_views["Request views<br/>[views.py]"]
  node_forms["Validation forms<br/>[forms.py]"]
  node_student_ui["Student pages"]
  node_teacher_ui["Teacher pages"]
  node_auth_ui["Auth pages"]
end

subgraph group_learning["Class learning"]
  node_class_admin["Class management<br/>[views.py]"]
  node_scheduling["Class schedules<br/>[views.py]"]
  node_attendance["Attendance and comments<br/>[views.py]"]
  node_assignments["Assignments and submissions<br/>[views.py]"]
  node_grading["Grading and feedback<br/>[views.py]"]
  node_dashboard["Student dashboard<br/>[views.py]"]
end

subgraph group_identity["Accounts"]
  node_registration["Registration and login<br/>[views.py]"]
  node_recovery["Password recovery<br/>[views.py]"]
end

subgraph group_data["Persistence"]
  node_models["Education records<br/>[models.py]"]
  node_postgres[("PostgreSQL")]
  node_media["Uploaded files"]
end

node_student(("Student"))
node_teacher(("Teacher"))
node_email["Email service"]

node_student -->|"requests"| node_routes
node_teacher -->|"requests"| node_routes
node_routes -->|"dispatches"| node_views
node_views -->|"renders"| node_student_ui
node_views -->|"renders"| node_teacher_ui
node_views -->|"renders"| node_auth_ui
node_views -->|"handles auth"| node_registration
node_views -->|"handles recovery"| node_recovery
node_views -->|"handles classes"| node_class_admin
node_views -->|"handles schedules"| node_scheduling
node_views -->|"handles attendance"| node_attendance
node_views -->|"handles work"| node_assignments
node_views -->|"handles grading"| node_grading
node_views -->|"serves dashboard"| node_dashboard
node_registration -->|"validates input"| node_forms
node_class_admin -->|"validates input"| node_forms
node_scheduling -->|"validates input"| node_forms
node_assignments -->|"validates uploads"| node_forms
node_grading -->|"validates grades"| node_forms
node_registration -->|"creates accounts"| node_models
node_recovery -->|"checks OTP"| node_models
node_class_admin -->|"manages records"| node_models
node_scheduling -->|"manages schedules"| node_models
node_attendance -->|"records attendance"| node_models
node_assignments -->|"manages submissions"| node_models
node_grading -->|"saves grades"| node_models
node_dashboard -->|"reads learning data"| node_models
node_models -->|"persists records"| node_postgres
node_assignments -->|"stores files"| node_media
node_recovery -.->|"sends OTP"| node_email

click node_routes "https://github.com/extrase7ent/classroom-management-system/blob/main/core/urls.py"
click node_views "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_forms "https://github.com/extrase7ent/classroom-management-system/blob/main/core/forms.py"
click node_student_ui "https://github.com/extrase7ent/classroom-management-system/tree/main/templates/student"
click node_teacher_ui "https://github.com/extrase7ent/classroom-management-system/tree/main/templates/teacher"
click node_auth_ui "https://github.com/extrase7ent/classroom-management-system/tree/main/templates/auth"
click node_registration "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_recovery "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_class_admin "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_scheduling "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_attendance "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_assignments "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_grading "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_dashboard "https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py"
click node_models "https://github.com/extrase7ent/classroom-management-system/blob/main/core/models.py"
click node_media "https://github.com/extrase7ent/classroom-management-system/tree/main/media"

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_routes,node_views,node_forms,node_student_ui,node_teacher_ui,node_auth_ui toneBlue
class node_class_admin,node_scheduling,node_attendance,node_assignments,node_grading,node_dashboard toneAmber
class node_registration,node_recovery toneMint
class node_models,node_postgres,node_media toneRose
class node_student,node_teacher,node_email toneIndigo
```

## Components

### Web entry

- [URL routing](https://github.com/extrase7ent/classroom-management-system/blob/main/core/urls.py): `core/urls.py`
- [Request views](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`
- [Validation forms](https://github.com/extrase7ent/classroom-management-system/blob/main/core/forms.py): `core/forms.py`
- [Student pages](https://github.com/extrase7ent/classroom-management-system/tree/main/templates/student): `templates/student`
- [Teacher pages](https://github.com/extrase7ent/classroom-management-system/tree/main/templates/teacher): `templates/teacher`
- [Auth pages](https://github.com/extrase7ent/classroom-management-system/tree/main/templates/auth): `templates/auth`

### Class learning

- [Class management](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`
- [Class schedules](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`
- [Attendance and comments](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`
- [Assignments and submissions](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`
- [Grading and feedback](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`
- [Student dashboard](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`

### Accounts

- [Registration and login](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`
- [Password recovery](https://github.com/extrase7ent/classroom-management-system/blob/main/core/views.py): `core/views.py`

### Persistence

- [Education records](https://github.com/extrase7ent/classroom-management-system/blob/main/core/models.py): `core/models.py`
- **PostgreSQL**
- [Uploaded files](https://github.com/extrase7ent/classroom-management-system/tree/main/media): `media`

### Other components

- **Student**
- **Teacher**
- **Email service**

## Connections

- Student → URL routing: requests
- Teacher → URL routing: requests
- URL routing → Request views: dispatches
- Request views → Student pages: renders
- Request views → Teacher pages: renders
- Request views → Auth pages: renders
- Request views → Registration and login: handles auth
- Request views → Password recovery: handles recovery
- Request views → Class management: handles classes
- Request views → Class schedules: handles schedules
- Request views → Attendance and comments: handles attendance
- Request views → Assignments and submissions: handles work
- Request views → Grading and feedback: handles grading
- Request views → Student dashboard: serves dashboard
- Registration and login → Validation forms: validates input
- Class management → Validation forms: validates input
- Class schedules → Validation forms: validates input
- Assignments and submissions → Validation forms: validates uploads
- Grading and feedback → Validation forms: validates grades
- Registration and login → Education records: creates accounts
- Password recovery → Education records: checks OTP
- Class management → Education records: manages records
- Class schedules → Education records: manages schedules
- Attendance and comments → Education records: records attendance
- Assignments and submissions → Education records: manages submissions
- Grading and feedback → Education records: saves grades
- Student dashboard → Education records: reads learning data
- Education records → PostgreSQL: persists records
- Assignments and submissions → Uploaded files: stores files
- Password recovery → Email service: sends OTP
