Ir al contenido principal

Análisis Técnico del Repositorio: Carpeta Ciudadana Backend

Información General

Nombre del Proyecto: Carpeta Ciudadana Backend
Repositorio: github.com/ogticrd/carpeta-ciudadana-backend

El backend centraliza la lógica de notificaciones y cuenta con un componente llamado "wrapper" que agrupa a las instituciones que funcionan de forma similar, como los ayuntamientos, las empresas distribuidoras de electricidad (EDES), y las compañías de agua. Esto permite manejar todas estas entidades de manera unificada, evitando realizar múltiples peticiones separadas para cada una y optimizando así la comunicación y el rendimiento del sistema.

Elemento Descripción
Arquitectura Microservicios
Framework principal NestJS
Lenguaje TypeScript
Comunicación entre servicios gRPC
Contenedores Docker, docker-compose, múltiples Dockerfiles
Gestión de paquetes npm/yarn
Infraestructura como código docker-compose.yml, múltiples archivos de entorno (.env.example)

Análisis de Microservicios
Microservicio Funcionalidad
gateway Punto de entrada, autenticación, health check, orquestación general
metadata Gestión de usuarios, sesiones, OTPs, suscripciones de notificación
notification Envío y manejo de notificaciones, workflows
wrapper-institutions Integración con instituciones (ej. JCE, Edesur, pasaportes)

DevOps / Automatización
Elemento Descripción
CI/CD Workflows por microservicio (gateway-deployment.yml, etc.)
Limpieza de caché cleanup-cache-branch.yml para mantener el entorno limpio
Dependabot Actualización automática de dependencias (dependabot.yml)
Entornos definidos .env.example, development.Dockerfile, múltiples Dockerfile
Linting y Formateo .eslintrc.js, .prettierrc, uso de Biome
Debugging Archivos .vscode/launch.json en cada microservicio

Análisis de Workflows CI/CD (.github/workflows/)
Archivo Descripción
cleanup-cache-branch.yml Limpia las cachés asociadas a una Pull Request (PR) cuando esta es cerrada.
gateway-deployment.yml Este archivo parece estar relacionado con el despliegue del Gateway
metadata-deployment.yml Este archivo probablemente gestiona el despliegue del microservicio Metadata. La última actualización sugiere que se corrigió alguna cuestión relacionada con el entorno de producción.
notification-deployment.yml Relacionado con el despliegue del microservicio Notification. La última actualización menciona la integración o actualización con Novu (probablemente una plataforma de notificaciones).
wrapper-institutions-deployment.yml Este archivo gestiona el despliegue de Wrapper Institutions, que probablemente interactúa con servicios externos o APIs de instituciones gubernamentales.

Control de Calidad
Elemento Detalles
Framework de testing jest
Tipo de pruebas e2e (end-to-end), ejemplos: app.e2e-spec.ts
Cobertura Se encuentran *.spec.ts para pruebas unitarias (ej: *.service.spec.ts)

Seguridad
Elemento Descripción
API Key Middleware auth/api-key.middleware.ts (wrapper-institutions)
Manejo de tokens OTP Varios microservicios trabajan con OTPs y suscripciones seguras
Entornos seguros .env.example usado en todos los servicios
Dependabot Protege contra vulnerabilidades de paquetes
Sin SonarQube No se encontró integración con SonarQube

Herramientas y Librerías Detectadas
Tipo Herramientas / Librerías
Backend Framework NestJS
Contenedores Docker, Docker Compose
Proto/gRPC Archivos .proto para cada servicio
Lint/Formato ESLint, Prettier, Biome
Tests Jest
Gestión de paquetes Yarn o npm
VSCode Dev Env .vscode en todos los servicios

Documentación
Sección Contenido Detectado
Introducción Describe brevemente el propósito del backend: “simplificar la gestión de documentos y trámites ciudadanos”.
Arquitectura Enumera los microservicios (gateway, metadata, notification, wrapper-institutions) y explica sus responsabilidades.
Tecnologías Menciona NestJS, TypeScript y gRPC como stack principal.