# onesys-prime-dev/akademus-sis architecture

> Architecture diagram of the GitHub repository onesys-prime-dev/akademus-sis, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/onesys-prime-dev/akademus-sis
- Repository: https://github.com/onesys-prime-dev/akademus-sis

## Overview

This is a CodeIgniter student information system, despite the starter-app README. Its principal workflow is students viewing and managing enrollment, grades, schedules, documents, and tuition, with faculty and academic staff supporting scheduling, approvals, and records administration. Finance handles assessments and payments; registrar and administrative functions cover student records and academic setup. The graph groups these capabilities around the web routes, domain services, and persistence layer. Evidence is limited to the README, tree, and sampled source/index; some feature relationships are therefore omitted rather than inferred.

Main entry points: [`app/Models/StudentModel.php`](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/StudentModel.php) (Student records), [`app/Config/Routes.php`](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Config/Routes.php) (Web routes), [`app/Services/TuitionAssessmentService.php`](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Services/TuitionAssessmentService.php) (Tuition assessment), [`app/Controllers/Registrar/StudentProgressController.php`](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/Registrar/StudentProgressController.php) (Registrar progress)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry and access"]
  node_routes["Web routes<br/>[Routes.php]"]
  node_base["Controller base<br/>[BaseController.php]"]
end

subgraph group_academic["Academic operations"]
  node_chair["Chairperson operations"]
  node_faculty["Faculty grading"]
  node_registrar["Registrar progress"]
  node_coverage["Shared subject coverage"]
  node_curriculum["Term curriculum<br/>[TermCurriculum.php]"]
end

subgraph group_student["Student services"]
  node_student_api["Admissions student API"]
  node_enrollment["Enrollment eligibility"]
  node_student_record["Student records<br/>[StudentModel.php]"]
end

subgraph group_finance["Finance operations"]
  node_additional_fees["Additional fee management"]
  node_tuition["Tuition assessment"]
end

subgraph group_data["Domain and persistence"]
  node_academic_year["Academic term"]
  node_college["College and program data<br/>[CollegeModel.php]"]
  node_audit["Audit logging<br/>[AuditLogModel.php]"]
  node_notifications["Notifications"]
  node_database[("Application database")]
end

node_users(("Students and staff"))

node_users -->|"requests pages"| node_routes
node_routes -->|"routes requests"| node_chair
node_routes -->|"routes requests"| node_faculty
node_routes -->|"routes requests"| node_registrar
node_routes -->|"routes requests"| node_additional_fees
node_chair -->|"extends"| node_base
node_faculty -->|"extends"| node_base
node_registrar -->|"extends"| node_base
node_registrar -->|"uses term"| node_academic_year
node_registrar -->|"uses student data"| node_student_record
node_chair -->|"uses coverage service"| node_coverage
node_coverage -->|"queries term"| node_academic_year
node_coverage -->|"queries programs"| node_college
node_student_api -->|"uses student model"| node_student_record
node_student_record -->|"recomputes assessment"| node_tuition
node_enrollment -->|"assesses tuition"| node_tuition
node_additional_fees -->|"assesses fees"| node_tuition
node_tuition -->|"reads term"| node_academic_year
node_student_record -->|"notifies admins"| node_notifications
node_additional_fees -->|"loads student"| node_student_record
node_curriculum -->|"queries college data"| node_college
node_academic_year -->|"reads and writes terms"| node_database
node_college -->|"queries records"| node_database
node_student_record -->|"queries records"| node_database
node_tuition -->|"writes assessments"| node_database
node_audit -->|"persists audit logs"| node_database
node_notifications -->|"persists notifications"| node_database

