# tanzibhossain/school-management-system architecture

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

## Overview

This is a self-hosted, single-school management platform. School staff configure the school and academic structure, manage student and staff records, then operate attendance, examinations and marks, fees and payments, and communications; students and parents use portals for records, fees, notices, and requests. The graph also preserves README-documented capabilities including admissions, HR, library, transport, payroll, LMS, certificates, website CMS, and localization. Sampled sources support selected controller/service interactions; other module branches are documented capabilities, so their internal wiring is not asserted.

Main entry points: [`app/Http/Controllers/Admin/DashboardController.php`](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/DashboardController.php) (Admin interface), [`app/Http/Controllers/Portal/DashboardController.php`](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Portal/DashboardController.php) (Family portal), [`app/Http/Controllers/Staff/MarkController.php`](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Staff/MarkController.php) (Staff portal), [`app/Modules/Payment/Services`](https://github.com/tanzibhossain/school-management-system/tree/main/app/Modules/Payment/Services) (Fees and payments)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and portals"]
  node_admin_ui["Admin interface"]
  node_staff_portal["Staff portal<br/>[MarkController.php]"]
  node_family_portal["Family portal"]
  node_auth["Authentication<br/>[AuthService.php]"]
  node_account["Account security"]
end

subgraph group_school["School and people"]
  node_school_setup["School setup"]
  node_academic_structure["Academic structure"]
  node_people["Student and staff"]
  node_admissions["Online admission"]
  node_data_import["Data import"]
  node_school_db[("School records")]
end

subgraph group_learning["Academic operations"]
  node_attendance["Attendance"]
  node_exams["Examinations"]
  node_marks["Marks and results<br/>[MarkController.php]"]
  node_certificates["Certificates and cards"]
  node_lms["Learning platform"]
  node_ai_checker["AI-check providers"]
  node_learning_db[("Academic records")]
end

subgraph group_admin["Finance and operations"]
  node_finance["Fees and payments"]
  node_payment_gateway["Payment gateways"]
  node_payroll["Payroll and loans"]
  node_leave["Leave management"]
  node_library["Library<br/>[BookService.php]"]
  node_transport["Transport"]
  node_finance_db[("Finance records")]
end

subgraph group_content["Communication and content"]
  node_announcements["Announcements and messaging"]
  node_sms["SMS communication<br/>[SmsController.php]"]
  node_website["Website CMS<br/>[PageController.php]"]
  node_localization["Localization"]
  node_content_db[("Content records")]
end

node_staff_actor(("School staff"))
node_family_actor(("Student or parent"))

node_staff_actor -->|"administers"| node_admin_ui
node_staff_actor -->|"uses"| node_staff_portal
node_family_actor -->|"views records"| node_family_portal
node_admin_ui -->|"authenticates"| node_auth
node_staff_portal -->|"authenticates"| node_auth
node_family_portal -->|"authenticates"| node_auth
node_admin_ui -->|"configures"| node_school_setup
node_admin_ui -->|"manages"| node_academic_structure
node_admin_ui -->|"manages"| node_people
node_admin_ui -->|"reviews"| node_admissions
node_admissions -->|"records applications"| node_school_db
node_admin_ui -->|"imports records"| node_data_import
node_school_setup -->|"stores settings"| node_school_db
node_academic_structure -->|"stores structure"| node_school_db
node_people -->|"reads and writes"| node_school_db
node_data_import -->|"imports records"| node_school_db
node_admin_ui -->|"manages"| node_attendance
node_staff_portal -->|"records"| node_attendance
node_admin_ui -->|"manages"| node_exams
node_staff_portal -->|"enters"| node_marks
node_marks -->|"stores marks"| node_learning_db
node_family_portal -->|"reads results"| node_learning_db
node_attendance -->|"stores records"| node_learning_db
node_exams -->|"stores exam data"| node_learning_db
node_admin_ui -->|"generates"| node_certificates
node_admin_ui -->|"manages"| node_finance
node_family_portal -->|"views and pays"| node_finance
node_finance -.->|"verifies payments"| node_payment_gateway
node_finance -->|"records transactions"| node_finance_db
node_admin_ui -->|"manages"| node_payroll
node_admin_ui -->|"reviews requests"| node_leave
node_family_portal -->|"submits requests"| node_leave
node_admin_ui -->|"manages"| node_library
node_admin_ui -->|"manages"| node_transport
node_admin_ui -->|"manages courses"| node_lms
node_lms -.->|"checks submissions"| node_ai_checker
node_admin_ui -->|"publishes"| node_announcements
node_family_portal -->|"reads notices"| node_announcements
node_admin_ui -->|"sends messages"| node_sms
node_admin_ui -->|"edits pages"| node_website
node_website -.->|"suggests translations"| node_localization
node_announcements -->|"stores content"| node_content_db
node_website -->|"stores pages"| node_content_db
node_account -->|"manages security"| node_auth

click node_admin_ui "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/DashboardController.php"
click node_staff_portal "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Staff/MarkController.php"
click node_family_portal "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Portal/DashboardController.php"
click node_auth "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/User/Services/AuthService.php"
click node_account "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/AccountController.php"
click node_school_setup "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/Setup/SchoolController.php"
click node_academic_structure "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Academic/Services/AcademicService.php"
click node_people "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/People/StudentController.php"
click node_admissions "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Public/AdmissionController.php"
click node_data_import "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/DataImport/Services/ImportBatchService.php"
click node_attendance "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Attendance/Services/AttendanceService.php"
click node_exams "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Examination/Services/ExaminationService.php"
click node_marks "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Staff/MarkController.php"
click node_certificates "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Certificate/Services/AdmitCardService.php"
click node_finance "https://github.com/tanzibhossain/school-management-system/tree/main/app/Modules/Payment/Services"
click node_payroll "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/Modules/Payroll/PayrollRunController.php"
click node_leave "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Leave/Services/StaffLeaveService.php"
click node_library "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Library/Services/BookService.php"
click node_transport "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Transport/Services/TransportRouteService.php"
click node_lms "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/LMS/Services/SubmissionService.php"
click node_ai_checker "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/LMS/Gateways/AiCheckerContract.php"
click node_announcements "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Announcement/Services/AnnouncementService.php"
click node_sms "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/Comms/SmsController.php"
click node_website "https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/Website/PageController.php"
click node_localization "https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Language/Services/TranslationService.php"

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_admin_ui,node_staff_portal,node_family_portal,node_auth,node_account toneBlue
class node_school_setup,node_academic_structure,node_people,node_admissions,node_data_import,node_school_db toneAmber
class node_attendance,node_exams,node_marks,node_certificates,node_lms,node_ai_checker,node_learning_db toneMint
class node_finance,node_payment_gateway,node_payroll,node_leave,node_library,node_transport,node_finance_db toneRose
class node_announcements,node_sms,node_website,node_localization,node_content_db,node_staff_actor,node_family_actor toneIndigo
```

## Components

### Access and portals

- [Admin interface](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/DashboardController.php): `app/Http/Controllers/Admin/DashboardController.php`
- [Staff portal](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Staff/MarkController.php): `app/Http/Controllers/Staff/MarkController.php`
- [Family portal](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Portal/DashboardController.php): `app/Http/Controllers/Portal/DashboardController.php`
- [Authentication](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/User/Services/AuthService.php): `app/Modules/User/Services/AuthService.php`
- [Account security](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/AccountController.php): `app/Http/Controllers/AccountController.php`

### School and people

- [School setup](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/Setup/SchoolController.php): `app/Http/Controllers/Admin/Setup/SchoolController.php`
- [Academic structure](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Academic/Services/AcademicService.php): `app/Modules/Academic/Services/AcademicService.php`
- [Student and staff](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/People/StudentController.php): `app/Http/Controllers/Admin/People/StudentController.php`
- [Online admission](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Public/AdmissionController.php): `app/Http/Controllers/Public/AdmissionController.php`
- [Data import](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/DataImport/Services/ImportBatchService.php): `app/Modules/DataImport/Services/ImportBatchService.php`
- **School records**

### Academic operations

- [Attendance](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Attendance/Services/AttendanceService.php): `app/Modules/Attendance/Services/AttendanceService.php`
- [Examinations](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Examination/Services/ExaminationService.php): `app/Modules/Examination/Services/ExaminationService.php`
- [Marks and results](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Staff/MarkController.php): `app/Http/Controllers/Staff/MarkController.php`
- [Certificates and cards](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Certificate/Services/AdmitCardService.php): `app/Modules/Certificate/Services/AdmitCardService.php`
- [Learning platform](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/LMS/Services/SubmissionService.php): `app/Modules/LMS/Services/SubmissionService.php`
- [AI-check providers](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/LMS/Gateways/AiCheckerContract.php): `app/Modules/LMS/Gateways/AiCheckerContract.php`
- **Academic records**

### Finance and operations

- [Fees and payments](https://github.com/tanzibhossain/school-management-system/tree/main/app/Modules/Payment/Services): `app/Modules/Payment/Services`
- **Payment gateways**
- [Payroll and loans](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/Modules/Payroll/PayrollRunController.php): `app/Http/Controllers/Admin/Modules/Payroll/PayrollRunController.php`
- [Leave management](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Leave/Services/StaffLeaveService.php): `app/Modules/Leave/Services/StaffLeaveService.php`
- [Library](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Library/Services/BookService.php): `app/Modules/Library/Services/BookService.php`
- [Transport](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Transport/Services/TransportRouteService.php): `app/Modules/Transport/Services/TransportRouteService.php`
- **Finance records**

### Communication and content

- [Announcements and messaging](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Announcement/Services/AnnouncementService.php): `app/Modules/Announcement/Services/AnnouncementService.php`
- [SMS communication](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/Comms/SmsController.php): `app/Http/Controllers/Admin/Comms/SmsController.php`
- [Website CMS](https://github.com/tanzibhossain/school-management-system/blob/main/app/Http/Controllers/Admin/Website/PageController.php): `app/Http/Controllers/Admin/Website/PageController.php`
- [Localization](https://github.com/tanzibhossain/school-management-system/blob/main/app/Modules/Language/Services/TranslationService.php): `app/Modules/Language/Services/TranslationService.php`
- **Content records**

### Other components

- **School staff**
- **Student or parent**

## Connections

- School staff → Admin interface: administers
- School staff → Staff portal: uses
- Student or parent → Family portal: views records
- Admin interface → Authentication: authenticates
- Staff portal → Authentication: authenticates
- Family portal → Authentication: authenticates
- Admin interface → School setup: configures
- Admin interface → Academic structure: manages
- Admin interface → Student and staff: manages
- Admin interface → Online admission: reviews
- Online admission → School records: records applications
- Admin interface → Data import: imports records
- School setup → School records: stores settings
- Academic structure → School records: stores structure
- Student and staff → School records: reads and writes
- Data import → School records: imports records
- Admin interface → Attendance: manages
- Staff portal → Attendance: records
- Admin interface → Examinations: manages
- Staff portal → Marks and results: enters
- Marks and results → Academic records: stores marks
- Family portal → Academic records: reads results
- Attendance → Academic records: stores records
- Examinations → Academic records: stores exam data
- Admin interface → Certificates and cards: generates
- Admin interface → Fees and payments: manages
- Family portal → Fees and payments: views and pays
- Fees and payments → Payment gateways: verifies payments
- Fees and payments → Finance records: records transactions
- Admin interface → Payroll and loans: manages
- Admin interface → Leave management: reviews requests
- Family portal → Leave management: submits requests
- Admin interface → Library: manages
- Admin interface → Transport: manages
- Admin interface → Learning platform: manages courses
- Learning platform → AI-check providers: checks submissions
- Admin interface → Announcements and messaging: publishes
- Family portal → Announcements and messaging: reads notices
- Admin interface → SMS communication: sends messages
- Admin interface → Website CMS: edits pages
- Website CMS → Localization: suggests translations
- Announcements and messaging → Content records: stores content
- Website CMS → Content records: stores pages
- Account security → Authentication: manages security
