# elsantiago31/logistica architecture

> Architecture diagram of the GitHub repository elsantiago31/logistica, 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/elsantiago31/logistica
- Repository: https://github.com/elsantiago31/logistica

## Overview

This is an event-workforce operations platform: staff authenticate, are assigned to events, and support check-in, coordination, incidents, payroll, and synchronization. Administrators also manage content, referrals, and public inquiries. The graph reflects the routes and service relationships named in the source index; several domain routes and services were not excerpted, so their internal flows are left unspecified.

Main entry points: [`backend/app/routers/events.py`](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/events.py) (Event management), [`backend/app/main.py`](https://github.com/elsantiago31/logistica/blob/master/backend/app/main.py) (API application), [`backend/app/routers/auth.py`](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/auth.py) (Authentication routes), [`backend/app/routers/sync.py`](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/sync.py) (Offline synchronization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity &amp; access"]
  node_auth_routes["Authentication routes<br/>[auth.py]"]
  node_auth_service["Token &amp; password service<br/>[auth.py]"]
  node_auth_dependency["Authentication checks<br/>[auth.py]"]
  node_permissions["Role permissions<br/>[permissions.py]"]
  node_user_model["Users &amp; roles<br/>[users.py]"]
end

subgraph group_events["Event operations"]
  node_events_routes["Event management<br/>[events.py]"]
  node_event_service["Event services<br/>[events.py]"]
  node_event_model["Events &amp; assignments<br/>[events.py]"]
  node_coordinator["Coordinator tools<br/>[coordinator.py]"]
  node_incidents["Incident management<br/>[incidents.py]"]
  node_sync["Offline synchronization<br/>[sync.py]"]
  node_frontend_sync["Client sync<br/>[sync.js]"]
end

subgraph group_workforce["Workforce &amp; payroll"]
  node_operators["Operator management<br/>[operators.py]"]
  node_operator_model["Operator profiles<br/>[operators.py]"]
  node_payroll["Payroll &amp; exports<br/>[payroll.py]"]
  node_payroll_exports["Payroll file generation<br/>[planilla_excel.py]"]
end

subgraph group_platform["Platform capabilities"]
  node_app["API application<br/>[main.py]"]
  node_database[("Application database<br/>[database.py]")]
  node_realtime["WebSocket channels<br/>[manager.py]"]
  node_content["Content management<br/>[content.py]"]
  node_content_service["Content services<br/>[content.py]"]
  node_pqrsf["Public inquiries<br/>[pqrsf.py]"]
  node_referrals["Referrals<br/>[referrals.py]"]
end

node_admin(("Administrator / staff"))
node_operator(("Operator"))

node_admin -->|"uses"| node_app
node_operator -.->|"uses"| node_app
node_app -->|"mounts"| node_auth_routes
node_app -->|"mounts"| node_events_routes
node_app -->|"mounts"| node_sync
node_app -->|"mounts"| node_payroll
node_auth_routes -->|"uses"| node_auth_service
node_auth_routes -->|"queries"| node_database
node_auth_routes -->|"manages"| node_user_model
node_auth_dependency -->|"validates tokens"| node_auth_service
node_auth_dependency -->|"queries"| node_database
node_auth_dependency -->|"loads user"| node_user_model
node_permissions -->|"checks roles"| node_user_model
node_events_routes -->|"uses"| node_event_service
node_events_routes -->|"queries"| node_event_model
node_events_routes -->|"checks access"| node_permissions
node_coordinator -->|"uses"| node_event_service
node_coordinator -->|"queries"| node_event_model
node_sync -->|"uses"| node_event_service
node_sync -->|"queries"| node_event_model
node_frontend_sync -.->|"synchronizes with"| node_sync
node_operators -.->|"manages"| node_operator_model
node_payroll -->|"generates exports"| node_payroll_exports
node_payroll -->|"reads assignments"| node_event_model
node_events_routes -->|"imports operators"| node_operator_model
node_content -->|"uses"| node_content_service
node_content -->|"publishes updates"| node_realtime
node_events_routes -.->|"broadcasts updates"| node_realtime

click node_app "https://github.com/elsantiago31/logistica/blob/master/backend/app/main.py"
click node_auth_routes "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/auth.py"
click node_auth_service "https://github.com/elsantiago31/logistica/blob/master/backend/app/services/auth.py"
click node_auth_dependency "https://github.com/elsantiago31/logistica/blob/master/backend/app/dependencies/auth.py"
click node_permissions "https://github.com/elsantiago31/logistica/blob/master/backend/app/permissions.py"
click node_database "https://github.com/elsantiago31/logistica/blob/master/backend/app/database.py"
click node_user_model "https://github.com/elsantiago31/logistica/blob/master/backend/app/models/users.py"
click node_events_routes "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/events.py"
click node_event_service "https://github.com/elsantiago31/logistica/blob/master/backend/app/services/events.py"
click node_event_model "https://github.com/elsantiago31/logistica/blob/master/backend/app/models/events.py"
click node_coordinator "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/coordinator.py"
click node_incidents "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/incidents.py"
click node_sync "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/sync.py"
click node_frontend_sync "https://github.com/elsantiago31/logistica/blob/master/frontend/js/sync.js"
click node_operators "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/operators.py"
click node_operator_model "https://github.com/elsantiago31/logistica/blob/master/backend/app/models/operators.py"
click node_payroll "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/payroll.py"
click node_payroll_exports "https://github.com/elsantiago31/logistica/blob/master/backend/app/services/planilla_excel.py"
click node_realtime "https://github.com/elsantiago31/logistica/blob/master/backend/app/websockets/manager.py"
click node_content "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/content.py"
click node_content_service "https://github.com/elsantiago31/logistica/blob/master/backend/app/services/content.py"
click node_pqrsf "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/pqrsf.py"
click node_referrals "https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/referrals.py"

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_auth_routes,node_auth_service,node_auth_dependency,node_permissions,node_user_model toneBlue
class node_events_routes,node_event_service,node_event_model,node_coordinator,node_incidents,node_sync,node_frontend_sync toneAmber
class node_operators,node_operator_model,node_payroll,node_payroll_exports toneMint
class node_app,node_database,node_realtime,node_content,node_content_service,node_pqrsf,node_referrals toneRose
class node_admin,node_operator toneIndigo
```

## Components

### Identity & access

- [Authentication routes](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/auth.py): `backend/app/routers/auth.py`
- [Token & password service](https://github.com/elsantiago31/logistica/blob/master/backend/app/services/auth.py): `backend/app/services/auth.py`
- [Authentication checks](https://github.com/elsantiago31/logistica/blob/master/backend/app/dependencies/auth.py): `backend/app/dependencies/auth.py`
- [Role permissions](https://github.com/elsantiago31/logistica/blob/master/backend/app/permissions.py): `backend/app/permissions.py`
- [Users & roles](https://github.com/elsantiago31/logistica/blob/master/backend/app/models/users.py): `backend/app/models/users.py`

### Event operations

- [Event management](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/events.py): `backend/app/routers/events.py`
- [Event services](https://github.com/elsantiago31/logistica/blob/master/backend/app/services/events.py): `backend/app/services/events.py`
- [Events & assignments](https://github.com/elsantiago31/logistica/blob/master/backend/app/models/events.py): `backend/app/models/events.py`
- [Coordinator tools](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/coordinator.py): `backend/app/routers/coordinator.py`
- [Incident management](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/incidents.py): `backend/app/routers/incidents.py`
- [Offline synchronization](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/sync.py): `backend/app/routers/sync.py`
- [Client sync](https://github.com/elsantiago31/logistica/blob/master/frontend/js/sync.js): `frontend/js/sync.js`

### Workforce & payroll

- [Operator management](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/operators.py): `backend/app/routers/operators.py`
- [Operator profiles](https://github.com/elsantiago31/logistica/blob/master/backend/app/models/operators.py): `backend/app/models/operators.py`
- [Payroll & exports](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/payroll.py): `backend/app/routers/payroll.py`
- [Payroll file generation](https://github.com/elsantiago31/logistica/blob/master/backend/app/services/planilla_excel.py): `backend/app/services/planilla_excel.py`

### Platform capabilities

- [API application](https://github.com/elsantiago31/logistica/blob/master/backend/app/main.py): `backend/app/main.py`
- [Application database](https://github.com/elsantiago31/logistica/blob/master/backend/app/database.py): `backend/app/database.py`
- [WebSocket channels](https://github.com/elsantiago31/logistica/blob/master/backend/app/websockets/manager.py): `backend/app/websockets/manager.py`
- [Content management](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/content.py): `backend/app/routers/content.py`
- [Content services](https://github.com/elsantiago31/logistica/blob/master/backend/app/services/content.py): `backend/app/services/content.py`
- [Public inquiries](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/pqrsf.py): `backend/app/routers/pqrsf.py`
- [Referrals](https://github.com/elsantiago31/logistica/blob/master/backend/app/routers/referrals.py): `backend/app/routers/referrals.py`

### Other components

- **Administrator / staff**
- **Operator**

## Connections

- Administrator / staff → API application: uses (evidence: `backend/app/main.py`)
- Operator → API application: uses
- API application → Authentication routes: mounts (evidence: `backend/app/main.py`)
- API application → Event management: mounts (evidence: `backend/app/main.py`)
- API application → Offline synchronization: mounts (evidence: `backend/app/main.py`)
- API application → Payroll & exports: mounts (evidence: `backend/app/main.py`)
- Authentication routes → Token & password service: uses (evidence: `backend/app/routers/auth.py`)
- Authentication routes → Application database: queries (evidence: `backend/app/routers/auth.py`)
- Authentication routes → Users & roles: manages (evidence: `backend/app/routers/auth.py`)
- Authentication checks → Token & password service: validates tokens (evidence: `backend/app/dependencies/auth.py`)
- Authentication checks → Application database: queries (evidence: `backend/app/dependencies/auth.py`)
- Authentication checks → Users & roles: loads user (evidence: `backend/app/dependencies/auth.py`)
- Role permissions → Users & roles: checks roles (evidence: `backend/app/permissions.py`)
- Event management → Event services: uses (evidence: `backend/app/routers/events.py`)
- Event management → Events & assignments: queries (evidence: `backend/app/routers/events.py`)
- Event management → Role permissions: checks access (evidence: `backend/app/routers/events.py`)
- Coordinator tools → Event services: uses (evidence: `backend/app/routers/coordinator.py`)
- Coordinator tools → Events & assignments: queries (evidence: `backend/app/routers/coordinator.py`)
- Offline synchronization → Event services: uses (evidence: `backend/app/routers/sync.py`)
- Offline synchronization → Events & assignments: queries (evidence: `backend/app/routers/sync.py`)
- Client sync → Offline synchronization: synchronizes with
- Operator management → Operator profiles: manages
- Payroll & exports → Payroll file generation: generates exports (evidence: `backend/app/routers/payroll.py`)
- Payroll & exports → Events & assignments: reads assignments (evidence: `backend/app/routers/payroll.py`)
- Event management → Operator profiles: imports operators (evidence: `backend/app/routers/events.py`)
- Content management → Content services: uses (evidence: `backend/app/routers/content.py`)
- Content management → WebSocket channels: publishes updates (evidence: `backend/app/routers/content.py`)
- Event management → WebSocket channels: broadcasts updates
