Repositorios Carpeta Ciudadana (Soy Yo)
Herramienta centralizada para almacenar y gestionar la información personal y documentos relevantes de los ciudadanos, con el objetivo de mejorar la eficiencia y la calidad de los servicios gubernamentales.
Análisis Técnico del Repositorio: Carpeta Ciudadana Mobile
Nombre del Proyecto: Carpeta Ciudadana Mobile
Repositorio: github.com/ogticrd/carpeta-ciudadana-mobile
Una aplicación móvil destinada a los ciudadanos para interactuar con servicios digitales del gobierno.
| Elemento |
Observaciones |
.github/ |
Contiene workflows de GitHub Actions (CI/CD). Se menciona una tarea de cleanup cache, lo que sugiere optimización de builds. |
src/ |
Carpeta principal de código fuente. Cambios recientes sugieren mantenimiento activo. |
assets/, accests/ |
Dos carpetas similares; podría haber una confusión de nombres o duplicación. Revisar si ambas son necesarias. |
.env.example, .env.local |
Uso de variables de entorno. Correcta separación entre variables públicas y privadas. Incluye integración con Sentry. |
App.tsx |
Proyecto basado en React Native (o React + Expo). Componente raíz de la app. |
Dockerfile |
Soporte para contenerización. Permite pruebas y despliegue estandarizado. |
GoogleService-Info.plist / google-services.json |
Indica integración con Firebase tanto para iOS como Android. Muy común en apps móviles. |
babel.config.js, metro.config.js |
Configuración típica de React Native. |
eas.json |
Archivo de configuración de EAS (Expo Application Services). Se usa para builds y actualizaciones OTA. |
package.json, tsconfig.json |
Proyecto en TypeScript, bien estructurado. |
Stack Tecnológico
| Elemento |
Descripción |
| Framework base |
React Native |
| Entorno móvil |
Expo con EAS (Expo Application Services) |
| Lenguaje |
TypeScript |
| Gestión de estado |
Redux Toolkit + React Query |
| Navegación |
React Navigation |
| Firebase |
Integrado (push notifications, auth, etc.) |
| Feature flags |
Unleash + GrowthBook |
| Autenticación |
Expo Auth Session, Firebase, LocalAuth |
| Observabilidad |
Sentry |
| Fuentes |
Google Fonts (Poppins) |
DevOps / Automatización
| Área |
Herramienta/Archivo |
Comentarios |
| CI/CD |
.github/workflows (presente) |
GitHub Actions configurado (ej. limpieza de caché, tests) |
| Contenedores |
Dockerfile |
Contenedor de pruebas configurado |
| Reset de entorno |
"reset-project" |
Script personalizado (./scripts/reset-project.js) para reinicio de entorno. Declarado pero no se encontró el archivo – revisar si existe. |
| EAS (Expo Application Services) |
eas.json |
Integración con EAS: build y deployment OTA para móviles |
| Seguridad |
|
Monitoreo automático de versiones y alertas |
Análisis de Workflows CI/CD (.github/workflows/)
| Archivo de Workflow |
Propósito |
Herramientas clave |
Estado |
ci-check-linters.yml |
Ejecuta linters para mantener calidad de código |
eslint, posiblemente expo lint |
Activo y útil para calidad |
cleanup-cache-branch.yml |
Limpia la caché de branches antiguas o cerradas |
actions/github-script, cache |
Mantenimiento automatizado |
preview-deployment.yml |
Despliega versiones de preview (probablemente PRs) |
Expo, EAS, o similar |
Muy útil para validaciones previas |
preview-deployment-slack-pr.yml |
Notifica en Slack sobre despliegues de preview |
slackapi/slack-github-action |
Integración con Slack para visibilidad |
Calidad del Código
| Herramienta |
Presencia |
Comentarios |
| ESLint |
Detectado |
Usa @typescript-eslint, eslint-config-expo |
| Prettier |
No explícitamente declarado |
|
| Análisis estático |
No SonarQube u otra herramienta detectada |
|
| Depuración de dependencias |
Detectado |
Usa depcheck y unimported para limpiar dependencias no usadas |
Seguridad
| Elemento |
Presencia |
Comentarios |
.env.example |
Si |
Correcto uso para variables de entorno públicas |
.env.local |
Si |
Presente en el repo (riesgo si contiene claves) |
| Sentry |
Si |
Integración con @sentry/react-native |
| Control de calidad estático (SAST) |
NO |
No detectado. Recomendado para escaneo de vulnerabilidades |
| |
|
|
Dependencias y Escalabilidad
| Tipo |
Ejemplos |
Observaciones |
| UI / UX |
@gorhom/portal, react-native-tab-view, poppins, expo-checkbox |
Buen uso de librerías modernas |
| Estado |
redux-toolkit, react-query |
Excelente combinación (escalabilidad + optimización) |
| Autenticación / Seguridad |
expo-auth-session, expo-secure-store, expo-local-authentication |
Cubren login biométrico, tokens seguros |
| Observabilidad / Flags |
sentry, unleash, growthbook |
Nivel empresarial |
Documentación
| Archivo |
Estado |
README.md |
No visible en estructura |
app.config.js |
Configuración específica de Expo |
| Otros |
No se detecta documentación para desarrolladores o entorno de producción/despliegue |
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. |
Análisis Técnico del Repositorio: Carpeta Ciudadana Landing
Nombre del Proyecto: Carpeta Ciudadana Landing
Repositorio: github.com/ogticrd/carpeta-ciudadana-landing
Este repositorio parece estar orientado a crear una aplicación de landing page con funcionalidad para múltiples secciones. Está basado principalmente en Vue.js y utiliza Quasar Framework para facilitar el desarrollo y el diseño.
| Carpeta/Archivo |
Descripción |
| public/ |
Archivos estáticos como iconos, imágenes y recursos multimedia. |
| src/ |
Código fuente de la aplicación. |
| assets/ |
Recursos estáticos utilizados en la app, como imágenes. |
| components/ |
Componentes reutilizables de la interfaz de usuario. |
| layouts/ |
Plantillas (layouts) utilizadas en las páginas. |
| pages/ |
Páginas del sitio web (e.g., FAQsPage.vue, IndexPage.vue). |
| router/ |
Configuración de rutas de la aplicación. |
| stores/ |
Gestión del estado global usando Pinia. |
Tecnología
| Elemento |
Descripción |
| Framework |
Quasar (Vue.js 3) para el desarrollo de la aplicación. |
| SSR (Server-Side Rendering) |
Configurado para SSR con Quasar, mejorando rendimiento y SEO. |
| Vite |
Utiliza Vite como bundler para optimizar el desarrollo y la construcción. |
| Gestión de Estado |
Usa Pinia para gestionar el estado global de la aplicación. |
| Ruteo |
Usando Vue Router para gestionar la navegación. |
Dependencias
| Dependencia |
Descripción |
| Dependencias principales |
|
vue, vue-router |
Framework y librería de enrutamiento para Vue.js. |
quasar |
Framework para crear aplicaciones con diseño consistente y responsivo. |
pinia |
Gestión de estado para Vue 3 (alternativa a Vuex). |
axios |
Para realizar solicitudes HTTP. |
| Dependencias de desarrollo |
|
eslint, prettier |
Herramientas de linting y formateo de código. |
@intlify/unplugin-vue-i18n |
Plugin para la internacionalización en Vue.js. |
vite-plugin-checker |
Plugin para verificaciones de tipos y linting. |
Internacionalización (i18n)
| Elemento |
Descripción |
| i18n |
Configurado para soportar múltiples idiomas. |
| Archivos de idioma |
Se encuentra la configuración de idioma para es-DO. |
| vue-i18n |
Utiliza el plugin vue-i18n para internacionalización. |
Scripts en package.json
| Script |
Descripción |
dev |
Inicia la aplicación en modo de desarrollo con SSR. |
build |
Construye la aplicación para producción con un dominio específico. |
host |
Despliega la aplicación en Firebase Hosting después de construirla. |
lint |
Ejecuta ESLint en los archivos .js y .vue del proyecto. |
format |
Ejecuta Prettier para formatear el código según las configuraciones. |
Control de Calidad
| Elemento |
Descripción |
| Pruebas |
No se configuran pruebas unitarias ni de integración. |
| |
|
DevOps / Automatización
| Elemento |
Descripción |
| Integración Continua |
No se mencionan explícitamente flujos de integración continua (CI). Sin embargo, la presencia de configuraciones de despliegue y scripts como build y host sugieren un enfoque manual para integración y despliegue. |
| Despliegue Continuo |
El despliegue se realiza utilizando el script host, que ejecuta el despliegue a Firebase Hosting. Sin embargo, no hay un flujo automático o un archivo específico para gestionar el despliegue continuo (CD). |
| Faltan archivos de CI/CD |
No hay archivos de configuración específicos para plataformas de CI/CD como GitHub Actions. |
| Automatización de Despliegue |
El script host despliega manualmente la aplicación al entorno de Firebase. |
| |
|
Análisis Técnico del Repositorio: totp-cc
Nombre del Proyecto: totp-cc
Repositorio: github.com/ogticrd/totp-cc
Este repositorio es una aplicación escrita en Go (Golang), que parece estar diseñada para generar y validar TOTP (Time-based One-Time Passwords) para ciudadanos como parte de un sistema de autenticación o verificación de identidad.
| Carpeta/Archivo |
Descripción |
config/ |
Contiene lógica de configuración general (config.go) y sus pruebas. Posiblemente gestiona valores de .env y configuración de entornos. |
database/ |
Lógica de conexión a base de datos, específicamente MongoDB. Incluye pruebas (mongodb_test.go). |
docs/ |
Archivos Swagger (swagger.json, swagger.yaml) para la documentación de API, y código Go relacionado (docs.go). |
internal/handlers/ |
Manejadores HTTP para generación y validación de TOTP (generate.go, validate.go). |
internal/routes/ |
Define las rutas HTTP para los endpoints de generación y validación. |
internal/models/ |
Estructuras de datos y lógica del dominio como citizentotp.go, validación y estructuras de respuesta. |
pkg/cipher/ |
Lógica criptográfica de cifrado AES-128 y pruebas unitarias. |
pkg/totp/ |
Implementación central del algoritmo TOTP, con pruebas. |
pkg/utils/ |
Funciones auxiliares o utilitarias generales. |
router/ |
Define el router principal de la aplicación (router.go), usando probablemente un framework como Gin o Echo. |
.env.example |
Archivo de ejemplo de variables de entorno. |
Dockerfile |
Para construir la imagen Docker de la aplicación. |
docker-compose.dev.yaml |
Compose para entorno de desarrollo. Posiblemente incluye MongoDB. |
Makefile |
Comandos automáticos para tareas comunes como build, test o lint. |
main.go |
Punto de entrada de la aplicación. Suele iniciar servidor, cargar configuración, rutas, etc. |
Control de Calidad
| Tipo de prueba |
Implementado |
Observaciones |
Unitarias (*_test.go) |
Sí |
Presentes en pkg/, config/, database/. |
| Integración |
No |
No se observan pruebas de flujo completo. |
| Cobertura con herramientas |
No |
No se detectó integración con coverage tools. |
Seguridad
| Elemento |
Estado / Recomendación |
| Manejo de secretos |
Usa .env.example. Se recomienda revisar claves críticas. |
| Cifrado |
AES-128 implementado correctamente. |
| Variables en entorno |
Bien gestionadas, pero falta validación de existencia obligatoria. |
Resumen de Arquitectura
| Componente |
Implementación |
| Tipo de Aplicación |
Microservicio en Go para generación/validación de TOTP. |
| Almacenamiento |
MongoDB. |
| API |
RESTful con documentación Swagger. |
| Autenticación / Seguridad |
Cifrado + TOTP (MFA o validación por usuario). |
| Despliegue Local |
Docker Compose (.dev.yaml). |
| Entrada Principal |
main.go arranca router + dependencias. |
DevOps / Automatización
| Elemento |
Estado / Observación |
| GitHub Actions / CI/CD |
No se encontró .github/workflows/ ni ningún pipeline CI/CD configurado. |
| Docker |
Dockerfile para una app en go. |
| Docker Compose |
Existe un archivo para entorno de desarrollo. |
| Despliegue automatizado |
No se identificó ningún script de despliegue automático. |
Tecnología
| Categoría |
Tecnología / Herramienta |
| Lenguaje |
Go (Golang) |
| Framework web |
Fiber |
| Contenedor |
Docker (multi-stage) |
| Base de imagen |
golang:1.22-alpine, scratch |
| Formato de build |
Go Modules (go.mod) |
Análisis Técnico del Repositorio: cc-institutions-mock-api
Nombre del Proyecto: cc-institutions-mock-api
Repositorio: github.com/ogticrd/cc-institutions-mock-api
API Mockup para proveer data fake de las Instituciones para la App Carpeta Ciudadana.
| Carpeta / Archivo |
Descripción breve |
.github/workflows/ |
Contiene workflows de GitHub Actions para CI/CD (clean, development, staging). |
cmd/seeders |
Probablemente incluye scripts para sembrar datos en la base de datos. |
config/config.go |
Archivo de configuración global de la app (env vars, puertos, etc). |
database/mongodb.go |
Inicialización y conexión a MongoDB. |
docs/ |
Contiene documentación Swagger (.json, .yaml) y archivo auxiliar. |
internals/ |
Lógica principal dividida en submódulos según entidad o institución. |
models/ |
Definiciones de modelos de datos usados por las APIs y la base de datos. |
router/router.go |
Inicializa las rutas HTTP del servidor. |
utils/utils.go |
Funciones auxiliares reutilizables (helpers). |
.dockerignore |
Archivos que se deben excluir del contexto de Docker. |
.env.example |
Variables de entorno de ejemplo para configurar localmente. |
Dockerfile |
Imagen Docker para compilar y ejecutar el backend. |
Makefile |
Tareas automatizadas (build, lint, run, etc). |
README.md |
Documentación inicial del proyecto. |
go.mod / go.sum |
Manejadores de dependencias de Go. |
main.go |
Punto de entrada principal de la aplicación Go. |
Módulos por dominio (internals/handlers y routes)
| Institución / Módulo |
Handler (handlers/) |
Rutas (routes/) |
Modelo (models/) |
Funcionalidad esperada |
| Educación |
educacion.go |
educacion.go |
educacion.go |
Consultas al Ministerio de Educación |
| Intrant |
intrant.go |
intrant.go |
intrant.go |
Licencias, tránsito y vehículos |
| JCE |
jce.go |
jce.go |
jce.go |
Datos de cédula y registro civil |
| MESCyT |
mescyt.go |
mescyt.go |
educacion.go |
Becas y títulos universitarios |
| Migración |
migracion.go |
migration.go |
migracion.go |
Entrada/salida del país |
| SIPEN |
sipen.go |
sipen.go |
pension.go |
Pensiones, AFP |
| SISALRIL |
sisalril.go |
sisalril.go |
sisalril.go |
Seguro familiar de salud |
| SNS |
sns.go |
sns.go |
sns.go |
Centros de salud, afiliación |
| Superseguros |
superseguros.go |
superseguros.go |
citizen.go (?) |
Información de seguros |
Documentación y APIs
| Archivo |
Propósito |
docs/swagger.yaml |
Definición OpenAPI de las rutas y modelos |
docs.go |
Generación o integración de Swagger posiblemente con comentarios Go |
README.md |
Introducción al proyecto y guía de uso |
Tecnología
| Elemento |
Descripción |
| Tecnología Backend |
Go (Golang) |
| Framework |
Ninguno especificado; se utiliza Go nativo para implementar la lógica del backend. |
| Base de Datos |
MongoDB |
| Archivos de Configuración |
Archivos como config.go y database.go sugieren la configuración de la base de datos y otros parámetros del sistema. |
| Entorno de Desarrollo |
El repositorio contiene un Makefile, Dockerfile, y archivos de configuración como .env.example que permiten configurar y ejecutar el entorno de desarrollo. |
| Contenedores |
El repositorio contiene un Dockerfile que permite construir una imagen Docker para el backend. |
| CI/CD |
El repositorio incluye workflows de CI/CD en .github/workflows/, como clean.yml, development.yml, staging.yml, que gestionan despliegues automáticos. |
| Dependencias |
go.mod y go.sum indican que el proyecto usa Go Modules para gestionar las dependencias del proyecto. |
| Servicios |
El backend parece estar dividido en varios servicios, como citizenapi, con distintos manejadores en handlers que se encargan de diferentes aspectos del servicio. |
| Documentación |
Se incluyen archivos de documentación como swagger.json y swagger.yaml, que pueden describir las APIs del servicio. |
DevOps / Automatización
| Área |
Herramienta/Archivo |
Comentarios |
| CI/CD |
.github/workflows (presente) |
GitHub Actions configurado (ej. limpieza de caché, tests) |
| Contenedores |
Dockerfile |
Contenedor de pruebas configurado |
| Seguridad |
|
Monitoreo automático de versiones y alertas |
Análisis de Workflows CI/CD (.github/workflows/)
| Archivo |
Descripción |
| development.yml |
Desplegar entorno de desarrollo en Cloud Run |
| staging.yml |
Desplegar a entorno de preproducción (staging) |
| clean.yml |
Eliminar recursos temporales de PR cerrados |