# samuelmeyersanger/sias architecture

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

## Overview

SIAS Akademik is a web-based school operations platform. Its principal workflow runs from staff or public users submitting operational data, through domain controllers and service-layer logic, to school records and user-facing outputs such as reports, spreadsheets, and PDFs. Distinct workflows include admissions, student and academic management, assessment/report cards, and supporting school services. The README documents additional capabilities not represented in sampled excerpts; their exact internal wiring is therefore not asserted here.

Main entry points: [`app/Http/Controllers/Ppdb/PpdbAdminController.php`](https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/Ppdb/PpdbAdminController.php) (Admissions review), [`app/Http/Controllers/Rapor`](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Rapor) (Assessment & report cards), [`app/Services/Ppdb`](https://github.com/samuelmeyersanger/sias/tree/main/app/Services/Ppdb) (Registration & migration), [`app/Http/Controllers/Master`](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Master) (Users & school setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Platform Core"]
  node_app["Dashboard &amp; access"]
  node_master["Users &amp; school setup"]
  node_master_services["Master services"]
  node_db[("PostgreSQL records")]
end

subgraph group_admissions["Admissions"]
  node_ppdb_public["Public applications"]
  node_ppdb_admin["Admissions review"]
  node_ppdb_services["Registration &amp; migration"]
end

subgraph group_academics["Academic Records"]
  node_student_ops["Student &amp; class records"]
  node_academic_ops["Schedules &amp; calendar"]
  node_rapor["Assessment &amp; report cards"]
  node_rapor_service["Report generation"]
end

subgraph group_operations["School Operations"]
  node_personnel["Staff management"]
  node_counseling["Counseling &amp; observation"]
  node_observation["Teacher observation"]
  node_library["Library circulation"]
  node_facilities["Facilities &amp; inventory"]
  node_letters["Digital correspondence"]
  node_queue["Service queue"]
  node_chat["Internal chat<br/>[ChatController.php]"]
end

subgraph group_public["Public Services"]
  node_public_site["Public site &amp; OPAC"]
  node_downloads["Reports &amp; downloads"]
  node_export["Spreadsheet &amp; PDF output"]
end

node_staff(("School staff"))
node_community(("Students &amp; public"))

node_staff -->|"accesses"| node_app
node_community -->|"applies"| node_ppdb_public
node_community -->|"browses"| node_public_site
node_staff -->|"administers"| node_master
node_master -->|"delegates"| node_master_services
node_master_services -->|"reads/writes"| node_db
node_ppdb_public -->|"submits registration"| node_ppdb_services
node_ppdb_services -->|"records applicants"| node_db
node_staff -->|"reviews applicants"| node_ppdb_admin
node_ppdb_admin -->|"reads/writes"| node_db
node_ppdb_admin -->|"migrates accepted"| node_ppdb_services
node_staff -->|"manages students"| node_student_ops
node_student_ops -->|"reads/writes"| node_db
node_staff -->|"maintains schedule"| node_academic_ops
node_academic_ops -->|"reads/writes"| node_db
node_staff -->|"enters assessment"| node_rapor
node_rapor -->|"requests generation"| node_rapor_service
node_rapor_service -->|"reads records"| node_db
node_rapor -->|"generates reports"| node_export
node_staff -->|"manages personnel"| node_personnel
node_personnel -->|"reads/writes"| node_db
node_staff -->|"records counseling"| node_counseling
node_counseling -->|"reads/writes"| node_db
node_staff -->|"records observations"| node_observation
node_observation -->|"reads/writes"| node_db
node_staff -->|"manages circulation"| node_library
node_library -->|"reads/writes"| node_db
node_staff -->|"manages assets"| node_facilities
node_facilities -->|"reads/writes"| node_db
node_staff -->|"processes correspondence"| node_letters
node_letters -->|"reads/writes"| node_db
node_staff -->|"serves queue"| node_queue
node_queue -->|"reads/writes"| node_db
node_staff -->|"communicates"| node_chat
node_chat -->|"stores messages"| node_db
node_public_site -->|"reads public content"| node_db
node_staff -->|"requests exports"| node_downloads
node_downloads -->|"creates files"| node_export

click node_app "https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/DashboardController.php"
click node_master "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Master"
click node_master_services "https://github.com/samuelmeyersanger/sias/tree/main/app/Services/Master"
click node_ppdb_public "https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/Publik/PpdbPublikController.php"
click node_ppdb_admin "https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/Ppdb/PpdbAdminController.php"
click node_ppdb_services "https://github.com/samuelmeyersanger/sias/tree/main/app/Services/Ppdb"
click node_student_ops "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Kesiswaan"
click node_academic_ops "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Akademik"
click node_rapor "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Rapor"
click node_rapor_service "https://github.com/samuelmeyersanger/sias/tree/main/app/Services/Rapor"
click node_personnel "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Kepegawaian"
click node_counseling "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/BK"
click node_observation "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/ObservasiGuru"
click node_library "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Perpustakaan"
click node_facilities "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Sarpras"
click node_letters "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Surat"
click node_queue "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Antrian"
click node_chat "https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/ChatController.php"
click node_public_site "https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Publik"
click node_downloads "https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/PusatDownloadController.php"
click node_export "https://github.com/samuelmeyersanger/sias/tree/main/app/Exports"

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_app,node_master,node_master_services,node_db toneBlue
class node_ppdb_public,node_ppdb_admin,node_ppdb_services toneAmber
class node_student_ops,node_academic_ops,node_rapor,node_rapor_service toneMint
class node_personnel,node_counseling,node_observation,node_library,node_facilities,node_letters,node_queue,node_chat toneRose
class node_public_site,node_downloads,node_export,node_staff,node_community toneIndigo
```

## Components

### Platform Core

- [Dashboard & access](https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/DashboardController.php): `app/Http/Controllers/DashboardController.php`
- [Users & school setup](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Master): `app/Http/Controllers/Master`
- [Master services](https://github.com/samuelmeyersanger/sias/tree/main/app/Services/Master): `app/Services/Master`
- **PostgreSQL records**

### Admissions

- [Public applications](https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/Publik/PpdbPublikController.php): `app/Http/Controllers/Publik/PpdbPublikController.php`
- [Admissions review](https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/Ppdb/PpdbAdminController.php): `app/Http/Controllers/Ppdb/PpdbAdminController.php`
- [Registration & migration](https://github.com/samuelmeyersanger/sias/tree/main/app/Services/Ppdb): `app/Services/Ppdb`

### Academic Records

- [Student & class records](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Kesiswaan): `app/Http/Controllers/Kesiswaan`
- [Schedules & calendar](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Akademik): `app/Http/Controllers/Akademik`
- [Assessment & report cards](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Rapor): `app/Http/Controllers/Rapor`
- [Report generation](https://github.com/samuelmeyersanger/sias/tree/main/app/Services/Rapor): `app/Services/Rapor`

### School Operations

- [Staff management](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Kepegawaian): `app/Http/Controllers/Kepegawaian`
- [Counseling & observation](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/BK): `app/Http/Controllers/BK`
- [Teacher observation](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/ObservasiGuru): `app/Http/Controllers/ObservasiGuru`
- [Library circulation](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Perpustakaan): `app/Http/Controllers/Perpustakaan`
- [Facilities & inventory](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Sarpras): `app/Http/Controllers/Sarpras`
- [Digital correspondence](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Surat): `app/Http/Controllers/Surat`
- [Service queue](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Antrian): `app/Http/Controllers/Antrian`
- [Internal chat](https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/ChatController.php): `app/Http/Controllers/ChatController.php`

### Public Services

- [Public site & OPAC](https://github.com/samuelmeyersanger/sias/tree/main/app/Http/Controllers/Publik): `app/Http/Controllers/Publik`
- [Reports & downloads](https://github.com/samuelmeyersanger/sias/blob/main/app/Http/Controllers/PusatDownloadController.php): `app/Http/Controllers/PusatDownloadController.php`
- [Spreadsheet & PDF output](https://github.com/samuelmeyersanger/sias/tree/main/app/Exports): `app/Exports`

### Other components

- **School staff**
- **Students & public**

## Connections

- School staff → Dashboard & access: accesses
- Students & public → Public applications: applies
- Students & public → Public site & OPAC: browses
- School staff → Users & school setup: administers
- Users & school setup → Master services: delegates
- Master services → PostgreSQL records: reads/writes
- Public applications → Registration & migration: submits registration
- Registration & migration → PostgreSQL records: records applicants
- School staff → Admissions review: reviews applicants
- Admissions review → PostgreSQL records: reads/writes
- Admissions review → Registration & migration: migrates accepted
- School staff → Student & class records: manages students
- Student & class records → PostgreSQL records: reads/writes
- School staff → Schedules & calendar: maintains schedule
- Schedules & calendar → PostgreSQL records: reads/writes
- School staff → Assessment & report cards: enters assessment
- Assessment & report cards → Report generation: requests generation
- Report generation → PostgreSQL records: reads records
- Assessment & report cards → Spreadsheet & PDF output: generates reports
- School staff → Staff management: manages personnel
- Staff management → PostgreSQL records: reads/writes
- School staff → Counseling & observation: records counseling
- Counseling & observation → PostgreSQL records: reads/writes
- School staff → Teacher observation: records observations
- Teacher observation → PostgreSQL records: reads/writes
- School staff → Library circulation: manages circulation
- Library circulation → PostgreSQL records: reads/writes
- School staff → Facilities & inventory: manages assets
- Facilities & inventory → PostgreSQL records: reads/writes
- School staff → Digital correspondence: processes correspondence
- Digital correspondence → PostgreSQL records: reads/writes
- School staff → Service queue: serves queue
- Service queue → PostgreSQL records: reads/writes
- School staff → Internal chat: communicates
- Internal chat → PostgreSQL records: stores messages
- Public site & OPAC → PostgreSQL records: reads public content
- School staff → Reports & downloads: requests exports
- Reports & downloads → Spreadsheet & PDF output: creates files
