# ab0213ab/contentmanager architecture

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

- Interactive diagram: https://gitdiagram.com/ab0213ab/contentmanager
- Repository: https://github.com/ab0213ab/contentmanager

## Overview

ContentManager is a ColdBox/CFML web application for managing company, employee, and user records in a Microsoft SQL Server database. The principal workflow is a user submitting a CRUD request, which the MVC handler delegates through a service and gateway before rendering a view. The README also documents login, validation, security interceptors, session management, user privileges, and soft deletion. Those capabilities are represented where the tree supports them; handler and service source was not sampled, so detailed call wiring is based on the documented MVC layers.

Main entry points: [`handlers/Company.cfc`](https://github.com/ab0213ab/contentmanager/blob/master/handlers/Company.cfc) (Company handler), [`handlers/Employee.cfc`](https://github.com/ab0213ab/contentmanager/blob/master/handlers/Employee.cfc) (Employee handler), [`handlers/User.cfc`](https://github.com/ab0213ab/contentmanager/blob/master/handlers/User.cfc) (User handler), [`handlers/Main.cfc`](https://github.com/ab0213ab/contentmanager/blob/master/handlers/Main.cfc) (Main handler)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mvc["MVC interface"]
  node_company_handler["Company handler<br/>[Company.cfc]"]
  node_employee_handler["Employee handler<br/>[Employee.cfc]"]
  node_user_handler["User handler<br/>[User.cfc]"]
  node_main_handler["Main handler<br/>[Main.cfc]"]
  node_company_views["Company views"]
  node_employee_views["Employee views"]
  node_user_views["User views"]
  node_main_views["Main views"]
end

subgraph group_business["Business logic"]
  node_company_service["Company service<br/>[CompanyService.cfc]"]
  node_employee_service["Employee service"]
  node_user_service["User service<br/>[UserService.cfc]"]
  node_company_domain["Company domain<br/>[Company.cfc]"]
  node_employee_domain["Employee domain<br/>[Employee.cfc]"]
  node_user_domain["User domain<br/>[User.cfc]"]
end

subgraph group_persistence["Data persistence"]
  node_company_gateway["Company gateway<br/>[CompanyGateway.cfc]"]
  node_employee_gateway["Employee gateway"]
  node_user_gateway["User gateway<br/>[UserGateway.cfc]"]
end

subgraph group_security["Security and validation"]
  node_security_interceptor["Security interceptor"]
  node_form_validation["Form validation"]
end

node_operator(("Application user"))
node_sql_server[("SQL Server")]

node_operator -->|"submits CRUD"| node_company_handler
node_operator -->|"submits CRUD"| node_employee_handler
node_operator -->|"submits CRUD"| node_user_handler
node_operator -->|"requests login"| node_main_handler
node_company_handler -->|"delegates CRUD"| node_company_service
node_employee_handler -->|"delegates CRUD"| node_employee_service
node_user_handler -->|"delegates CRUD"| node_user_service
node_company_service -->|"uses gateway"| node_company_gateway
node_employee_service -->|"uses gateway"| node_employee_gateway
node_user_service -->|"uses gateway"| node_user_gateway
node_company_gateway -->|"queries records"| node_sql_server
node_employee_gateway -->|"queries records"| node_sql_server
node_user_gateway -->|"queries records"| node_sql_server
node_company_handler -->|"renders views"| node_company_views
node_employee_handler -->|"renders views"| node_employee_views
node_user_handler -->|"renders views"| node_user_views
node_main_handler -->|"renders views"| node_main_views
node_company_views -->|"shows results"| node_operator
node_employee_views -->|"shows results"| node_operator
node_user_views -->|"shows results"| node_operator
node_main_views -->|"shows login"| node_operator

click node_company_handler "https://github.com/ab0213ab/contentmanager/blob/master/handlers/Company.cfc"
click node_employee_handler "https://github.com/ab0213ab/contentmanager/blob/master/handlers/Employee.cfc"
click node_user_handler "https://github.com/ab0213ab/contentmanager/blob/master/handlers/User.cfc"
click node_main_handler "https://github.com/ab0213ab/contentmanager/blob/master/handlers/Main.cfc"
click node_company_views "https://github.com/ab0213ab/contentmanager/tree/master/views/company"
click node_employee_views "https://github.com/ab0213ab/contentmanager/tree/master/views/employee"
click node_user_views "https://github.com/ab0213ab/contentmanager/tree/master/views/user"
click node_main_views "https://github.com/ab0213ab/contentmanager/tree/master/views/main"
click node_company_service "https://github.com/ab0213ab/contentmanager/blob/master/models/services/CompanyService.cfc"
click node_employee_service "https://github.com/ab0213ab/contentmanager/blob/master/models/services/EmployeeService.cfc"
click node_user_service "https://github.com/ab0213ab/contentmanager/blob/master/models/services/UserService.cfc"
click node_company_domain "https://github.com/ab0213ab/contentmanager/blob/master/models/domains/Company.cfc"
click node_employee_domain "https://github.com/ab0213ab/contentmanager/blob/master/models/domains/Employee.cfc"
click node_user_domain "https://github.com/ab0213ab/contentmanager/blob/master/models/domains/User.cfc"
click node_company_gateway "https://github.com/ab0213ab/contentmanager/blob/master/models/gateways/CompanyGateway.cfc"
click node_employee_gateway "https://github.com/ab0213ab/contentmanager/blob/master/models/gateways/EmployeeGateway.cfc"
click node_user_gateway "https://github.com/ab0213ab/contentmanager/blob/master/models/gateways/UserGateway.cfc"
click node_security_interceptor "https://github.com/ab0213ab/contentmanager/blob/master/interceptors/SecurityInterceptor.cfc"
click node_form_validation "https://github.com/ab0213ab/contentmanager/tree/master/includes/js"

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_company_handler,node_employee_handler,node_user_handler,node_main_handler,node_company_views,node_employee_views,node_user_views,node_main_views,node_operator toneBlue
class node_company_service,node_employee_service,node_user_service,node_company_domain,node_employee_domain,node_user_domain,node_sql_server toneAmber
class node_company_gateway,node_employee_gateway,node_user_gateway toneMint
class node_security_interceptor,node_form_validation toneRose
```

## Components

### MVC interface

- [Company handler](https://github.com/ab0213ab/contentmanager/blob/master/handlers/Company.cfc): `handlers/Company.cfc`
- [Employee handler](https://github.com/ab0213ab/contentmanager/blob/master/handlers/Employee.cfc): `handlers/Employee.cfc`
- [User handler](https://github.com/ab0213ab/contentmanager/blob/master/handlers/User.cfc): `handlers/User.cfc`
- [Main handler](https://github.com/ab0213ab/contentmanager/blob/master/handlers/Main.cfc): `handlers/Main.cfc`
- [Company views](https://github.com/ab0213ab/contentmanager/tree/master/views/company): `views/company`
- [Employee views](https://github.com/ab0213ab/contentmanager/tree/master/views/employee): `views/employee`
- [User views](https://github.com/ab0213ab/contentmanager/tree/master/views/user): `views/user`
- [Main views](https://github.com/ab0213ab/contentmanager/tree/master/views/main): `views/main`

### Business logic

- [Company service](https://github.com/ab0213ab/contentmanager/blob/master/models/services/CompanyService.cfc): `models/services/CompanyService.cfc`
- [Employee service](https://github.com/ab0213ab/contentmanager/blob/master/models/services/EmployeeService.cfc): `models/services/EmployeeService.cfc`
- [User service](https://github.com/ab0213ab/contentmanager/blob/master/models/services/UserService.cfc): `models/services/UserService.cfc`
- [Company domain](https://github.com/ab0213ab/contentmanager/blob/master/models/domains/Company.cfc): `models/domains/Company.cfc`
- [Employee domain](https://github.com/ab0213ab/contentmanager/blob/master/models/domains/Employee.cfc): `models/domains/Employee.cfc`
- [User domain](https://github.com/ab0213ab/contentmanager/blob/master/models/domains/User.cfc): `models/domains/User.cfc`

### Data persistence

- [Company gateway](https://github.com/ab0213ab/contentmanager/blob/master/models/gateways/CompanyGateway.cfc): `models/gateways/CompanyGateway.cfc`
- [Employee gateway](https://github.com/ab0213ab/contentmanager/blob/master/models/gateways/EmployeeGateway.cfc): `models/gateways/EmployeeGateway.cfc`
- [User gateway](https://github.com/ab0213ab/contentmanager/blob/master/models/gateways/UserGateway.cfc): `models/gateways/UserGateway.cfc`

### Security and validation

- [Security interceptor](https://github.com/ab0213ab/contentmanager/blob/master/interceptors/SecurityInterceptor.cfc): `interceptors/SecurityInterceptor.cfc`
- [Form validation](https://github.com/ab0213ab/contentmanager/tree/master/includes/js): `includes/js`

### Other components

- **Application user**
- **SQL Server**

## Connections

- Application user → Company handler: submits CRUD
- Application user → Employee handler: submits CRUD
- Application user → User handler: submits CRUD
- Application user → Main handler: requests login
- Company handler → Company service: delegates CRUD
- Employee handler → Employee service: delegates CRUD
- User handler → User service: delegates CRUD
- Company service → Company gateway: uses gateway
- Employee service → Employee gateway: uses gateway
- User service → User gateway: uses gateway
- Company gateway → SQL Server: queries records
- Employee gateway → SQL Server: queries records
- User gateway → SQL Server: queries records
- Company handler → Company views: renders views
- Employee handler → Employee views: renders views
- User handler → User views: renders views
- Main handler → Main views: renders views
- Company views → Application user: shows results
- Employee views → Application user: shows results
- User views → Application user: shows results
- Main views → Application user: shows login
