# agusdhermawan/sso architecture

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

## Overview

CodeIgniter is a PHP web application framework; this repository also includes an application scaffold with authentication, user, admin, and menu areas. The main workflow is an HTTP request routed to a controller, which loads models or libraries and renders a view. The tree and excerpts support the framework’s routing, controller, query-builder, and database-session roles, while many other library capabilities are evident from filenames rather than sampled implementation. The graph keeps those capabilities visible without asserting their internal wiring.

Main entry points: [`system/core/Router.php`](https://github.com/agusdhermawan/sso/blob/main/system/core/Router.php) (URI router), [`application/controllers/Auth.php`](https://github.com/agusdhermawan/sso/blob/main/application/controllers/Auth.php) (Authentication), [`system/core/Controller.php`](https://github.com/agusdhermawan/sso/blob/main/system/core/Controller.php) (Controller base), [`application/controllers/Menu.php`](https://github.com/agusdhermawan/sso/blob/main/application/controllers/Menu.php) (Menu management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Request runtime"]
  node_front["Front controller<br/>[index.php]"]
  node_router["URI router<br/>[Router.php]"]
  node_controller_base["Controller base<br/>[Controller.php]"]
  node_loader["Resource loader<br/>[Loader.php]"]
end

subgraph group_application["Application MVC"]
  node_auth["Authentication<br/>[Auth.php]"]
  node_users["User management<br/>[User.php]"]
  node_admin["Admin and roles<br/>[Admin.php]"]
  node_menus["Menu management<br/>[Menu.php]"]
  node_menu_model["Menu model<br/>[Menu_model.php]"]
  node_views["Application views"]
end

subgraph group_data["Data and state"]
  node_db_config["Database config<br/>[database.php]"]
  node_query_builder["Query builder"]
  node_db_connection["Database drivers<br/>[mysqli_driver.php]"]
  node_db_store[("SQL database")]
  node_sessions["Session storage"]
  node_cache["Caching<br/>[Cache.php]"]
end

subgraph group_libraries["Framework libraries"]
  node_form_validation["Form validation"]
  node_email["Email<br/>[Email.php]"]
  node_upload_image["Upload and images<br/>[Upload.php]"]
  node_pagination["Pagination<br/>[Pagination.php]"]
  node_cart["Shopping cart<br/>[Cart.php]"]
  node_javascript["JavaScript helpers<br/>[Javascript.php]"]
end

node_visitor(("Web user"))

node_visitor -->|"sends request"| node_front
node_front -->|"starts routing"| node_router
node_router -->|"default route"| node_auth
node_router -->|"dispatches route"| node_users
node_router -->|"dispatches route"| node_admin
node_router -->|"dispatches route"| node_menus
node_auth -->|"extends"| node_controller_base
node_users -->|"extends"| node_controller_base
node_admin -->|"extends"| node_controller_base
node_menus -->|"extends"| node_controller_base
node_controller_base -->|"initializes"| node_loader
node_auth -->|"renders"| node_views
node_users -->|"renders"| node_views
node_admin -->|"renders"| node_views
node_menus -->|"loads model"| node_menu_model
node_menus -->|"renders"| node_views
node_db_config -->|"configures"| node_db_connection
node_query_builder -->|"executes queries"| node_db_connection
node_db_connection -->|"reads and writes"| node_db_store
node_sessions -->|"uses"| node_query_builder
node_sessions -->|"stores sessions"| node_db_store
node_cache -.-> node_db_store
node_auth -.->|"uses"| node_form_validation
node_auth -.->|"uses"| node_sessions

click node_front "https://github.com/agusdhermawan/sso/blob/main/index.php"
click node_router "https://github.com/agusdhermawan/sso/blob/main/system/core/Router.php"
click node_controller_base "https://github.com/agusdhermawan/sso/blob/main/system/core/Controller.php"
click node_loader "https://github.com/agusdhermawan/sso/blob/main/system/core/Loader.php"
click node_auth "https://github.com/agusdhermawan/sso/blob/main/application/controllers/Auth.php"
click node_users "https://github.com/agusdhermawan/sso/blob/main/application/controllers/User.php"
click node_admin "https://github.com/agusdhermawan/sso/blob/main/application/controllers/Admin.php"
click node_menus "https://github.com/agusdhermawan/sso/blob/main/application/controllers/Menu.php"
click node_menu_model "https://github.com/agusdhermawan/sso/blob/main/application/models/Menu_model.php"
click node_views "https://github.com/agusdhermawan/sso/tree/main/application/views"
click node_db_config "https://github.com/agusdhermawan/sso/blob/main/application/config/database.php"
click node_query_builder "https://github.com/agusdhermawan/sso/blob/main/system/database/DB_query_builder.php"
click node_db_connection "https://github.com/agusdhermawan/sso/blob/main/system/database/drivers/mysqli/mysqli_driver.php"
click node_sessions "https://github.com/agusdhermawan/sso/blob/main/system/libraries/Session/drivers/Session_database_driver.php"
click node_cache "https://github.com/agusdhermawan/sso/blob/main/system/libraries/Cache/Cache.php"
click node_form_validation "https://github.com/agusdhermawan/sso/blob/main/system/libraries/Form_validation.php"
click node_email "https://github.com/agusdhermawan/sso/blob/main/system/libraries/Email.php"
click node_upload_image "https://github.com/agusdhermawan/sso/blob/main/system/libraries/Upload.php"
click node_pagination "https://github.com/agusdhermawan/sso/blob/main/system/libraries/Pagination.php"
click node_cart "https://github.com/agusdhermawan/sso/blob/main/system/libraries/Cart.php"
click node_javascript "https://github.com/agusdhermawan/sso/blob/main/system/libraries/Javascript.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_front,node_router,node_controller_base,node_loader,node_visitor toneBlue
class node_auth,node_users,node_admin,node_menus,node_menu_model,node_views toneAmber
class node_db_config,node_query_builder,node_db_connection,node_db_store,node_sessions,node_cache toneMint
class node_form_validation,node_email,node_upload_image,node_pagination,node_cart,node_javascript toneRose
```

## Components

### Request runtime

- [Front controller](https://github.com/agusdhermawan/sso/blob/main/index.php): `index.php`
- [URI router](https://github.com/agusdhermawan/sso/blob/main/system/core/Router.php): `system/core/Router.php`
- [Controller base](https://github.com/agusdhermawan/sso/blob/main/system/core/Controller.php): `system/core/Controller.php`
- [Resource loader](https://github.com/agusdhermawan/sso/blob/main/system/core/Loader.php): `system/core/Loader.php`

### Application MVC

- [Authentication](https://github.com/agusdhermawan/sso/blob/main/application/controllers/Auth.php): `application/controllers/Auth.php`
- [User management](https://github.com/agusdhermawan/sso/blob/main/application/controllers/User.php): `application/controllers/User.php`
- [Admin and roles](https://github.com/agusdhermawan/sso/blob/main/application/controllers/Admin.php): `application/controllers/Admin.php`
- [Menu management](https://github.com/agusdhermawan/sso/blob/main/application/controllers/Menu.php): `application/controllers/Menu.php`
- [Menu model](https://github.com/agusdhermawan/sso/blob/main/application/models/Menu_model.php): `application/models/Menu_model.php`
- [Application views](https://github.com/agusdhermawan/sso/tree/main/application/views): `application/views`

### Data and state

- [Database config](https://github.com/agusdhermawan/sso/blob/main/application/config/database.php): `application/config/database.php`
- [Query builder](https://github.com/agusdhermawan/sso/blob/main/system/database/DB_query_builder.php): `system/database/DB_query_builder.php`
- [Database drivers](https://github.com/agusdhermawan/sso/blob/main/system/database/drivers/mysqli/mysqli_driver.php): `system/database/drivers/mysqli/mysqli_driver.php`
- **SQL database**
- [Session storage](https://github.com/agusdhermawan/sso/blob/main/system/libraries/Session/drivers/Session_database_driver.php): `system/libraries/Session/drivers/Session_database_driver.php`
- [Caching](https://github.com/agusdhermawan/sso/blob/main/system/libraries/Cache/Cache.php): `system/libraries/Cache/Cache.php`

### Framework libraries

- [Form validation](https://github.com/agusdhermawan/sso/blob/main/system/libraries/Form_validation.php): `system/libraries/Form_validation.php`
- [Email](https://github.com/agusdhermawan/sso/blob/main/system/libraries/Email.php): `system/libraries/Email.php`
- [Upload and images](https://github.com/agusdhermawan/sso/blob/main/system/libraries/Upload.php): `system/libraries/Upload.php`
- [Pagination](https://github.com/agusdhermawan/sso/blob/main/system/libraries/Pagination.php): `system/libraries/Pagination.php`
- [Shopping cart](https://github.com/agusdhermawan/sso/blob/main/system/libraries/Cart.php): `system/libraries/Cart.php`
- [JavaScript helpers](https://github.com/agusdhermawan/sso/blob/main/system/libraries/Javascript.php): `system/libraries/Javascript.php`

### Other components

- **Web user**

## Connections

- Web user → Front controller: sends request
- Front controller → URI router: starts routing
- URI router → Authentication: default route
- URI router → User management: dispatches route
- URI router → Admin and roles: dispatches route
- URI router → Menu management: dispatches route
- Authentication → Controller base: extends
- User management → Controller base: extends
- Admin and roles → Controller base: extends
- Menu management → Controller base: extends
- Controller base → Resource loader: initializes
- Authentication → Application views: renders
- User management → Application views: renders
- Admin and roles → Application views: renders
- Menu management → Menu model: loads model
- Menu management → Application views: renders
- Database config → Database drivers: configures
- Query builder → Database drivers: executes queries
- Database drivers → SQL database: reads and writes
- Session storage → Query builder: uses
- Session storage → SQL database: stores sessions
- Caching → SQL database
- Authentication → Form validation: uses
- Authentication → Session storage: uses
