Análisis Técnico del Repositorio: Carpeta Ciudadana Backend
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. |