# 4mun4jmudin/siakad architecture

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

## Overview

SIAKAD is a role-based school information system covering attendance, academic operations, grading, and family/student access. A typical workflow is a student signing in, submitting location-checked attendance, and viewing attendance history; teachers and administrators manage related records, while students and guardians also access schedules, assignments, and grades. The graph reflects documented capabilities and sampled controller behavior; most controller-to-model and route wiring was not sampled, so uncertain links are omitted.

Main entry points: [`resources/js/Pages`](https://github.com/4mun4jmudin/siakad/tree/main/resources/js/Pages) (Role Interfaces), [`app/Models`](https://github.com/4mun4jmudin/siakad/tree/main/app/Models) (School Records), [`app/Http/Controllers/Auth/AuthenticatedSessionController.php`](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php) (Web Login), [`app/Http/Controllers/Guru`](https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Guru) (Teacher Portal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Access and Identity"]
  node_web_login["Web Login"]
  node_student_api_login["Student API Login"]
  node_user_model[("User Accounts<br/>[User.php]")]
end

subgraph group_operations["School Operations"]
  node_admin_ops["Administration"]
  node_school_records[("School Records")]
  node_student_management["Student Management"]
end

subgraph group_attendance["Attendance"]
  node_attendance_entry["Student Attendance"]
  node_attendance_records[("Attendance Records<br/>[AbsensiSiswa.php]")]
  node_subject_attendance[("Subject Attendance")]
  node_attendance_admin["Attendance Oversight"]
end

subgraph group_academics["Academic Learning"]
  node_academic_management["Academic Management"]
  node_grading["Assessment and Grades"]
  node_learning_work["Lessons and Tasks"]
end

subgraph group_portals["Role Portals and Reports"]
  node_teacher_portal["Teacher Portal"]
  node_student_portal["Student Portal"]
  node_guardian_portal["Guardian Portal"]
  node_reports["Reports and Exports"]
  node_inertia_ui["Role Interfaces"]
end

node_student(("Student"))
node_teacher(("Teacher"))
node_guardian(("Guardian"))
node_admin(("Administrator"))

node_student -->|"signs in"| node_student_api_login
node_teacher -->|"signs in"| node_web_login
node_admin -->|"signs in"| node_web_login
node_guardian -->|"uses portal"| node_guardian_portal
node_web_login -->|"authenticates"| node_user_model
node_web_login -->|"redirects role"| node_admin_ops
node_web_login -->|"redirects role"| node_teacher_portal
node_student_api_login -->|"checks account"| node_user_model
node_admin_ops -->|"manages records"| node_school_records
node_admin_ops -->|"renders pages"| node_inertia_ui
node_student_management -->|"manages students"| node_school_records
node_student_management -->|"renders pages"| node_inertia_ui
node_student -->|"submits attendance"| node_attendance_entry
node_attendance_entry -->|"reads and writes"| node_attendance_records
node_attendance_entry -->|"reads records"| node_subject_attendance
node_attendance_entry -->|"renders history"| node_inertia_ui
node_attendance_admin -->|"reads records"| node_subject_attendance
node_attendance_admin -->|"loads schedules"| node_school_records
node_teacher -->|"uses portal"| node_teacher_portal
node_teacher_portal -->|"renders pages"| node_inertia_ui
node_teacher_portal -->|"manages learning"| node_academic_management
node_teacher_portal -->|"records grades"| node_grading
node_student -->|"uses portal"| node_student_portal
node_student_portal -->|"renders pages"| node_inertia_ui
node_guardian -->|"views child data"| node_guardian_portal
node_guardian_portal -->|"renders pages"| node_inertia_ui
node_guardian_portal -->|"reads student data"| node_school_records
node_academic_management -->|"updates curriculum"| node_school_records
node_grading -->|"stores assessments"| node_school_records
node_reports -->|"summarizes attendance"| node_attendance_records
node_reports -->|"renders reports"| node_inertia_ui

click node_web_login "https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_student_api_login "https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Api/SiswaAuthController.php"
click node_user_model "https://github.com/4mun4jmudin/siakad/blob/main/app/Models/User.php"
click node_admin_ops "https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Admin"
click node_school_records "https://github.com/4mun4jmudin/siakad/tree/main/app/Models"
click node_student_management "https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Admin/SiswaController.php"
click node_attendance_entry "https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Siswa/AbsensiController.php"
click node_attendance_records "https://github.com/4mun4jmudin/siakad/blob/main/app/Models/AbsensiSiswa.php"
click node_subject_attendance "https://github.com/4mun4jmudin/siakad/blob/main/app/Models/AbsensiSiswaMapel.php"
click node_attendance_admin "https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Admin/AbsensiSiswaMapelController.php"
click node_teacher_portal "https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Guru"
click node_student_portal "https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Siswa"
click node_guardian_portal "https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/OrangTua"
click node_academic_management "https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Admin"
click node_grading "https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Admin/PenilaianNilaiController.php"
click node_learning_work "https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Guru/TugasController.php"
click node_reports "https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Admin/LaporanController.php"
click node_inertia_ui "https://github.com/4mun4jmudin/siakad/tree/main/resources/js/Pages"

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_web_login,node_student_api_login,node_user_model toneBlue
class node_admin_ops,node_school_records,node_student_management toneAmber
class node_attendance_entry,node_attendance_records,node_subject_attendance,node_attendance_admin toneMint
class node_academic_management,node_grading,node_learning_work toneRose
class node_teacher_portal,node_student_portal,node_guardian_portal,node_reports,node_inertia_ui,node_student,node_teacher,node_guardian,node_admin toneIndigo
```

## Components

### Access and Identity

- [Web Login](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Student API Login](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Api/SiswaAuthController.php): `app/Http/Controllers/Api/SiswaAuthController.php`
- [User Accounts](https://github.com/4mun4jmudin/siakad/blob/main/app/Models/User.php): `app/Models/User.php`

### School Operations

- [Administration](https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Admin): `app/Http/Controllers/Admin`
- [School Records](https://github.com/4mun4jmudin/siakad/tree/main/app/Models): `app/Models`
- [Student Management](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Admin/SiswaController.php): `app/Http/Controllers/Admin/SiswaController.php`

### Attendance

- [Student Attendance](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Siswa/AbsensiController.php): `app/Http/Controllers/Siswa/AbsensiController.php`
- [Attendance Records](https://github.com/4mun4jmudin/siakad/blob/main/app/Models/AbsensiSiswa.php): `app/Models/AbsensiSiswa.php`
- [Subject Attendance](https://github.com/4mun4jmudin/siakad/blob/main/app/Models/AbsensiSiswaMapel.php): `app/Models/AbsensiSiswaMapel.php`
- [Attendance Oversight](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Admin/AbsensiSiswaMapelController.php): `app/Http/Controllers/Admin/AbsensiSiswaMapelController.php`

### Academic Learning

- [Academic Management](https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Admin): `app/Http/Controllers/Admin`
- [Assessment and Grades](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Admin/PenilaianNilaiController.php): `app/Http/Controllers/Admin/PenilaianNilaiController.php`
- [Lessons and Tasks](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Guru/TugasController.php): `app/Http/Controllers/Guru/TugasController.php`

### Role Portals and Reports

- [Teacher Portal](https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Guru): `app/Http/Controllers/Guru`
- [Student Portal](https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/Siswa): `app/Http/Controllers/Siswa`
- [Guardian Portal](https://github.com/4mun4jmudin/siakad/tree/main/app/Http/Controllers/OrangTua): `app/Http/Controllers/OrangTua`
- [Reports and Exports](https://github.com/4mun4jmudin/siakad/blob/main/app/Http/Controllers/Admin/LaporanController.php): `app/Http/Controllers/Admin/LaporanController.php`
- [Role Interfaces](https://github.com/4mun4jmudin/siakad/tree/main/resources/js/Pages): `resources/js/Pages`

### Other components

- **Student**
- **Teacher**
- **Guardian**
- **Administrator**

## Connections

- Student → Student API Login: signs in
- Teacher → Web Login: signs in
- Administrator → Web Login: signs in
- Guardian → Guardian Portal: uses portal
- Web Login → User Accounts: authenticates
- Web Login → Administration: redirects role
- Web Login → Teacher Portal: redirects role
- Student API Login → User Accounts: checks account
- Administration → School Records: manages records
- Administration → Role Interfaces: renders pages
- Student Management → School Records: manages students
- Student Management → Role Interfaces: renders pages
- Student → Student Attendance: submits attendance
- Student Attendance → Attendance Records: reads and writes
- Student Attendance → Subject Attendance: reads records
- Student Attendance → Role Interfaces: renders history
- Attendance Oversight → Subject Attendance: reads records
- Attendance Oversight → School Records: loads schedules
- Teacher → Teacher Portal: uses portal
- Teacher Portal → Role Interfaces: renders pages
- Teacher Portal → Academic Management: manages learning
- Teacher Portal → Assessment and Grades: records grades
- Student → Student Portal: uses portal
- Student Portal → Role Interfaces: renders pages
- Guardian → Guardian Portal: views child data
- Guardian Portal → Role Interfaces: renders pages
- Guardian Portal → School Records: reads student data
- Academic Management → School Records: updates curriculum
- Assessment and Grades → School Records: stores assessments
- Reports and Exports → Attendance Records: summarizes attendance
- Reports and Exports → Role Interfaces: renders reports
