# omarmariscal/silverback architecture

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

- Interactive diagram: https://gitdiagram.com/omarmariscal/silverback
- Repository: https://github.com/omarmariscal/silverback

## Overview

Silverback is a Contraloría POA planning and audit-execution platform: staff use role-specific web screens to manage annual plans and activities, while Jefatura reviews and authorizes plans and monitors performance. The README also documents auditor management, catalog-based planning, and cloud evidence storage. The sampled frontend service shows POA requests over HTTP; most backend wiring and the document-storage implementation were not sampled, so those relationships are shown only where documented or left unconnected.

Main entry points: [`backend/src/modules/poas/application/poas.service.ts`](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/poas/application/poas.service.ts) (POA workflows), [`frontend/src/services/poa.service.ts`](https://github.com/omarmariscal/silverback/blob/main/frontend/src/services/poa.service.ts) (POA service), [`backend/src/modules/actividades/application/actividades.service.ts`](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/application/actividades.service.ts) (Activity management), [`backend/src/prisma/prisma.service.ts`](https://github.com/omarmariscal/silverback/blob/main/backend/src/prisma/prisma.service.ts) (Prisma access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_webapp["Role-based screens"]
  node_session["Session and roles<br/>[auth.service.ts]"]
  node_api_client["API client<br/>[api.ts]"]
  node_poa_web["POA service<br/>[poa.service.ts]"]
  node_poa_types["POA contracts<br/>[poa-api.ts]"]
end

subgraph group_planning["POA and activities"]
  node_poa_http["POA endpoints<br/>[poas.controller.ts]"]
  node_poa_app["POA workflows<br/>[poas.service.ts]"]
  node_poa_store[("POA persistence")]
  node_activity_http["Activity endpoints"]
  node_activity_app["Activity management"]
  node_activity_store[("Activity queries")]
  node_subactivity_store[("Subactivity queries")]
end

subgraph group_oversight["Oversight and catalogs"]
  node_catalog["Activity catalog"]
  node_auditors["Auditor directory"]
  node_centers["Center POAs"]
  node_dashboard["Role dashboards"]
  node_documents[("Evidence storage")]
end

subgraph group_platform["API platform"]
  node_database[("PostgreSQL")]
  node_prisma["Prisma access<br/>[prisma.service.ts]"]
  node_auth_api["JWT authentication"]
end

node_staff(("Contraloría staff"))

node_staff -->|"uses"| node_webapp
node_webapp -->|"resolves session"| node_session
node_webapp -.->|"requests POA"| node_poa_web
node_poa_web -->|"sends requests"| node_api_client
node_poa_web -->|"uses contracts"| node_poa_types
node_poa_web -->|"calls endpoints"| node_poa_http
node_poa_http -.->|"delegates to"| node_poa_app
node_poa_app -.->|"persists plans"| node_poa_store
node_activity_http -.->|"delegates to"| node_activity_app
node_activity_app -.->|"queries activities"| node_activity_store
node_activity_app -.->|"queries subactivities"| node_subactivity_store
node_poa_app -.->|"manages plan activities"| node_activity_app
node_poa_store -.->|"uses ORM"| node_prisma
node_activity_store -.->|"uses ORM"| node_prisma
node_subactivity_store -.->|"uses ORM"| node_prisma
node_prisma -.->|"accesses data"| node_database
node_poa_app -.->|"selects catalog items"| node_catalog
node_poa_app -.->|"assigns auditors"| node_auditors
node_staff -.->|"stores evidence"| node_documents
node_staff -.->|"reviews metrics"| node_dashboard
node_staff -.->|"reviews center plans"| node_centers
node_staff -.->|"authenticates"| node_auth_api

click node_webapp "https://github.com/omarmariscal/silverback/tree/main/frontend/src/app"
click node_session "https://github.com/omarmariscal/silverback/blob/main/frontend/src/services/auth.service.ts"
click node_api_client "https://github.com/omarmariscal/silverback/blob/main/frontend/src/services/api.ts"
click node_poa_web "https://github.com/omarmariscal/silverback/blob/main/frontend/src/services/poa.service.ts"
click node_poa_types "https://github.com/omarmariscal/silverback/blob/main/frontend/src/types/poa-api.ts"
click node_poa_http "https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/poas/infrastructure/http/poas.controller.ts"
click node_poa_app "https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/poas/application/poas.service.ts"
click node_poa_store "https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/poas/infrastructure/repositories/prisma-poa.repository.ts"
click node_activity_http "https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/infrastructure/http/actividades.controller.ts"
click node_activity_app "https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/application/actividades.service.ts"
click node_activity_store "https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/infrastructure/repositories/prisma-actividad-query.repository.ts"
click node_subactivity_store "https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/infrastructure/repositories/prisma-subactividad-query.repository.ts"
click node_catalog "https://github.com/omarmariscal/silverback/tree/main/backend/src/modules/catalogo"
click node_auditors "https://github.com/omarmariscal/silverback/tree/main/backend/src/modules/auditores"
click node_centers "https://github.com/omarmariscal/silverback/tree/main/backend/src/modules/centros"
click node_dashboard "https://github.com/omarmariscal/silverback/tree/main/backend/src/modules/dashboard"
click node_prisma "https://github.com/omarmariscal/silverback/blob/main/backend/src/prisma/prisma.service.ts"
click node_auth_api "https://github.com/omarmariscal/silverback/tree/main/backend/src/core/auth"

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_webapp,node_session,node_api_client,node_poa_web,node_poa_types toneBlue
class node_poa_http,node_poa_app,node_poa_store,node_activity_http,node_activity_app,node_activity_store,node_subactivity_store toneAmber
class node_catalog,node_auditors,node_centers,node_dashboard,node_documents toneMint
class node_database,node_prisma,node_auth_api toneRose
class node_staff toneIndigo
```

## Components

### Web application

- [Role-based screens](https://github.com/omarmariscal/silverback/tree/main/frontend/src/app): `frontend/src/app`
- [Session and roles](https://github.com/omarmariscal/silverback/blob/main/frontend/src/services/auth.service.ts): `frontend/src/services/auth.service.ts`
- [API client](https://github.com/omarmariscal/silverback/blob/main/frontend/src/services/api.ts): `frontend/src/services/api.ts`
- [POA service](https://github.com/omarmariscal/silverback/blob/main/frontend/src/services/poa.service.ts): `frontend/src/services/poa.service.ts`
- [POA contracts](https://github.com/omarmariscal/silverback/blob/main/frontend/src/types/poa-api.ts): `frontend/src/types/poa-api.ts`

### POA and activities

- [POA endpoints](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/poas/infrastructure/http/poas.controller.ts): `backend/src/modules/poas/infrastructure/http/poas.controller.ts`
- [POA workflows](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/poas/application/poas.service.ts): `backend/src/modules/poas/application/poas.service.ts`
- [POA persistence](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/poas/infrastructure/repositories/prisma-poa.repository.ts): `backend/src/modules/poas/infrastructure/repositories/prisma-poa.repository.ts`
- [Activity endpoints](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/infrastructure/http/actividades.controller.ts): `backend/src/modules/actividades/infrastructure/http/actividades.controller.ts`
- [Activity management](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/application/actividades.service.ts): `backend/src/modules/actividades/application/actividades.service.ts`
- [Activity queries](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/infrastructure/repositories/prisma-actividad-query.repository.ts): `backend/src/modules/actividades/infrastructure/repositories/prisma-actividad-query.repository.ts`
- [Subactivity queries](https://github.com/omarmariscal/silverback/blob/main/backend/src/modules/actividades/infrastructure/repositories/prisma-subactividad-query.repository.ts): `backend/src/modules/actividades/infrastructure/repositories/prisma-subactividad-query.repository.ts`

### Oversight and catalogs

- [Activity catalog](https://github.com/omarmariscal/silverback/tree/main/backend/src/modules/catalogo): `backend/src/modules/catalogo`
- [Auditor directory](https://github.com/omarmariscal/silverback/tree/main/backend/src/modules/auditores): `backend/src/modules/auditores`
- [Center POAs](https://github.com/omarmariscal/silverback/tree/main/backend/src/modules/centros): `backend/src/modules/centros`
- [Role dashboards](https://github.com/omarmariscal/silverback/tree/main/backend/src/modules/dashboard): `backend/src/modules/dashboard`
- **Evidence storage**

### API platform

- **PostgreSQL**
- [Prisma access](https://github.com/omarmariscal/silverback/blob/main/backend/src/prisma/prisma.service.ts): `backend/src/prisma/prisma.service.ts`
- [JWT authentication](https://github.com/omarmariscal/silverback/tree/main/backend/src/core/auth): `backend/src/core/auth`

### Other components

- **Contraloría staff**

## Connections

- Contraloría staff → Role-based screens: uses
- Role-based screens → Session and roles: resolves session (evidence: `frontend/src/services/auth.service.ts`)
- Role-based screens → POA service: requests POA
- POA service → API client: sends requests (evidence: `frontend/src/services/poa.service.ts`)
- POA service → POA contracts: uses contracts (evidence: `frontend/src/services/poa.service.ts`)
- POA service → POA endpoints: calls endpoints (evidence: `frontend/src/services/poa.service.ts`)
- POA endpoints → POA workflows: delegates to
- POA workflows → POA persistence: persists plans
- Activity endpoints → Activity management: delegates to
- Activity management → Activity queries: queries activities
- Activity management → Subactivity queries: queries subactivities
- POA workflows → Activity management: manages plan activities
- POA persistence → Prisma access: uses ORM
- Activity queries → Prisma access: uses ORM
- Subactivity queries → Prisma access: uses ORM
- Prisma access → PostgreSQL: accesses data
- POA workflows → Activity catalog: selects catalog items
- POA workflows → Auditor directory: assigns auditors
- Contraloría staff → Evidence storage: stores evidence
- Contraloría staff → Role dashboards: reviews metrics
- Contraloría staff → Center POAs: reviews center plans
- Contraloría staff → JWT authentication: authenticates
