# vroa74/laravelsco-dse architecture

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

- Interactive diagram: https://gitdiagram.com/vroa74/laravelsco-dse
- Repository: https://github.com/vroa74/laravelsco-dse

## Overview

This is a Laravel/Livewire document-control system for an official correspondence office. Its apparent user workflow is to manage incoming documents and reports, route them to users or groups, and access associated files; supporting areas include catalogs, user administration, and authentication. The README names the general-report and catalog Livewire features, but their implementations and route wiring were not sampled, so their internal calls are not asserted. Edges below are limited to relationships visible in excerpts or the SOURCE INDEX.

Main entry points: [`app/Models/User.php`](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/User.php) (User accounts), [`app/Models/Co.php`](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/Co.php) (Correspondence records), [`app/Models/UserGroup.php`](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/UserGroup.php) (User groups), [`app/Models/CosFile.php`](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/CosFile.php) (Document files)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_route_provider["Route setup"]
  node_web_routes["Web routes<br/>[web.php]"]
end

subgraph group_documents["Document workflow"]
  node_report_ui["Report management<br/>[Index.php]"]
  node_catalog_ui["Catalog screens"]
  node_report_files["Report file API"]
  node_file_manager["Document file manager<br/>[FileManager.php]"]
  node_age_controller["Age records<br/>[AgeController.php]"]
  node_rg_controller["RG records<br/>[RgController.php]"]
end

subgraph group_access["Users and access"]
  node_user_group_controller["Group administration"]
  node_users_ui["User administration<br/>[Index.php]"]
end

subgraph group_auth["Authentication"]
  node_login["Login handler"]
  node_login_request["Login validation<br/>[LoginRequest.php]"]
  node_fortify_provider["Fortify setup"]
  node_new_user["User creation<br/>[CreateNewUser.php]"]
  node_profile_update["Profile updates"]
end

subgraph group_data["Domain data"]
  node_co[("Correspondence records<br/>[Co.php]")]
  node_cos[("COS records<br/>[Cos.php]")]
  node_cos_files[("Document files<br/>[CosFile.php]")]
  node_report_file_model[("Report files<br/>[ReportFile.php]")]
  node_user[("User accounts<br/>[User.php]")]
  node_user_group[("User groups<br/>[UserGroup.php]")]
  node_legislatura[("Legislatures<br/>[Legislatura.php]")]
  node_seed_data["Initial user data<br/>[DatabaseSeeder.php]"]
end

node_browser(("Office user"))

node_route_provider -->|"loads routes"| node_web_routes
node_report_files -->|"creates and queries"| node_report_file_model
node_report_files -->|"imports model"| node_co
node_file_manager -->|"queries and downloads"| node_cos_files
node_user_group_controller -->|"manages groups"| node_user_group
node_user_group_controller -->|"looks up users"| node_user
node_login -->|"validates request"| node_login_request
node_login -->|"checks credentials"| node_user
node_fortify_provider -->|"registers action"| node_new_user
node_fortify_provider -->|"registers action"| node_profile_update
node_new_user -->|"creates account"| node_user
node_profile_update -->|"updates account"| node_user
node_user -->|"relates to groups"| node_user_group
node_co -->|"references model"| node_legislatura
node_co -->|"relates to users"| node_user
node_co -->|"relates to groups"| node_user_group
node_co -->|"relates to files"| node_cos_files
node_user_group -->|"relates to members"| node_user
node_user_group -->|"queries group files"| node_cos_files
node_user -->|"relates to records"| node_cos
node_seed_data -->|"creates accounts"| node_user

click node_route_provider "https://github.com/vroa74/laravelsco-dse/blob/master/app/Providers/RouteServiceProvider.php"
click node_web_routes "https://github.com/vroa74/laravelsco-dse/blob/master/routes/web.php"
click node_report_ui "https://github.com/vroa74/laravelsco-dse/blob/master/app/Livewire/Reportesgral/Index.php"
click node_catalog_ui "https://github.com/vroa74/laravelsco-dse/tree/master/app/Livewire/Catalogo"
click node_report_files "https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/ReportFileController.php"
click node_file_manager "https://github.com/vroa74/laravelsco-dse/blob/master/app/Livewire/FileManager.php"
click node_age_controller "https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/AgeController.php"
click node_rg_controller "https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/RgController.php"
click node_user_group_controller "https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/UserGroupController.php"
click node_users_ui "https://github.com/vroa74/laravelsco-dse/blob/master/app/Livewire/Usuarios/Index.php"
click node_login "https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/Auth/LoginController.php"
click node_login_request "https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Requests/LoginRequest.php"
click node_fortify_provider "https://github.com/vroa74/laravelsco-dse/blob/master/app/Providers/FortifyServiceProvider.php"
click node_new_user "https://github.com/vroa74/laravelsco-dse/blob/master/app/Actions/Fortify/CreateNewUser.php"
click node_profile_update "https://github.com/vroa74/laravelsco-dse/blob/master/app/Actions/Fortify/UpdateUserProfileInformation.php"
click node_co "https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/Co.php"
click node_cos "https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/Cos.php"
click node_cos_files "https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/CosFile.php"
click node_report_file_model "https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/ReportFile.php"
click node_user "https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/User.php"
click node_user_group "https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/UserGroup.php"
click node_legislatura "https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/Legislatura.php"
click node_seed_data "https://github.com/vroa74/laravelsco-dse/blob/master/database/seeders/DatabaseSeeder.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_route_provider,node_web_routes,node_browser toneBlue
class node_report_ui,node_catalog_ui,node_report_files,node_file_manager,node_age_controller,node_rg_controller toneAmber
class node_user_group_controller,node_users_ui toneMint
class node_login,node_login_request,node_fortify_provider,node_new_user,node_profile_update toneRose
class node_co,node_cos,node_cos_files,node_report_file_model,node_user,node_user_group,node_legislatura,node_seed_data toneIndigo
```

## Components

### Application entry

- [Route setup](https://github.com/vroa74/laravelsco-dse/blob/master/app/Providers/RouteServiceProvider.php): `app/Providers/RouteServiceProvider.php`
- [Web routes](https://github.com/vroa74/laravelsco-dse/blob/master/routes/web.php): `routes/web.php`

### Document workflow

- [Report management](https://github.com/vroa74/laravelsco-dse/blob/master/app/Livewire/Reportesgral/Index.php): `app/Livewire/Reportesgral/Index.php`
- [Catalog screens](https://github.com/vroa74/laravelsco-dse/tree/master/app/Livewire/Catalogo): `app/Livewire/Catalogo`
- [Report file API](https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/ReportFileController.php): `app/Http/Controllers/ReportFileController.php`
- [Document file manager](https://github.com/vroa74/laravelsco-dse/blob/master/app/Livewire/FileManager.php): `app/Livewire/FileManager.php`
- [Age records](https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/AgeController.php): `app/Http/Controllers/AgeController.php`
- [RG records](https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/RgController.php): `app/Http/Controllers/RgController.php`

### Users and access

- [Group administration](https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/UserGroupController.php): `app/Http/Controllers/UserGroupController.php`
- [User administration](https://github.com/vroa74/laravelsco-dse/blob/master/app/Livewire/Usuarios/Index.php): `app/Livewire/Usuarios/Index.php`

### Authentication

- [Login handler](https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Controllers/Auth/LoginController.php): `app/Http/Controllers/Auth/LoginController.php`
- [Login validation](https://github.com/vroa74/laravelsco-dse/blob/master/app/Http/Requests/LoginRequest.php): `app/Http/Requests/LoginRequest.php`
- [Fortify setup](https://github.com/vroa74/laravelsco-dse/blob/master/app/Providers/FortifyServiceProvider.php): `app/Providers/FortifyServiceProvider.php`
- [User creation](https://github.com/vroa74/laravelsco-dse/blob/master/app/Actions/Fortify/CreateNewUser.php): `app/Actions/Fortify/CreateNewUser.php`
- [Profile updates](https://github.com/vroa74/laravelsco-dse/blob/master/app/Actions/Fortify/UpdateUserProfileInformation.php): `app/Actions/Fortify/UpdateUserProfileInformation.php`

### Domain data

- [Correspondence records](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/Co.php): `app/Models/Co.php`
- [COS records](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/Cos.php): `app/Models/Cos.php`
- [Document files](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/CosFile.php): `app/Models/CosFile.php`
- [Report files](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/ReportFile.php): `app/Models/ReportFile.php`
- [User accounts](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/User.php): `app/Models/User.php`
- [User groups](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/UserGroup.php): `app/Models/UserGroup.php`
- [Legislatures](https://github.com/vroa74/laravelsco-dse/blob/master/app/Models/Legislatura.php): `app/Models/Legislatura.php`
- [Initial user data](https://github.com/vroa74/laravelsco-dse/blob/master/database/seeders/DatabaseSeeder.php): `database/seeders/DatabaseSeeder.php`

### Other components

- **Office user**

## Connections

- Route setup → Web routes: loads routes (evidence: `app/Providers/RouteServiceProvider.php`)
- Report file API → Report files: creates and queries (evidence: `app/Http/Controllers/ReportFileController.php`)
- Report file API → Correspondence records: imports model (evidence: `app/Http/Controllers/ReportFileController.php`)
- Document file manager → Document files: queries and downloads (evidence: `app/Livewire/FileManager.php`)
- Group administration → User groups: manages groups (evidence: `app/Http/Controllers/UserGroupController.php`)
- Group administration → User accounts: looks up users (evidence: `app/Http/Controllers/UserGroupController.php`)
- Login handler → Login validation: validates request (evidence: `app/Http/Controllers/Auth/LoginController.php`)
- Login handler → User accounts: checks credentials (evidence: `app/Http/Controllers/Auth/LoginController.php`)
- Fortify setup → User creation: registers action (evidence: `app/Providers/FortifyServiceProvider.php`)
- Fortify setup → Profile updates: registers action (evidence: `app/Providers/FortifyServiceProvider.php`)
- User creation → User accounts: creates account (evidence: `app/Actions/Fortify/CreateNewUser.php`)
- Profile updates → User accounts: updates account (evidence: `app/Actions/Fortify/UpdateUserProfileInformation.php`)
- User accounts → User groups: relates to groups (evidence: `app/Models/User.php`)
- Correspondence records → Legislatures: references model (evidence: `app/Models/Co.php`)
- Correspondence records → User accounts: relates to users (evidence: `app/Models/Co.php`)
- Correspondence records → User groups: relates to groups (evidence: `app/Models/Co.php`)
- Correspondence records → Document files: relates to files (evidence: `app/Models/Co.php`)
- User groups → User accounts: relates to members (evidence: `app/Models/UserGroup.php`)
- User groups → Document files: queries group files (evidence: `app/Models/UserGroup.php`)
- User accounts → COS records: relates to records (evidence: `app/Models/User.php`)
- Initial user data → User accounts: creates accounts (evidence: `database/seeders/DatabaseSeeder.php`)
