# amen-progcorps/rms-cspc architecture

> Architecture diagram of the GitHub repository amen-progcorps/rms-cspc, 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/amen-progcorps/rms-cspc
- Repository: https://github.com/amen-progcorps/rms-cspc

## Overview

RMS-CSPC is a Laravel records-management application with document tracking, records disposition, document control, portal access, and administrative capabilities. Users enter through the web application and its routes; module-specific workflows handle records, files, tracking, or reports, with PostgreSQL and configured file storage supporting persistence. Chatify provides a separate real-time messaging capability. The excerpts show selected DCS storage and stamping behavior and chat internals; other module links are limited to README descriptions and source-index references, so uncertain connections are omitted.

Main entry points: [`records-management-system/routes/web.php`](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/routes/web.php) (Web routes), [`records-management-system/app/Services/DocumentStorageService.php`](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/DocumentStorageService.php) (Document storage), [`records-management-system/resources/views/pages/dcs/logic/register-query.blade.php`](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/resources/views/pages/dcs/logic/register-query.blade.php) (Register queries), [`records-management-system/public/chatify/core/Database.php`](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/public/chatify/core/Database.php) (Chat database access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web access"]
  node_web["Web routes<br/>[web.php]"]
  node_identity["User identity<br/>[User.php]"]
end

subgraph group_dcs["Document control"]
  node_dcsregister["Register queries"]
  node_dcsstamp["Document stamping<br/>[StampService.php]"]
  node_dcsstore["Document storage"]
  node_dcsnotify["DCS notifications"]
  node_intake["Office intake"]
end

subgraph group_dts["Document tracking"]
  node_dts["Document tracking"]
  node_dtsexport["DTS exports"]
end

subgraph group_rdp["Records disposition"]
  node_rdp["Disposition records"]
  node_rdpintake["RDP intake"]
end

subgraph group_platform["Shared services"]
  node_admin["Administration"]
  node_profile["Profile and alerts"]
  node_chat["Chat services"]
  node_globalchat["Global chat"]
  node_chatdb["Chat database access<br/>[Database.php]"]
  node_db[("PostgreSQL")]
  node_google[("Google Drive")]
end

node_user(("Staff user"))

node_user -->|"uses"| node_web
node_web -->|"routes to"| node_dcsregister
node_web -->|"routes to"| node_dcsstamp
node_web -->|"routes to"| node_intake
node_web -->|"routes to"| node_dtsexport
node_web -->|"routes to"| node_rdpintake
node_dcsregister -->|"uses"| node_dcsstore
node_dcsregister -->|"uses"| node_dcsnotify
node_dcsstamp -->|"reads files"| node_dcsstore
node_dcsstore -->|"stores copies"| node_google
node_dcsstore -->|"records metadata"| node_db
node_web -.->|"serves module"| node_dts
node_web -.->|"serves module"| node_rdp
node_web -.->|"serves module"| node_admin
node_web -.->|"serves module"| node_profile
node_chat -->|"queries"| node_chatdb
node_globalchat -->|"queries"| node_chatdb
node_chatdb -->|"connects to"| node_db
node_web -.->|"uses identity"| node_identity

click node_web "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/routes/web.php"
click node_identity "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Models/User.php"
click node_dcsregister "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/resources/views/pages/dcs/logic/register-query.blade.php"
click node_dcsstamp "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/StampService.php"
click node_dcsstore "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/DocumentStorageService.php"
click node_dcsnotify "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/DcsNotificationService.php"
click node_intake "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Helpers/OfficeIntakeHelper.php"
click node_dts "https://github.com/amen-progcorps/rms-cspc/tree/version-2-alpha/records-management-system/resources/views/pages/dts"
click node_dtsexport "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Helpers/DtsExportHelper.php"
click node_rdp "https://github.com/amen-progcorps/rms-cspc/tree/version-2-alpha/records-management-system/resources/views/pages/rdp"
click node_rdpintake "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/DtsRdpIntakeService.php"
click node_admin "https://github.com/amen-progcorps/rms-cspc/tree/version-2-alpha/records-management-system/resources/views/pages/admin"
click node_profile "https://github.com/amen-progcorps/rms-cspc/tree/version-2-alpha/records-management-system/resources/views/pages/profile"
click node_chat "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/public/chatify/core/ConversationManager.php"
click node_globalchat "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/public/chatify/core/GlobalChatManager.php"
click node_chatdb "https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/public/chatify/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_web,node_identity,node_user toneBlue
class node_dcsregister,node_dcsstamp,node_dcsstore,node_dcsnotify,node_intake toneAmber
class node_dts,node_dtsexport toneMint
class node_rdp,node_rdpintake toneRose
class node_admin,node_profile,node_chat,node_globalchat,node_chatdb,node_db,node_google toneIndigo
```

## Components

### Web access

- [Web routes](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/routes/web.php): `records-management-system/routes/web.php`
- [User identity](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Models/User.php): `records-management-system/app/Models/User.php`

### Document control

- [Register queries](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/resources/views/pages/dcs/logic/register-query.blade.php): `records-management-system/resources/views/pages/dcs/logic/register-query.blade.php`
- [Document stamping](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/StampService.php): `records-management-system/app/Services/StampService.php`
- [Document storage](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/DocumentStorageService.php): `records-management-system/app/Services/DocumentStorageService.php`
- [DCS notifications](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/DcsNotificationService.php): `records-management-system/app/Services/DcsNotificationService.php`
- [Office intake](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Helpers/OfficeIntakeHelper.php): `records-management-system/app/Helpers/OfficeIntakeHelper.php`

### Document tracking

- [Document tracking](https://github.com/amen-progcorps/rms-cspc/tree/version-2-alpha/records-management-system/resources/views/pages/dts): `records-management-system/resources/views/pages/dts`
- [DTS exports](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Helpers/DtsExportHelper.php): `records-management-system/app/Helpers/DtsExportHelper.php`

### Records disposition

- [Disposition records](https://github.com/amen-progcorps/rms-cspc/tree/version-2-alpha/records-management-system/resources/views/pages/rdp): `records-management-system/resources/views/pages/rdp`
- [RDP intake](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/app/Services/DtsRdpIntakeService.php): `records-management-system/app/Services/DtsRdpIntakeService.php`

### Shared services

- [Administration](https://github.com/amen-progcorps/rms-cspc/tree/version-2-alpha/records-management-system/resources/views/pages/admin): `records-management-system/resources/views/pages/admin`
- [Profile and alerts](https://github.com/amen-progcorps/rms-cspc/tree/version-2-alpha/records-management-system/resources/views/pages/profile): `records-management-system/resources/views/pages/profile`
- [Chat services](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/public/chatify/core/ConversationManager.php): `records-management-system/public/chatify/core/ConversationManager.php`
- [Global chat](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/public/chatify/core/GlobalChatManager.php): `records-management-system/public/chatify/core/GlobalChatManager.php`
- [Chat database access](https://github.com/amen-progcorps/rms-cspc/blob/version-2-alpha/records-management-system/public/chatify/core/Database.php): `records-management-system/public/chatify/core/Database.php`
- **PostgreSQL**
- **Google Drive**

### Other components

- **Staff user**

## Connections

- Staff user → Web routes: uses (evidence: `README.md`)
- Web routes → Register queries: routes to (evidence: `records-management-system/routes/web.php`)
- Web routes → Document stamping: routes to (evidence: `records-management-system/routes/web.php`)
- Web routes → Office intake: routes to (evidence: `records-management-system/routes/web.php`)
- Web routes → DTS exports: routes to (evidence: `records-management-system/routes/web.php`)
- Web routes → RDP intake: routes to (evidence: `records-management-system/routes/web.php`)
- Register queries → Document storage: uses (evidence: `records-management-system/resources/views/pages/dcs/logic/register-query.blade.php`)
- Register queries → DCS notifications: uses (evidence: `records-management-system/resources/views/pages/dcs/logic/register-query.blade.php`)
- Document stamping → Document storage: reads files (evidence: `records-management-system/app/Services/StampService.php`)
- Document storage → Google Drive: stores copies (evidence: `records-management-system/app/Services/DocumentStorageService.php`)
- Document storage → PostgreSQL: records metadata (evidence: `records-management-system/app/Services/DocumentStorageService.php`)
- Web routes → Document tracking: serves module
- Web routes → Disposition records: serves module
- Web routes → Administration: serves module
- Web routes → Profile and alerts: serves module
- Chat services → Chat database access: queries (evidence: `records-management-system/public/chatify/core/ConversationManager.php`)
- Global chat → Chat database access: queries (evidence: `records-management-system/public/chatify/core/GlobalChatManager.php`)
- Chat database access → PostgreSQL: connects to (evidence: `records-management-system/public/chatify/core/Database.php`)
- Web routes → User identity: uses identity
