Skip to main content

Estructura del proyecto

Esta sección describe cómo está organizado el repositorio apolo-app-platcom-platform, cuáles son los tipos de proyectos que contiene y cómo se relacionan entre sí dentro del monorepo Nx.

Si es tu primera vez en el repo, lee esta página y luego continúa con:

Monorepo Nx

El proyecto está organizado como un monorepo Nx, donde convivien:

  • Aplicaciones (apps/)
    Puntos de entrada desplegables (APIs, frontends y documentación).
  • Librerías (libs/)
    Código reutilizable: dominio, contratos, componentes UI, utilidades, etc.
  • Configuración (config/, tools/, etc.)
    Plantillas de secretos (Seki), configuración de Nx, Husky, linting, etc.

Estructura general:

apolo-app-platcom-platform/
├── apps/ # Aplicaciones desplegables
│ ├── bff-api/ # Backend for Frontend
│ ├── applications-api/ # API de aplicaciones
│ ├── auth-api/ # API de autenticación
│ ├── core-api/ # API core de dominio
│ ├── reports-api/ # API de reportes
│ ├── tenants-api/ # API multi-tenant
│ ├── portal-web/ # Portal web de auditoría/seguridad
│ ├── devs-portal/ # Documentación (Docusaurus)
│ └── playground-library/ # Playground de la librería compartida

├── libs/ # Librerías compartidas
│ ├── ... # Módulos de dominio, DTOs, validaciones, etc.
│ └── apolo-pcp-gadgets/ # Librería frontend (componentes/ui/helpers)

├── config/ # Configuración global
│ └── .secretsrc.json # Plantilla de secretos (Seki)

├── tools/ # Generadores Seki, scripts Nx
└── docs/ # Colecciones de postman y bruno

Tipos de proyectos

En Nx distinguimos principalmente tres tipos:

  • APIs backend (NestJS) Microservicios orientados a dominios: auth-api, applications-api, core-api, reports-api, tenants-api, etc.

  • Frontends

    • `portal-web: portal de auditoría/seguridad (React + Tailwind + ITDS).
    • devs-portal: documentación para desarrolladores (Docusaurus).
    • playground-library: entorno de prueba para la librería frontend.
  • Librerías compartidas Contienen contratos (DTOs, esquemas), lógica de dominio reutilizable, componentes de UI y utilidades técnicas.

Los detalles de cada categoría se profundizan en: