# arya141002/sistem-amaliyah-ramadhan-book architecture

> Architecture diagram of the GitHub repository arya141002/sistem-amaliyah-ramadhan-book, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/arya141002/sistem-amaliyah-ramadhan-book
- Repository: https://github.com/arya141002/sistem-amaliyah-ramadhan-book

## Overview

This is a school-management application with role-based administration and a Ramadan amaliah activity-tracking workflow. Users enter through routed web requests; the routes dispatch role-specific controllers, which present views and work with domain models. The sampled amaliah controller specifically loads students, active calendar dates, dynamic form elements, and saved form records, and saves submitted form data. README describes only the CodeIgniter starter, so product capabilities are inferred from the application tree and route excerpt; unsampled controller and model internals limit the detail of some connections.

Main entry points: [`app/Config/Routes.php`](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Config/Routes.php) (Route map), [`app/Controllers/AmaliahController.php`](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Controllers/AmaliahController.php) (Activity forms), [`app/Models`](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Models) (School models), [`app/Config/Database.php`](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Config/Database.php) (Application database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_routes["Route map<br/>[Routes.php]"]
  node_auth["Authentication<br/>[Auth.php]"]
  node_authfilter["Role access filter<br/>[Auth.php]"]
end

subgraph group_admin["School administration"]
  node_adminctrl["Admin operations"]
  node_teacherctrl["Teacher operations"]
  node_schoolctrl["School admin"]
  node_adminviews["Admin screens"]
  node_teacherviews["Teacher screens"]
  node_schoolviews["School screens"]
end

subgraph group_activity["Amaliah tracking"]
  node_amaliahctrl["Activity forms"]
  node_formbuilder["Form builder"]
  node_activityviews["Activity screens<br/>[amaliah_form.php]"]
end

subgraph group_data["Domain data"]
  node_studentmodel["Student records<br/>[Siswa.php]"]
  node_calendarmodel["Ramadan calendar<br/>[Kalender.php]"]
  node_activitymodels["Activity records<br/>[AmaliahRecord.php]"]
  node_domainmodels["School models"]
  node_database[("Application database<br/>[Database.php]")]
end

node_user(("Web user"))

node_user -->|"sends request"| node_routes
node_routes -->|"dispatches login"| node_auth
node_routes -->|"dispatches admin"| node_adminctrl
node_routes -->|"dispatches teacher"| node_teacherctrl
node_routes -->|"dispatches school admin"| node_schoolctrl
node_routes -->|"dispatches activity"| node_amaliahctrl
node_routes -->|"applies role filter"| node_authfilter
node_adminctrl -->|"renders screens"| node_adminviews
node_teacherctrl -->|"renders screens"| node_teacherviews
node_schoolctrl -->|"renders screens"| node_schoolviews
node_amaliahctrl -->|"renders form"| node_activityviews
node_amaliahctrl -->|"loads student"| node_studentmodel
node_amaliahctrl -->|"loads dates"| node_calendarmodel
node_amaliahctrl -->|"loads and saves records"| node_activitymodels
node_adminctrl -->|"uses domain data"| node_domainmodels
node_teacherctrl -->|"uses domain data"| node_domainmodels
node_schoolctrl -->|"uses domain data"| node_domainmodels
node_formbuilder -->|"supports form editing"| node_activityviews
node_studentmodel -->|"reads records"| node_database
node_calendarmodel -->|"reads records"| node_database
node_activitymodels -->|"reads and writes"| node_database
node_domainmodels -->|"accesses records"| node_database

click node_routes "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Config/Routes.php"
click node_auth "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Controllers/Auth.php"
click node_authfilter "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Filters/Auth.php"
click node_adminctrl "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Controllers/Admin"
click node_teacherctrl "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Controllers/Guru"
click node_schoolctrl "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Controllers/SchoolAdmin"
click node_adminviews "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Views/user"
click node_teacherviews "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Views/guru"
click node_schoolviews "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Views/schooladmin"
click node_amaliahctrl "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Controllers/AmaliahController.php"
click node_formbuilder "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Controllers/Admin/AmaliahFormBuilder.php"
click node_activityviews "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Views/amaliah_form.php"
click node_studentmodel "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Models/Siswa.php"
click node_calendarmodel "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Models/Kalender.php"
click node_activitymodels "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Models/AmaliahRecord.php"
click node_domainmodels "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Models"
click node_database "https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Config/Database.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_routes,node_auth,node_authfilter,node_user toneBlue
class node_adminctrl,node_teacherctrl,node_schoolctrl,node_adminviews,node_teacherviews,node_schoolviews toneAmber
class node_amaliahctrl,node_formbuilder,node_activityviews toneMint
class node_studentmodel,node_calendarmodel,node_activitymodels,node_domainmodels,node_database toneRose
```

## Components

### Web entry

- [Route map](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Config/Routes.php): `app/Config/Routes.php`
- [Authentication](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Controllers/Auth.php): `app/Controllers/Auth.php`
- [Role access filter](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Filters/Auth.php): `app/Filters/Auth.php`

### School administration

- [Admin operations](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Controllers/Admin): `app/Controllers/Admin`
- [Teacher operations](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Controllers/Guru): `app/Controllers/Guru`
- [School admin](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Controllers/SchoolAdmin): `app/Controllers/SchoolAdmin`
- [Admin screens](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Views/user): `app/Views/user`
- [Teacher screens](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Views/guru): `app/Views/guru`
- [School screens](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Views/schooladmin): `app/Views/schooladmin`

### Amaliah tracking

- [Activity forms](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Controllers/AmaliahController.php): `app/Controllers/AmaliahController.php`
- [Form builder](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Controllers/Admin/AmaliahFormBuilder.php): `app/Controllers/Admin/AmaliahFormBuilder.php`
- [Activity screens](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Views/amaliah_form.php): `app/Views/amaliah_form.php`

### Domain data

- [Student records](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Models/Siswa.php): `app/Models/Siswa.php`
- [Ramadan calendar](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Models/Kalender.php): `app/Models/Kalender.php`
- [Activity records](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Models/AmaliahRecord.php): `app/Models/AmaliahRecord.php`
- [School models](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/tree/master/app/Models): `app/Models`
- [Application database](https://github.com/arya141002/sistem-amaliyah-ramadhan-book/blob/master/app/Config/Database.php): `app/Config/Database.php`

### Other components

- **Web user**

## Connections

- Web user → Route map: sends request
- Route map → Authentication: dispatches login
- Route map → Admin operations: dispatches admin
- Route map → Teacher operations: dispatches teacher
- Route map → School admin: dispatches school admin
- Route map → Activity forms: dispatches activity
- Route map → Role access filter: applies role filter
- Admin operations → Admin screens: renders screens
- Teacher operations → Teacher screens: renders screens
- School admin → School screens: renders screens
- Activity forms → Activity screens: renders form
- Activity forms → Student records: loads student
- Activity forms → Ramadan calendar: loads dates
- Activity forms → Activity records: loads and saves records
- Admin operations → School models: uses domain data
- Teacher operations → School models: uses domain data
- School admin → School models: uses domain data
- Form builder → Activity screens: supports form editing
- Student records → Application database: reads records
- Ramadan calendar → Application database: reads records
- Activity records → Application database: reads and writes
- School models → Application database: accesses records
