# amanprojects-ops/smartschool-portal architecture

> Architecture diagram of the GitHub repository amanprojects-ops/smartschool-portal, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/amanprojects-ops/smartschool-portal
- Repository: https://github.com/amanprojects-ops/smartschool-portal

## Overview

SmartSchool Portal is a school-management web portal with a companion Android app. The documented workflow is role-based users accessing school and academic functions, with records and results presented through the portal or mobile client. The README identifies administration, attendance, exams and grading, notices, performance, events, and chat as major capabilities. The tree supports corresponding controller, model, and view areas, but sampled application source does not establish their detailed call wiring; those links are therefore kept broad. The graph also shows the documented mobile/API boundary and configured CodeIgniter entry path.

Main entry points: [`application/controllers/Admin.php`](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Admin.php) (Admin console), [`application/models`](https://github.com/amanprojects-ops/smartschool-portal/tree/main/application/models) (Domain models), [`index.php`](https://github.com/amanprojects-ops/smartschool-portal/blob/main/index.php) (Web entry), [`application/controllers/Api.php`](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Api.php) (Portal API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_web_entry["Web entry<br/>[index.php]"]
  node_admin["Admin console<br/>[Admin.php]"]
  node_school_admin["School setup<br/>[School.php]"]
  node_views["Portal views"]
end

subgraph group_academic["Academic records"]
  node_standards["Classes and standards<br/>[Standard.php]"]
  node_students["Student records<br/>[Student.php]"]
  node_teachers["Teacher records<br/>[Teacher.php]"]
  node_attendance["Attendance<br/>[Attendence.php]"]
  node_exams["Exams and grading<br/>[Exam.php]"]
  node_results["Exam results<br/>[Examresult.php]"]
  node_growth["Performance tracking<br/>[Growth.php]"]
  node_top_students["Top performers<br/>[Topstudent.php]"]
end

subgraph group_communication["School communication"]
  node_events_holidays["Events and holidays<br/>[Event.php]"]
  node_notices["Noticeboard<br/>[Noticeboard.php]"]
  node_chat["Live chat<br/>[Chat.php]"]
end

subgraph group_mobile["Mobile client"]
  node_api["Portal API<br/>[Api.php]"]
  node_android_app["Android client"]
  node_push_service["Push registration"]
end

subgraph group_platform["Framework and data"]
  node_ci_runtime["CodeIgniter runtime<br/>[CodeIgniter.php]"]
  node_routing["Route config<br/>[routes.php]"]
  node_models["Domain models"]
  node_database[("Configured database<br/>[database.php]")]
end

node_browser_user(("Portal user"))
node_android_user(("App user"))
node_gcm{{"Google messaging"}}

node_browser_user -->|"requests portal"| node_web_entry
node_web_entry -->|"starts runtime"| node_ci_runtime
node_ci_runtime -->|"loads routes"| node_routing
node_routing -->|"defaults to"| node_admin
node_admin -->|"renders screens"| node_views
node_admin -->|"uses domain data"| node_models
node_models -->|"reads and writes"| node_database
node_android_user -->|"uses app"| node_android_app
node_android_app -->|"requests portal data"| node_api
node_api -->|"uses domain data"| node_models
node_push_service -.->|"registers token"| node_gcm

click node_web_entry "https://github.com/amanprojects-ops/smartschool-portal/blob/main/index.php"
click node_ci_runtime "https://github.com/amanprojects-ops/smartschool-portal/blob/main/system/core/CodeIgniter.php"
click node_routing "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/config/routes.php"
click node_admin "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Admin.php"
click node_school_admin "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/School.php"
click node_standards "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Standard.php"
click node_students "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Student.php"
click node_teachers "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Teacher.php"
click node_attendance "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Attendence.php"
click node_exams "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Exam.php"
click node_results "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Examresult.php"
click node_growth "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Growth.php"
click node_top_students "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Topstudent.php"
click node_events_holidays "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Event.php"
click node_notices "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Noticeboard.php"
click node_chat "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Chat.php"
click node_api "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Api.php"
click node_models "https://github.com/amanprojects-ops/smartschool-portal/tree/main/application/models"
click node_views "https://github.com/amanprojects-ops/smartschool-portal/tree/main/application/views"
click node_database "https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/config/database.php"
click node_android_app "https://github.com/amanprojects-ops/smartschool-portal/tree/main/mobile-app/app/src/main/java/com/education"
click node_push_service "https://github.com/amanprojects-ops/smartschool-portal/blob/main/mobile-app/app/src/main/java/gcm/RegistrationIntentService.java"

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_entry,node_admin,node_school_admin,node_views,node_browser_user,node_android_user toneBlue
class node_standards,node_students,node_teachers,node_attendance,node_exams,node_results,node_growth,node_top_students toneAmber
class node_events_holidays,node_notices,node_chat toneMint
class node_api,node_android_app,node_push_service toneRose
class node_ci_runtime,node_routing,node_models,node_database,node_gcm toneIndigo
```

## Components

### Web application

- [Web entry](https://github.com/amanprojects-ops/smartschool-portal/blob/main/index.php): `index.php`
- [Admin console](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Admin.php): `application/controllers/Admin.php`
- [School setup](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/School.php): `application/controllers/School.php`
- [Portal views](https://github.com/amanprojects-ops/smartschool-portal/tree/main/application/views): `application/views`

### Academic records

- [Classes and standards](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Standard.php): `application/controllers/Standard.php`
- [Student records](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Student.php): `application/controllers/Student.php`
- [Teacher records](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Teacher.php): `application/controllers/Teacher.php`
- [Attendance](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Attendence.php): `application/controllers/Attendence.php`
- [Exams and grading](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Exam.php): `application/controllers/Exam.php`
- [Exam results](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Examresult.php): `application/controllers/Examresult.php`
- [Performance tracking](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Growth.php): `application/controllers/Growth.php`
- [Top performers](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Topstudent.php): `application/controllers/Topstudent.php`

### School communication

- [Events and holidays](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Event.php): `application/controllers/Event.php`
- [Noticeboard](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Noticeboard.php): `application/controllers/Noticeboard.php`
- [Live chat](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Chat.php): `application/controllers/Chat.php`

### Mobile client

- [Portal API](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/controllers/Api.php): `application/controllers/Api.php`
- [Android client](https://github.com/amanprojects-ops/smartschool-portal/tree/main/mobile-app/app/src/main/java/com/education): `mobile-app/app/src/main/java/com/education`
- [Push registration](https://github.com/amanprojects-ops/smartschool-portal/blob/main/mobile-app/app/src/main/java/gcm/RegistrationIntentService.java): `mobile-app/app/src/main/java/gcm/RegistrationIntentService.java`

### Framework and data

- [CodeIgniter runtime](https://github.com/amanprojects-ops/smartschool-portal/blob/main/system/core/CodeIgniter.php): `system/core/CodeIgniter.php`
- [Route config](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/config/routes.php): `application/config/routes.php`
- [Domain models](https://github.com/amanprojects-ops/smartschool-portal/tree/main/application/models): `application/models`
- [Configured database](https://github.com/amanprojects-ops/smartschool-portal/blob/main/application/config/database.php): `application/config/database.php`

### Other components

- **Portal user**
- **App user**
- **Google messaging**

## Connections

- Portal user → Web entry: requests portal
- Web entry → CodeIgniter runtime: starts runtime
- CodeIgniter runtime → Route config: loads routes
- Route config → Admin console: defaults to
- Admin console → Portal views: renders screens
- Admin console → Domain models: uses domain data
- Domain models → Configured database: reads and writes
- App user → Android client: uses app
- Android client → Portal API: requests portal data
- Portal API → Domain models: uses domain data
- Push registration → Google messaging: registers token
