# hperez30/ciscocms architecture

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

- Interactive diagram: https://gitdiagram.com/hperez30/ciscocms
- Repository: https://github.com/hperez30/ciscocms

## Overview

Cisco CMS is a PHP web application for querying and managing Cisco CMS video-conferencing users and coSpaces through a REST API. A browser request enters through the front controller, is routed to a controller, and produces a page or JSON response; login establishes a session that protects the management controllers. The main domain branches cover CMS-user listing and lookup, coSpace listing, creation, editing and deletion, and a versions/about page. API calls and session handling are visible in sampled source; some controller and view details are only represented by the repository tree and source index.

Main entry points: [`app/controllers/Cospaces.php`](https://github.com/hperez30/ciscocms/blob/main/app/controllers/Cospaces.php) (CoSpace controller), [`app/libs/Core.php`](https://github.com/hperez30/ciscocms/blob/main/app/libs/Core.php) (Router), [`app/controllers/Users.php`](https://github.com/hperez30/ciscocms/blob/main/app/controllers/Users.php) (Login controller), [`app/controllers/Cmsusers.php`](https://github.com/hperez30/ciscocms/blob/main/app/controllers/Cmsusers.php) (CMS-user controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Request runtime"]
  node_front["Front controller<br/>[index.php]"]
  node_bootstrap["Bootstrap<br/>[bootstrap.php]"]
  node_config["App configuration<br/>[config.php]"]
  node_router["Router<br/>[Core.php]"]
  node_base["MVC base<br/>[Controller.php]"]
  node_urlhelper["URL helper<br/>[url_helper.php]"]
  node_session["Session helper<br/>[session_helper.php]"]
  node_versions["Versions page<br/>[Versions.php]"]
  node_versionview["About view<br/>[about.php]"]
end

subgraph group_accounts["Accounts"]
  node_login["Login controller<br/>[Users.php]"]
  node_loginmodel["Login model<br/>[User.php]"]
  node_cmsusers["CMS-user controller<br/>[Cmsusers.php]"]
  node_cmsusermodel["CMS-user API model<br/>[Cmsuser.php]"]
  node_userpages["User views"]
  node_loginpage["Login view<br/>[login.php]"]
end

subgraph group_cospaces["CoSpaces"]
  node_cospacecontroller["CoSpace controller<br/>[Cospaces.php]"]
  node_cospaceapi["CoSpace API model<br/>[Cospace.php]"]
  node_cospacepages["CoSpace views"]
end

node_browser(("Browser"))
node_cmsapi{{"Cisco CMS REST API"}}

node_browser -->|"requests"| node_front
node_front -->|"loads"| node_bootstrap
node_bootstrap -->|"loads"| node_config
node_bootstrap -->|"loads"| node_urlhelper
node_bootstrap -->|"loads"| node_session
node_front -->|"starts"| node_router
node_router -->|"dispatches"| node_cospacecontroller
node_router -->|"dispatches"| node_login
node_router -->|"dispatches"| node_cmsusers
node_router -->|"dispatches"| node_versions
node_login -->|"extends"| node_base
node_cmsusers -->|"extends"| node_base
node_cospacecontroller -->|"extends"| node_base
node_versions -->|"extends"| node_base
node_login -->|"authenticates via"| node_loginmodel
node_loginmodel -->|"queries users"| node_cmsapi
node_login -->|"sets session"| node_session
node_login -->|"renders"| node_loginpage
node_cmsusers -.->|"checks login"| node_session
node_cospacecontroller -->|"checks login"| node_session
node_cmsusers -->|"calls"| node_cmsusermodel
node_cmsusermodel -->|"queries users"| node_cmsapi
node_cmsusers -->|"renders"| node_userpages
node_cospacecontroller -->|"calls"| node_cospaceapi
node_cospaceapi -->|"queries coSpaces"| node_cmsapi
node_cospacecontroller -->|"loads users"| node_cmsusermodel
node_cospacecontroller -->|"renders"| node_cospacepages
node_versions -.->|"renders"| node_versionview

click node_front "https://github.com/hperez30/ciscocms/blob/main/public_html/index.php"
click node_bootstrap "https://github.com/hperez30/ciscocms/blob/main/app/bootstrap.php"
click node_config "https://github.com/hperez30/ciscocms/blob/main/app/config/config.php"
click node_router "https://github.com/hperez30/ciscocms/blob/main/app/libs/Core.php"
click node_base "https://github.com/hperez30/ciscocms/blob/main/app/libs/Controller.php"
click node_urlhelper "https://github.com/hperez30/ciscocms/blob/main/app/helpers/url_helper.php"
click node_session "https://github.com/hperez30/ciscocms/blob/main/app/helpers/session_helper.php"
click node_login "https://github.com/hperez30/ciscocms/blob/main/app/controllers/Users.php"
click node_loginmodel "https://github.com/hperez30/ciscocms/blob/main/app/models/User.php"
click node_cmsusers "https://github.com/hperez30/ciscocms/blob/main/app/controllers/Cmsusers.php"
click node_cmsusermodel "https://github.com/hperez30/ciscocms/blob/main/app/models/Cmsuser.php"
click node_userpages "https://github.com/hperez30/ciscocms/tree/main/app/views/cmsusers"
click node_loginpage "https://github.com/hperez30/ciscocms/blob/main/app/views/users/login.php"
click node_cospacecontroller "https://github.com/hperez30/ciscocms/blob/main/app/controllers/Cospaces.php"
click node_cospaceapi "https://github.com/hperez30/ciscocms/blob/main/app/models/Cospace.php"
click node_cospacepages "https://github.com/hperez30/ciscocms/tree/main/app/views/cospaces"
click node_versions "https://github.com/hperez30/ciscocms/blob/main/app/controllers/Versions.php"
click node_versionview "https://github.com/hperez30/ciscocms/blob/main/app/views/versions/about.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_bootstrap,node_config,node_router,node_base,node_urlhelper,node_session,node_versions,node_versionview,node_browser toneBlue
class node_login,node_loginmodel,node_cmsusers,node_cmsusermodel,node_userpages,node_loginpage toneAmber
class node_cospacecontroller,node_cospaceapi,node_cospacepages,node_cmsapi toneMint
```

## Components

### Request runtime

- [Front controller](https://github.com/hperez30/ciscocms/blob/main/public_html/index.php): `public_html/index.php`
- [Bootstrap](https://github.com/hperez30/ciscocms/blob/main/app/bootstrap.php): `app/bootstrap.php`
- [App configuration](https://github.com/hperez30/ciscocms/blob/main/app/config/config.php): `app/config/config.php`
- [Router](https://github.com/hperez30/ciscocms/blob/main/app/libs/Core.php): `app/libs/Core.php`
- [MVC base](https://github.com/hperez30/ciscocms/blob/main/app/libs/Controller.php): `app/libs/Controller.php`
- [URL helper](https://github.com/hperez30/ciscocms/blob/main/app/helpers/url_helper.php): `app/helpers/url_helper.php`
- [Session helper](https://github.com/hperez30/ciscocms/blob/main/app/helpers/session_helper.php): `app/helpers/session_helper.php`
- [Versions page](https://github.com/hperez30/ciscocms/blob/main/app/controllers/Versions.php): `app/controllers/Versions.php`
- [About view](https://github.com/hperez30/ciscocms/blob/main/app/views/versions/about.php): `app/views/versions/about.php`

### Accounts

- [Login controller](https://github.com/hperez30/ciscocms/blob/main/app/controllers/Users.php): `app/controllers/Users.php`
- [Login model](https://github.com/hperez30/ciscocms/blob/main/app/models/User.php): `app/models/User.php`
- [CMS-user controller](https://github.com/hperez30/ciscocms/blob/main/app/controllers/Cmsusers.php): `app/controllers/Cmsusers.php`
- [CMS-user API model](https://github.com/hperez30/ciscocms/blob/main/app/models/Cmsuser.php): `app/models/Cmsuser.php`
- [User views](https://github.com/hperez30/ciscocms/tree/main/app/views/cmsusers): `app/views/cmsusers`
- [Login view](https://github.com/hperez30/ciscocms/blob/main/app/views/users/login.php): `app/views/users/login.php`

### CoSpaces

- [CoSpace controller](https://github.com/hperez30/ciscocms/blob/main/app/controllers/Cospaces.php): `app/controllers/Cospaces.php`
- [CoSpace API model](https://github.com/hperez30/ciscocms/blob/main/app/models/Cospace.php): `app/models/Cospace.php`
- [CoSpace views](https://github.com/hperez30/ciscocms/tree/main/app/views/cospaces): `app/views/cospaces`

### Other components

- **Browser**
- **Cisco CMS REST API**

## Connections

- Browser → Front controller: requests (evidence: `public_html/index.php`)
- Front controller → Bootstrap: loads (evidence: `public_html/index.php`)
- Bootstrap → App configuration: loads (evidence: `app/bootstrap.php`)
- Bootstrap → URL helper: loads (evidence: `app/bootstrap.php`)
- Bootstrap → Session helper: loads (evidence: `app/bootstrap.php`)
- Front controller → Router: starts (evidence: `public_html/index.php`)
- Router → CoSpace controller: dispatches (evidence: `app/libs/Core.php`)
- Router → Login controller: dispatches (evidence: `app/libs/Core.php`)
- Router → CMS-user controller: dispatches (evidence: `app/libs/Core.php`)
- Router → Versions page: dispatches (evidence: `app/libs/Core.php`)
- Login controller → MVC base: extends (evidence: `app/controllers/Users.php`)
- CMS-user controller → MVC base: extends (evidence: `app/controllers/Cmsusers.php`)
- CoSpace controller → MVC base: extends (evidence: `app/controllers/Cospaces.php`)
- Versions page → MVC base: extends (evidence: `app/controllers/Versions.php`)
- Login controller → Login model: authenticates via (evidence: `app/controllers/Users.php`)
- Login model → Cisco CMS REST API: queries users (evidence: `app/models/User.php`)
- Login controller → Session helper: sets session (evidence: `app/controllers/Users.php`)
- Login controller → Login view: renders (evidence: `app/controllers/Users.php`)
- CMS-user controller → Session helper: checks login (evidence: `app/controllers/Cmsusers.php`)
- CoSpace controller → Session helper: checks login (evidence: `app/controllers/Cospaces.php`)
- CMS-user controller → CMS-user API model: calls (evidence: `app/controllers/Cmsusers.php`)
- CMS-user API model → Cisco CMS REST API: queries users (evidence: `app/models/Cmsuser.php`)
- CMS-user controller → User views: renders (evidence: `app/controllers/Cmsusers.php`)
- CoSpace controller → CoSpace API model: calls (evidence: `app/controllers/Cospaces.php`)
- CoSpace API model → Cisco CMS REST API: queries coSpaces (evidence: `app/models/Cospace.php`)
- CoSpace controller → CMS-user API model: loads users (evidence: `app/controllers/Cospaces.php`)
- CoSpace controller → CoSpace views: renders (evidence: `app/controllers/Cospaces.php`)
- Versions page → About view: renders