click node_routes "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Config/Routes.php"
click node_base "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/BaseController.php"
click node_chair "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/ChairpersonController.php"
click node_faculty "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/Faculty/GradingController.php"
click node_registrar "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/Registrar/StudentProgressController.php"
click node_coverage "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Libraries/SharedSubjectCoverageService.php"
click node_curriculum "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Libraries/TermCurriculum.php"
click node_student_api "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/API/StudentAPIController.php"
click node_enrollment "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/EnrollmentModel.php"
click node_student_record "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/StudentModel.php"
click node_additional_fees "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/Finance/AdditionalFeeController.php"
click node_tuition "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Services/TuitionAssessmentService.php"
click node_academic_year "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/AcademicYearModel.php"
click node_college "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/CollegeModel.php"
click node_audit "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/AuditLogModel.php"
click node_notifications "https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/NotificationModel.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_base toneBlue
class node_chair,node_faculty,node_registrar,node_coverage,node_curriculum toneAmber
class node_student_api,node_enrollment,node_student_record toneMint
class node_additional_fees,node_tuition toneRose
class node_academic_year,node_college,node_audit,node_notifications,node_database,node_users toneIndigo
```

## Components

### Web entry and access

- [Web routes](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Config/Routes.php): `app/Config/Routes.php`
- [Controller base](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/BaseController.php): `app/Controllers/BaseController.php`

### Academic operations

- [Chairperson operations](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/ChairpersonController.php): `app/Controllers/ChairpersonController.php`
- [Faculty grading](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/Faculty/GradingController.php): `app/Controllers/Faculty/GradingController.php`
- [Registrar progress](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/Registrar/StudentProgressController.php): `app/Controllers/Registrar/StudentProgressController.php`
- [Shared subject coverage](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Libraries/SharedSubjectCoverageService.php): `app/Libraries/SharedSubjectCoverageService.php`
- [Term curriculum](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Libraries/TermCurriculum.php): `app/Libraries/TermCurriculum.php`

### Student services

- [Admissions student API](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/API/StudentAPIController.php): `app/Controllers/API/StudentAPIController.php`
- [Enrollment eligibility](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/EnrollmentModel.php): `app/Models/EnrollmentModel.php`
- [Student records](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/StudentModel.php): `app/Models/StudentModel.php`

### Finance operations

- [Additional fee management](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Controllers/Finance/AdditionalFeeController.php): `app/Controllers/Finance/AdditionalFeeController.php`
- [Tuition assessment](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Services/TuitionAssessmentService.php): `app/Services/TuitionAssessmentService.php`

### Domain and persistence

- [Academic term](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/AcademicYearModel.php): `app/Models/AcademicYearModel.php`
- [College and program data](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/CollegeModel.php): `app/Models/CollegeModel.php`
- [Audit logging](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/AuditLogModel.php): `app/Models/AuditLogModel.php`
- [Notifications](https://github.com/onesys-prime-dev/akademus-sis/blob/main/app/Models/NotificationModel.php): `app/Models/NotificationModel.php`
- **Application database**

### Other components

- **Students and staff**

## Connections

- Students and staff → Web routes: requests pages (evidence: `app/Config/Routes.php`)
- Web routes → Chairperson operations: routes requests (evidence: `app/Config/Routes.php`)
- Web routes → Faculty grading: routes requests (evidence: `app/Config/Routes.php`)
- Web routes → Registrar progress: routes requests (evidence: `app/Config/Routes.php`)
- Web routes → Additional fee management: routes requests (evidence: `app/Config/Routes.php`)
- Chairperson operations → Controller base: extends (evidence: `app/Controllers/ChairpersonController.php`)
- Faculty grading → Controller base: extends (evidence: `app/Controllers/Faculty/GradingController.php`)
- Registrar progress → Controller base: extends (evidence: `app/Controllers/Registrar/StudentProgressController.php`)
- Registrar progress → Academic term: uses term (evidence: `app/Controllers/Registrar/StudentProgressController.php`)
- Registrar progress → Student records: uses student data (evidence: `app/Controllers/Registrar/StudentProgressController.php`)
- Chairperson operations → Shared subject coverage: uses coverage service
- Shared subject coverage → Academic term: queries term (evidence: `app/Libraries/SharedSubjectCoverageService.php`)
- Shared subject coverage → College and program data: queries programs (evidence: `app/Libraries/SharedSubjectCoverageService.php`)
- Admissions student API → Student records: uses student model (evidence: `app/Controllers/API/StudentAPIController.php`)
- Student records → Tuition assessment: recomputes assessment (evidence: `app/Models/StudentModel.php`)
- Enrollment eligibility → Tuition assessment: assesses tuition (evidence: `app/Models/EnrollmentModel.php`)
- Additional fee management → Tuition assessment: assesses fees (evidence: `app/Controllers/Finance/AdditionalFeeController.php`)
- Tuition assessment → Academic term: reads term (evidence: `app/Services/TuitionAssessmentService.php`)
- Student records → Notifications: notifies admins (evidence: `app/Models/StudentModel.php`)
- Additional fee management → Student records: loads student (evidence: `app/Controllers/Finance/AdditionalFeeController.php`)
- Term curriculum → College and program data: queries college data (evidence: `app/Libraries/TermCurriculum.php`)
- Academic term → Application database: reads and writes terms (evidence: `app/Models/AcademicYearModel.php`)
- College and program data → Application database: queries records (evidence: `app/Models/CollegeModel.php`)
- Student records → Application database: queries records (evidence: `app/Models/StudentModel.php`)
- Tuition assessment → Application database: writes assessments (evidence: `app/Services/TuitionAssessmentService.php`)
- Audit logging → Application database: persists audit logs (evidence: `app/Models/AuditLogModel.php`)
- Notifications → Application database: persists notifications (evidence: `app/Models/NotificationModel.php`)
