# faisal-9/scdemo architecture

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

- Interactive diagram: https://gitdiagram.com/faisal-9/scdemo
- Repository: https://github.com/faisal-9/scdemo

## Overview

State Corps CMS is a PHP content-management system for a public-facing corporate site, with a permissioned admin area for maintaining site content and operations. The main workflow is an editor entering the admin CMS, where section-specific pages use managers to maintain content in the database; public pages then present that content. The tree also shows contact submissions, media and asset management, analytics, revisions, backups, and system health. Edges are limited to relationships supported by the supplied excerpts or SOURCE INDEX; several public rendering and operational details are unsampled.

Main entry points: [`scadmin`](https://github.com/faisal-9/scdemo/tree/main/scadmin) (Admin content pages), [`app/core/Database.php`](https://github.com/faisal-9/scdemo/blob/main/app/core/Database.php) (MySQL database), [`app/bootstrap.php`](https://github.com/faisal-9/scdemo/blob/main/app/bootstrap.php) (Application bootstrap), [`app/core/HomeManager.php`](https://github.com/faisal-9/scdemo/blob/main/app/core/HomeManager.php) (Homepage content)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Public site"]
  node_public["Public pages<br/>[index.php]"]
  node_contact["Contact submission<br/>[contact_submit.php]"]
end

subgraph group_content["Content management"]
  node_admin_pages["Admin content pages"]
  node_home_content["Homepage content<br/>[HomeManager.php]"]
  node_service_content["Services content<br/>[ServiceManager.php]"]
  node_project_content["Projects content<br/>[ProjectManager.php]"]
  node_navigation["Navigation"]
  node_settings["Site settings"]
  node_media["Media library"]
  node_messages["Contact messages"]
end

subgraph group_admin["Admin operations"]
  node_analytics["Analytics"]
  node_revisions["Revision history"]
  node_backups["Database backups"]
  node_health["System health"]
end

subgraph group_platform["Shared platform"]
  node_auth["Authentication<br/>[Auth.php]"]
  node_bootstrap["Application bootstrap<br/>[bootstrap.php]"]
  node_database[("MySQL database<br/>[Database.php]")]
end

node_visitor(("Site visitor"))
node_cms_user(("CMS editor"))

node_visitor -->|"requests pages"| node_public
node_visitor -->|"submits message"| node_contact
node_cms_user -->|"edits content"| node_admin_pages
node_admin_pages -->|"uses"| node_home_content
node_admin_pages -->|"manages"| node_service_content
node_admin_pages -->|"manages"| node_project_content
node_admin_pages -->|"manages"| node_navigation
node_admin_pages -->|"manages"| node_settings
node_admin_pages -->|"manages"| node_media
node_admin_pages -->|"manages"| node_messages
node_admin_pages -->|"views"| node_analytics
node_admin_pages -->|"views"| node_revisions
node_admin_pages -->|"manages"| node_backups
node_admin_pages -->|"views"| node_health
node_admin_pages -->|"checks access"| node_auth
node_admin_pages -->|"loads"| node_bootstrap
node_bootstrap -->|"loads"| node_auth
node_bootstrap -->|"loads"| node_home_content
node_bootstrap -->|"loads"| node_service_content
node_bootstrap -->|"loads"| node_project_content
node_bootstrap -->|"loads"| node_navigation
node_bootstrap -->|"loads"| node_settings
node_bootstrap -->|"loads"| node_media
node_bootstrap -->|"loads"| node_messages
node_home_content -.->|"reads/writes"| node_database
node_service_content -->|"reads/writes"| node_database
node_project_content -->|"reads/writes"| node_database
node_navigation -->|"reads/writes"| node_database
node_settings -->|"reads/writes"| node_database
node_media -->|"reads/writes"| node_database
node_auth -->|"checks identity"| node_database
node_messages -.->|"reads/writes"| node_database
node_analytics -.->|"reads/writes"| node_database
node_revisions -.->|"reads/writes"| node_database
node_backups -.->|"backs up"| node_database
node_health -->|"checks"| node_database

click node_public "https://github.com/faisal-9/scdemo/blob/main/index.php"
click node_contact "https://github.com/faisal-9/scdemo/blob/main/contact_submit.php"
click node_admin_pages "https://github.com/faisal-9/scdemo/tree/main/scadmin"
click node_home_content "https://github.com/faisal-9/scdemo/blob/main/app/core/HomeManager.php"
click node_service_content "https://github.com/faisal-9/scdemo/blob/main/app/core/ServiceManager.php"
click node_project_content "https://github.com/faisal-9/scdemo/blob/main/app/core/ProjectManager.php"
click node_navigation "https://github.com/faisal-9/scdemo/blob/main/app/core/NavigationManager.php"
click node_settings "https://github.com/faisal-9/scdemo/blob/main/app/core/SiteSettingsManager.php"
click node_media "https://github.com/faisal-9/scdemo/blob/main/app/core/MediaLibraryManager.php"
click node_messages "https://github.com/faisal-9/scdemo/blob/main/app/core/ContactMessageManager.php"
click node_analytics "https://github.com/faisal-9/scdemo/blob/main/app/core/AnalyticsManager.php"
click node_revisions "https://github.com/faisal-9/scdemo/blob/main/app/core/RevisionManager.php"
click node_backups "https://github.com/faisal-9/scdemo/blob/main/app/core/DatabaseBackupManager.php"
click node_health "https://github.com/faisal-9/scdemo/blob/main/app/core/SystemHealthManager.php"
click node_auth "https://github.com/faisal-9/scdemo/blob/main/app/core/Auth.php"
click node_bootstrap "https://github.com/faisal-9/scdemo/blob/main/app/bootstrap.php"
click node_database "https://github.com/faisal-9/scdemo/blob/main/app/core/Database.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_public,node_contact toneBlue
class node_admin_pages,node_home_content,node_service_content,node_project_content,node_navigation,node_settings,node_media,node_messages toneAmber
class node_analytics,node_revisions,node_backups,node_health toneMint
class node_auth,node_bootstrap,node_database toneRose
class node_visitor,node_cms_user toneIndigo
```

## Components

### Public site

- [Public pages](https://github.com/faisal-9/scdemo/blob/main/index.php): `index.php`
- [Contact submission](https://github.com/faisal-9/scdemo/blob/main/contact_submit.php): `contact_submit.php`

### Content management

- [Admin content pages](https://github.com/faisal-9/scdemo/tree/main/scadmin): `scadmin`
- [Homepage content](https://github.com/faisal-9/scdemo/blob/main/app/core/HomeManager.php): `app/core/HomeManager.php`
- [Services content](https://github.com/faisal-9/scdemo/blob/main/app/core/ServiceManager.php): `app/core/ServiceManager.php`
- [Projects content](https://github.com/faisal-9/scdemo/blob/main/app/core/ProjectManager.php): `app/core/ProjectManager.php`
- [Navigation](https://github.com/faisal-9/scdemo/blob/main/app/core/NavigationManager.php): `app/core/NavigationManager.php`
- [Site settings](https://github.com/faisal-9/scdemo/blob/main/app/core/SiteSettingsManager.php): `app/core/SiteSettingsManager.php`
- [Media library](https://github.com/faisal-9/scdemo/blob/main/app/core/MediaLibraryManager.php): `app/core/MediaLibraryManager.php`
- [Contact messages](https://github.com/faisal-9/scdemo/blob/main/app/core/ContactMessageManager.php): `app/core/ContactMessageManager.php`

### Admin operations

- [Analytics](https://github.com/faisal-9/scdemo/blob/main/app/core/AnalyticsManager.php): `app/core/AnalyticsManager.php`
- [Revision history](https://github.com/faisal-9/scdemo/blob/main/app/core/RevisionManager.php): `app/core/RevisionManager.php`
- [Database backups](https://github.com/faisal-9/scdemo/blob/main/app/core/DatabaseBackupManager.php): `app/core/DatabaseBackupManager.php`
- [System health](https://github.com/faisal-9/scdemo/blob/main/app/core/SystemHealthManager.php): `app/core/SystemHealthManager.php`

### Shared platform

- [Authentication](https://github.com/faisal-9/scdemo/blob/main/app/core/Auth.php): `app/core/Auth.php`
- [Application bootstrap](https://github.com/faisal-9/scdemo/blob/main/app/bootstrap.php): `app/bootstrap.php`
- [MySQL database](https://github.com/faisal-9/scdemo/blob/main/app/core/Database.php): `app/core/Database.php`

### Other components

- **Site visitor**
- **CMS editor**

## Connections

- Site visitor → Public pages: requests pages
- Site visitor → Contact submission: submits message
- CMS editor → Admin content pages: edits content
- Admin content pages → Homepage content: uses (evidence: `scadmin/homepage/index.php`)
- Admin content pages → Services content: manages (evidence: `scadmin/services/index.php`)
- Admin content pages → Projects content: manages (evidence: `scadmin/projects/index.php`)
- Admin content pages → Navigation: manages (evidence: `scadmin/navigation/index.php`)
- Admin content pages → Site settings: manages (evidence: `scadmin/header/index.php`)
- Admin content pages → Media library: manages (evidence: `scadmin/assets-library/index.php`)
- Admin content pages → Contact messages: manages (evidence: `scadmin/messages/index.php`)
- Admin content pages → Analytics: views (evidence: `scadmin/analytics/index.php`)
- Admin content pages → Revision history: views (evidence: `scadmin/revisions/index.php`)
- Admin content pages → Database backups: manages (evidence: `scadmin/database-backup/index.php`)
- Admin content pages → System health: views (evidence: `scadmin/system-health/index.php`)
- Admin content pages → Authentication: checks access (evidence: `scadmin/homepage/index.php`)
- Admin content pages → Application bootstrap: loads (evidence: `scadmin/homepage/index.php`)
- Application bootstrap → Authentication: loads (evidence: `app/bootstrap.php`)
- Application bootstrap → Homepage content: loads (evidence: `app/bootstrap.php`)
- Application bootstrap → Services content: loads (evidence: `app/bootstrap.php`)
- Application bootstrap → Projects content: loads (evidence: `app/bootstrap.php`)
- Application bootstrap → Navigation: loads (evidence: `app/bootstrap.php`)
- Application bootstrap → Site settings: loads (evidence: `app/bootstrap.php`)
- Application bootstrap → Media library: loads (evidence: `app/bootstrap.php`)
- Application bootstrap → Contact messages: loads (evidence: `app/bootstrap.php`)
- Homepage content → MySQL database: reads/writes
- Services content → MySQL database: reads/writes (evidence: `app/core/ServiceManager.php`)
- Projects content → MySQL database: reads/writes (evidence: `app/core/ProjectManager.php`)
- Navigation → MySQL database: reads/writes (evidence: `app/core/NavigationManager.php`)
- Site settings → MySQL database: reads/writes (evidence: `app/core/SiteSettingsManager.php`)
- Media library → MySQL database: reads/writes (evidence: `app/core/MediaLibraryManager.php`)
- Authentication → MySQL database: checks identity (evidence: `app/core/Auth.php`)
- Contact messages → MySQL database: reads/writes
- Analytics → MySQL database: reads/writes
- Revision history → MySQL database: reads/writes
- Database backups → MySQL database: backs up
- System health → MySQL database: checks (evidence: `app/core/SystemHealthManager.php`)
