# cliffamadeus/it34-boilerplate architecture

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

- Interactive diagram: https://gitdiagram.com/cliffamadeus/it34-boilerplate
- Repository: https://github.com/cliffamadeus/it34-boilerplate

## Overview

This is a small PHP role-based login and session-tracking application. A user submits credentials at the login page; authentication checks credentials and active sessions, establishes a PHP/database session, logs activity, and routes by role. Admins can inspect activity logs and user sessions and export either as CSV; manager and user destinations are minimal welcome pages. The sampled files show the main calls and database queries; the SQL schema is present in the tree, but its contents were not sampled.

Main entry points: [`index.php`](https://github.com/cliffamadeus/it34-boilerplate/blob/main/index.php) (Login Page), [`app/admin/index.php`](https://github.com/cliffamadeus/it34-boilerplate/blob/main/app/admin/index.php) (Admin Dashboard), [`auth/signout.php`](https://github.com/cliffamadeus/it34-boilerplate/blob/main/auth/signout.php) (Sign Out), [`functions/activity.php`](https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/activity.php) (Activity Logging)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and Roles"]
  node_login["Login Page<br/>[index.php]"]
  node_configuration["App Configuration<br/>[config.php]"]
  node_authentication["Authentication<br/>[auth.php]"]
  node_csrf["CSRF Protection<br/>[csrf.php]"]
  node_manager_page["Manager Page<br/>[index.php]"]
  node_user_page["User Page<br/>[index.php]"]
  node_signout["Sign Out<br/>[signout.php]"]
end

subgraph group_tracking["Session and Activity"]
  node_session_lifecycle["Session Lifecycle<br/>[session.php]"]
  node_activity_logging["Activity Logging<br/>[activity.php]"]
  node_database[("Application Database")]
end

subgraph group_admin["Admin Reporting"]
  node_admin_dashboard["Admin Dashboard<br/>[index.php]"]
  node_csv_export["CSV Export<br/>[csv.php]"]
end

node_visitor(("Visitor"))

node_visitor -.->|"submits credentials"| node_login
node_login -->|"loads configuration"| node_configuration
node_login -->|"validates token"| node_csrf
node_login -->|"authenticates user"| node_authentication
node_login -->|"logs attempts"| node_activity_logging
node_login -->|"routes by role"| node_admin_dashboard
node_login -->|"routes by role"| node_manager_page
node_login -->|"routes by role"| node_user_page
node_authentication -->|"checks and starts"| node_session_lifecycle
node_session_lifecycle -->|"reads and writes"| node_database
node_activity_logging -->|"writes activity"| node_database
node_admin_dashboard -->|"loads configuration"| node_configuration
node_admin_dashboard -->|"requires admin role"| node_authentication
node_admin_dashboard -->|"queries reports"| node_database
node_admin_dashboard -->|"logs exports"| node_activity_logging
node_admin_dashboard -->|"exports report rows"| node_csv_export
node_signout -->|"loads configuration"| node_configuration
node_signout -->|"validates token"| node_csrf
node_signout -->|"logs logout"| node_activity_logging
node_signout -->|"ends database session"| node_session_lifecycle

click node_login "https://github.com/cliffamadeus/it34-boilerplate/blob/main/index.php"
click node_configuration "https://github.com/cliffamadeus/it34-boilerplate/blob/main/config/config.php"
click node_authentication "https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/auth.php"
click node_csrf "https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/csrf.php"
click node_admin_dashboard "https://github.com/cliffamadeus/it34-boilerplate/blob/main/app/admin/index.php"
click node_manager_page "https://github.com/cliffamadeus/it34-boilerplate/blob/main/app/manager/index.php"
click node_user_page "https://github.com/cliffamadeus/it34-boilerplate/blob/main/app/user/index.php"
click node_signout "https://github.com/cliffamadeus/it34-boilerplate/blob/main/auth/signout.php"
click node_session_lifecycle "https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/session.php"
click node_activity_logging "https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/activity.php"
click node_csv_export "https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/csv.php"
click node_database "https://github.com/cliffamadeus/it34-boilerplate/blob/main/database/001_initial_schema.sql"

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_login,node_configuration,node_authentication,node_csrf,node_manager_page,node_user_page,node_signout toneBlue
class node_session_lifecycle,node_activity_logging,node_database toneAmber
class node_admin_dashboard,node_csv_export toneMint
class node_visitor toneIndigo
```

## Components

### Access and Roles

- [Login Page](https://github.com/cliffamadeus/it34-boilerplate/blob/main/index.php): `index.php`
- [App Configuration](https://github.com/cliffamadeus/it34-boilerplate/blob/main/config/config.php): `config/config.php`
- [Authentication](https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/auth.php): `functions/auth.php`
- [CSRF Protection](https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/csrf.php): `functions/csrf.php`
- [Manager Page](https://github.com/cliffamadeus/it34-boilerplate/blob/main/app/manager/index.php): `app/manager/index.php`
- [User Page](https://github.com/cliffamadeus/it34-boilerplate/blob/main/app/user/index.php): `app/user/index.php`
- [Sign Out](https://github.com/cliffamadeus/it34-boilerplate/blob/main/auth/signout.php): `auth/signout.php`

### Session and Activity

- [Session Lifecycle](https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/session.php): `functions/session.php`
- [Activity Logging](https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/activity.php): `functions/activity.php`
- [Application Database](https://github.com/cliffamadeus/it34-boilerplate/blob/main/database/001_initial_schema.sql): `database/001_initial_schema.sql`

### Admin Reporting

- [Admin Dashboard](https://github.com/cliffamadeus/it34-boilerplate/blob/main/app/admin/index.php): `app/admin/index.php`
- [CSV Export](https://github.com/cliffamadeus/it34-boilerplate/blob/main/functions/csv.php): `functions/csv.php`

### Other components

- **Visitor**

## Connections

- Visitor → Login Page: submits credentials
- Login Page → App Configuration: loads configuration (evidence: `index.php`)
- Login Page → CSRF Protection: validates token (evidence: `index.php`)
- Login Page → Authentication: authenticates user (evidence: `index.php`)
- Login Page → Activity Logging: logs attempts (evidence: `index.php`)
- Login Page → Admin Dashboard: routes by role (evidence: `index.php`)
- Login Page → Manager Page: routes by role (evidence: `index.php`)
- Login Page → User Page: routes by role (evidence: `index.php`)
- Authentication → Session Lifecycle: checks and starts (evidence: `functions/auth.php`)
- Session Lifecycle → Application Database: reads and writes (evidence: `functions/session.php`)
- Activity Logging → Application Database: writes activity (evidence: `functions/activity.php`)
- Admin Dashboard → App Configuration: loads configuration (evidence: `app/admin/index.php`)
- Admin Dashboard → Authentication: requires admin role (evidence: `app/admin/index.php`)
- Admin Dashboard → Application Database: queries reports (evidence: `app/admin/index.php`)
- Admin Dashboard → Activity Logging: logs exports (evidence: `app/admin/index.php`)
- Admin Dashboard → CSV Export: exports report rows (evidence: `app/admin/index.php`)
- Sign Out → App Configuration: loads configuration (evidence: `auth/signout.php`)
- Sign Out → CSRF Protection: validates token (evidence: `auth/signout.php`)
- Sign Out → Activity Logging: logs logout (evidence: `auth/signout.php`)
- Sign Out → Session Lifecycle: ends database session (evidence: `auth/signout.php`)
