# zakymaizi2031/project_sis architecture

> Architecture diagram of the GitHub repository zakymaizi2031/project_sis, 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/zakymaizi2031/project_sis
- Repository: https://github.com/zakymaizi2031/project_sis

## Overview

This is a CodeIgniter school information system for SD Negeri 13 Cingkariang, not merely the framework starter described by the README. Its principal workflow is an HTTP request routed to a controller, with login establishing role-aware session state and authenticated users accessing school-management features. The route definitions document student, teacher, schedule, grade, gallery, profile, and dashboard areas. Controller-to-model wiring is not shown for most features, so those links are omitted; the authentication controller’s model calls are visible in the sampled source.

Main entry points: [`app/Config/Routes.php`](https://github.com/zakymaizi2031/project_sis/blob/main/app/Config/Routes.php) (Route definitions), [`app/Controllers/Auth.php`](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Auth.php) (Authentication), [`public/index.php`](https://github.com/zakymaizi2031/project_sis/blob/main/public/index.php) (Web front controller), [`app/Filters/AuthFilter.php`](https://github.com/zakymaizi2031/project_sis/blob/main/app/Filters/AuthFilter.php) (Login filter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry and routing"]
  node_front["Web front controller<br/>[index.php]"]
  node_routes["Route definitions<br/>[Routes.php]"]
end

subgraph group_identity["Identity and access"]
  node_auth["Authentication<br/>[Auth.php]"]
  node_authfilter["Login filter<br/>[AuthFilter.php]"]
  node_rolefilter["Role filter<br/>[RoleFilter.php]"]
end

subgraph group_school["School operations"]
  node_home["School home<br/>[Home.php]"]
  node_dashboard["Role dashboard<br/>[Dashboard.php]"]
  node_siswa["Student management<br/>[Siswa.php]"]
  node_guru["Teacher management<br/>[Guru.php]"]
  node_jadwal["Schedule management<br/>[Jadwal.php]"]
  node_nilai["Grade management<br/>[Nilai.php]"]
  node_galeri["School gallery<br/>[Galeri.php]"]
  node_profile["User profile<br/>[Profile.php]"]
end

subgraph group_presentation["User interface"]
  node_homeview["Public home view<br/>[home.php]"]
  node_dashview["Dashboard views<br/>[index.php]"]
  node_siswaview["Student views<br/>[index.php]"]
  node_jadwalview["Schedule views<br/>[index.php]"]
  node_nilaiview["Grade views<br/>[index.php]"]
end

subgraph group_data["Persistence"]
  node_user_model["User records<br/>[UserModel.php]"]
  node_guru_model["Teacher records<br/>[GuruModel.php]"]
  node_siswa_model["Student records<br/>[SiswaModel.php]"]
  node_database[("Configured database<br/>[Database.php]")]
end

node_visitor(("Visitor or user"))

node_visitor -->|"requests page"| node_front
node_front -->|"boots routing"| node_routes
node_routes -->|"dispatches login"| node_auth
node_routes -->|"dispatches home"| node_home
node_routes -->|"dispatches dashboard"| node_dashboard
node_routes -->|"dispatches students"| node_siswa
node_routes -->|"dispatches teachers"| node_guru
node_routes -->|"dispatches schedules"| node_jadwal
node_routes -->|"dispatches grades"| node_nilai
node_routes -->|"dispatches gallery"| node_galeri
node_routes -->|"dispatches profile"| node_profile
node_auth -->|"looks up user"| node_user_model
node_auth -->|"looks up teacher"| node_guru_model
node_auth -->|"looks up student"| node_siswa_model
node_routes -->|"applies login filter"| node_authfilter
node_routes -->|"applies role filter"| node_rolefilter

click node_front "https://github.com/zakymaizi2031/project_sis/blob/main/public/index.php"
click node_routes "https://github.com/zakymaizi2031/project_sis/blob/main/app/Config/Routes.php"
click node_auth "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Auth.php"
click node_authfilter "https://github.com/zakymaizi2031/project_sis/blob/main/app/Filters/AuthFilter.php"
click node_rolefilter "https://github.com/zakymaizi2031/project_sis/blob/main/app/Filters/RoleFilter.php"
click node_user_model "https://github.com/zakymaizi2031/project_sis/blob/main/app/Models/UserModel.php"
click node_guru_model "https://github.com/zakymaizi2031/project_sis/blob/main/app/Models/GuruModel.php"
click node_siswa_model "https://github.com/zakymaizi2031/project_sis/blob/main/app/Models/SiswaModel.php"
click node_database "https://github.com/zakymaizi2031/project_sis/blob/main/app/Config/Database.php"
click node_home "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Home.php"
click node_dashboard "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Dashboard.php"
click node_siswa "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Siswa.php"
click node_guru "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Guru.php"
click node_jadwal "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Jadwal.php"
click node_nilai "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Nilai.php"
click node_galeri "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Galeri.php"
click node_profile "https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Profile.php"
click node_homeview "https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/home.php"
click node_dashview "https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/dashboard/index.php"
click node_siswaview "https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/siswa/index.php"
click node_jadwalview "https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/jadwal/index.php"
click node_nilaiview "https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/nilai/index.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_front,node_routes,node_visitor toneBlue
class node_auth,node_authfilter,node_rolefilter toneAmber
class node_home,node_dashboard,node_siswa,node_guru,node_jadwal,node_nilai,node_galeri,node_profile toneMint
class node_homeview,node_dashview,node_siswaview,node_jadwalview,node_nilaiview toneRose
class node_user_model,node_guru_model,node_siswa_model,node_database toneIndigo
```

## Components

### Web entry and routing

- [Web front controller](https://github.com/zakymaizi2031/project_sis/blob/main/public/index.php): `public/index.php`
- [Route definitions](https://github.com/zakymaizi2031/project_sis/blob/main/app/Config/Routes.php): `app/Config/Routes.php`

### Identity and access

- [Authentication](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Auth.php): `app/Controllers/Auth.php`
- [Login filter](https://github.com/zakymaizi2031/project_sis/blob/main/app/Filters/AuthFilter.php): `app/Filters/AuthFilter.php`
- [Role filter](https://github.com/zakymaizi2031/project_sis/blob/main/app/Filters/RoleFilter.php): `app/Filters/RoleFilter.php`

### School operations

- [School home](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Home.php): `app/Controllers/Home.php`
- [Role dashboard](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Dashboard.php): `app/Controllers/Dashboard.php`
- [Student management](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Siswa.php): `app/Controllers/Siswa.php`
- [Teacher management](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Guru.php): `app/Controllers/Guru.php`
- [Schedule management](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Jadwal.php): `app/Controllers/Jadwal.php`
- [Grade management](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Nilai.php): `app/Controllers/Nilai.php`
- [School gallery](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Galeri.php): `app/Controllers/Galeri.php`
- [User profile](https://github.com/zakymaizi2031/project_sis/blob/main/app/Controllers/Profile.php): `app/Controllers/Profile.php`

### User interface

- [Public home view](https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/home.php): `app/Views/home.php`
- [Dashboard views](https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/dashboard/index.php): `app/Views/dashboard/index.php`
- [Student views](https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/siswa/index.php): `app/Views/siswa/index.php`
- [Schedule views](https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/jadwal/index.php): `app/Views/jadwal/index.php`
- [Grade views](https://github.com/zakymaizi2031/project_sis/blob/main/app/Views/nilai/index.php): `app/Views/nilai/index.php`

### Persistence

- [User records](https://github.com/zakymaizi2031/project_sis/blob/main/app/Models/UserModel.php): `app/Models/UserModel.php`
- [Teacher records](https://github.com/zakymaizi2031/project_sis/blob/main/app/Models/GuruModel.php): `app/Models/GuruModel.php`
- [Student records](https://github.com/zakymaizi2031/project_sis/blob/main/app/Models/SiswaModel.php): `app/Models/SiswaModel.php`
- [Configured database](https://github.com/zakymaizi2031/project_sis/blob/main/app/Config/Database.php): `app/Config/Database.php`

### Other components

- **Visitor or user**

## Connections

- Visitor or user → Web front controller: requests page
- Web front controller → Route definitions: boots routing
- Route definitions → Authentication: dispatches login
- Route definitions → School home: dispatches home
- Route definitions → Role dashboard: dispatches dashboard
- Route definitions → Student management: dispatches students
- Route definitions → Teacher management: dispatches teachers
- Route definitions → Schedule management: dispatches schedules
- Route definitions → Grade management: dispatches grades
- Route definitions → School gallery: dispatches gallery
- Route definitions → User profile: dispatches profile
- Authentication → User records: looks up user
- Authentication → Teacher records: looks up teacher
- Authentication → Student records: looks up student
- Route definitions → Login filter: applies login filter
- Route definitions → Role filter: applies role filter
