18 KiB
Análisis de Reutilización de Componentes GAMILIT para MVP Inmobiliario
Proyecto Origen: GAMILIT (Plataforma Educativa) Proyecto Destino: Sistema de Administración de Obra e INFONAVIT Fecha Análisis: 2025-11-17 Stack Tecnológico: Node.js + Express + TypeScript | React + Vite | PostgreSQL
Resumen Ejecutivo
Este documento analiza qué componentes del proyecto GAMILIT pueden ser reutilizados en el desarrollo del MVP inmobiliario, estimando el ahorro de tiempo y esfuerzo.
Resultado estimado:
- Reducción de tiempo de desarrollo: 30-40% (similar a lo estimado en el MVP-APP.md)
- Código ya probado en producción: ~60% de la infraestructura base
- Ahorro estimado: ~6-8 semanas de desarrollo
1. Componentes Reutilizables de GAMILIT
1.1 Infraestructura Base (Reutilización: 90%)
Backend (Node.js + Express + TypeScript)
| Componente | Archivo Origen GAMILIT | Aplicación Inmobiliaria | Adaptación Requerida |
|---|---|---|---|
| Sistema de Autenticación JWT | apps/backend/src/modules/auth/ |
Autenticación de usuarios (Dirección, Ingeniería, Residentes, etc.) | Mínima - Ajustar roles |
| RBAC (Roles y Permisos) | apps/backend/src/shared/guards/roles.guard.ts |
Sistema de permisos por perfil (7 roles del MVP) | Media - Adaptar roles específicos |
| Multi-tenancy | apps/database/ddl/schemas/auth_management/ |
Soporte de múltiples constructoras | Mínima - Ya implementado |
| Row Level Security (RLS) | Políticas RLS en PostgreSQL | Seguridad a nivel de datos por proyecto/obra | Media - Adaptar políticas |
| Sistema de Auditoría | apps/database/ddl/schemas/audit_logging/ |
Bitácora de actividades y cambios críticos | Mínima - Reutilización directa |
| Middleware de Validación | apps/backend/src/shared/middleware/ |
Validación de entrada en endpoints | Mínima - Reutilización directa |
| Manejo de Errores | apps/backend/src/shared/filters/ |
Gestión centralizada de errores | Ninguna - Reutilización directa |
| Logging Estructurado | Winston/Pino config | Logs estructurados con niveles | Ninguna - Reutilización directa |
| Gestión de Archivos | Sistema de uploads | Gestión de documentos, planos, fotos | Baja - Adaptación de categorías |
Ahorro estimado Backend: 3-4 semanas
Frontend Web (React + Vite + TypeScript)
| Componente | Archivo Origen GAMILIT | Aplicación Inmobiliaria | Adaptación Requerida |
|---|---|---|---|
| Componentes UI Base | apps/frontend/src/components/ui/ |
Botones, Inputs, Modales, Alerts | Ninguna - Reutilización directa |
| Sistema de Formularios | React Hook Form + Zod | Formularios de captura (avances, compras, etc.) | Baja - Adaptación de esquemas |
| Tablas con Paginación | apps/frontend/src/components/tables/ |
Listados de obras, presupuestos, compras | Baja - Adaptación de columnas |
| Dashboards y Gráficos | Chart.js / Recharts | Dashboards de obra, desviaciones, KPIs | Media - Nuevas métricas |
| Layouts Responsivos | apps/frontend/src/layouts/ |
Layout principal admin + móvil | Baja - Adaptación de menús |
| Autenticación y Rutas Protegidas | apps/frontend/src/guards/ |
Protección de rutas por rol | Mínima - Ajustar roles |
| Hooks Personalizados | apps/frontend/src/hooks/ |
useApi, useAuth, useForm | Ninguna - Reutilización directa |
| Sistema de Notificaciones | Toast/Alerts | Notificaciones de sistema | Ninguna - Reutilización directa |
| State Management (Zustand) | Stores de autenticación, perfiles | Stores para obras, presupuestos, etc. | Media - Nuevos stores |
Ahorro estimado Frontend: 2-3 semanas
Base de Datos (PostgreSQL 15+)
| Componente | Archivo Origen GAMILIT | Aplicación Inmobiliaria | Adaptación Requerida |
|---|---|---|---|
| Schemas Modulares | Organización por dominios | Schemas por módulo (projects, budgets, purchases, etc.) | Media - Nueva organización |
| Políticas RLS | Row Level Security | Políticas por proyecto/obra | Media - Adaptación de políticas |
| Triggers de Auditoría | Triggers automáticos | Auditoría de cambios críticos | Baja - Reutilización con ajustes |
| Funciones Comunes | gamilit.now_mexico(), gamilit.get_current_user_id() |
Funciones de utilidad | Ninguna - Reutilización directa |
| Sistema de Migraciones | Control de versiones DDL | Gestión de cambios en BD | Ninguna - Reutilización directa |
| ENUMs para Estados | Estados de cuenta, tipos | Estados de obra, estimaciones, etc. | Alta - Nuevos ENUMs específicos |
Ahorro estimado Database: 1-2 semanas
1.2 Patrones Arquitectónicos (Reutilización: 100%)
Estos patrones se copian directamente sin modificación:
| Patrón | Descripción | Beneficio |
|---|---|---|
| Repository/Service | Separación de lógica de negocio y acceso a datos | Código limpio y testeable |
| Modularización por Dominio | Organización /modules/{domain} |
Escalabilidad y mantenibilidad |
| DTOs con Validación | class-validator + class-transformer | Validación robusta de entrada |
| Guards y Decorators | @Roles(), @Public(), @CurrentUser() | Seguridad declarativa |
| Error Handling Centralizado | Exception filters personalizados | Respuestas consistentes |
| Testing Patterns | Unit + E2E tests con Jest | Cobertura de tests |
2. Mapeo de Funcionalidades GAMILIT → Inmobiliario
2.1 Equivalencias Directas
| GAMILIT | Inmobiliario | Reutilización |
|---|---|---|
students tabla |
employees / beneficiaries |
70% - Cambio de nombres |
courses tabla |
projects |
60% - Similar estructura jerárquica |
modules tabla |
stages (etapas de obra) |
50% - Concepto similar |
activities tabla |
tasks / checklists |
70% - Similar tracking |
progress_tracking schema |
progress_tracking (avances de obra) |
80% - Muy similar |
user_stats tabla |
project_stats |
70% - Métricas similares |
achievements tabla |
milestones (hitos de proyecto) |
50% - Concepto adaptable |
| Sistema de notificaciones | Alertas de desviaciones/hitos | 90% - Reutilización directa |
2.2 Adaptaciones Conceptuales
GAMILIT: Sistema de "Aulas" con profesores y estudiantes Inmobiliario: Sistema de "Proyectos/Obras" con equipo asignado
GAMILIT: Tracking de "Progreso en Ejercicios" Inmobiliario: Tracking de "Avances Físicos de Obra"
GAMILIT: Sistema de "ML Coins" (monedas lectoras) Inmobiliario: Sistema de "Presupuesto vs Costo Real"
GAMILIT: "Rangos Maya" de progreso Inmobiliario: "Estados de Obra" (Licitación, Ejecución, Entrega, etc.)
3. Mapeo de Módulos a Épicas
Fase 1: Alcance Inicial (14 semanas) - 6 Épicas
Presupuesto Estimado: $150,000 MXN Story Points: ~280 SP
| Épica | Nombre | Módulos MVP Relacionados | Reutilización GAMILIT | Presupuesto | SP |
|---|---|---|---|---|---|
| MAI-001 | Fundamentos | Módulo 13 (Admin & Seguridad) | EAI-001 (90%) | $25,000 | 50 |
| MAI-002 | Proyectos y Estructura de Obra | Módulo 1 (Proyectos, Obras, Viviendas) | EAI-002 (40%) | $25,000 | 45 |
| MAI-003 | Presupuestos y Control de Costos | Módulo 2 (Presupuestos y Costos) | Nuevo (10%) | $25,000 | 50 |
| MAI-004 | Compras e Inventarios | Módulo 3, 4 (Compras, Inventarios) | Nuevo (15%) | $25,000 | 50 |
| MAI-005 | Control de Obra y Avances | Módulo 6 (Control de Obra y Avances) | EAI-002 (60%) | $25,000 | 45 |
| MAI-006 | Reportes y Analytics Base | Módulo 12 (Reportes & BI) | EAI-004 (70%) | $25,000 | 40 |
Total Fase 1: $150,000 MXN | 280 SP | ~14 semanas
Fase 2: Gestión Avanzada (10 semanas) - 5 Épicas
Presupuesto Estimado: $125,000 MXN Story Points: ~220 SP
| Épica | Nombre | Módulos MVP Relacionados | Reutilización GAMILIT | Presupuesto | SP |
|---|---|---|---|---|---|
| MAI-007 | Contratos y Estimaciones | Módulo 5, 7 (Contratos, Estimaciones) | Nuevo (20%) | $25,000 | 45 |
| MAI-008 | RRHH y Nómina de Obra | Módulo 8 (RRHH, Asistencias) | EAI-005 (30%) | $25,000 | 45 |
| MAI-009 | Calidad y Postventa | Módulo 9 (Calidad, Garantías) | Nuevo (25%) | $25,000 | 45 |
| MAI-010 | CRM Derechohabientes | Módulo 10 (CRM) | Nuevo (30%) | $25,000 | 40 |
| MAI-011 | INFONAVIT & Cumplimiento | Módulo 11 (INFONAVIT) | Nuevo (10%) | $25,000 | 45 |
Total Fase 2: $125,000 MXN | 220 SP | ~10 semanas
Fase 3: IA y Extensiones (6 semanas) - 2 Épicas
Presupuesto Estimado: $75,000 MXN Story Points: ~140 SP
| Épica | Nombre | Módulos MVP Relacionados | Reutilización GAMILIT | Presupuesto | SP |
|---|---|---|---|---|---|
| MAI-012 | Admin y Configuración Avanzada | Módulo 13 (Admin completo) | EAI-005, EAI-006 (60%) | $25,000 | 50 |
| MAI-013 | IA, WhatsApp Business y App Móvil | Agente IA, WhatsApp, App React Native | Nuevo (20%) | $50,000 | 90 |
Total Fase 3: $75,000 MXN | 140 SP | ~6 semanas
4. Desglose de Reutilización por Componente
4.1 Infraestructura y Base (Sprint 0)
| Componente | Origen GAMILIT | Tiempo sin Reutilización | Tiempo con Reutilización | Ahorro |
|---|---|---|---|---|
| Sistema de Autenticación | 2 semanas | 3 días | 65% | |
| RBAC | 1.5 semanas | 2 días | 70% | |
| Configuración Base de Datos | 1 semana | 3 días | 60% | |
| UI Base y Layouts | 3 semanas | 1 semana | 67% | |
| Dashboards Base | 2 semanas | 1 semana | 50% | |
| Sistema de Formularios | 1.5 semanas | 3 días | 60% | |
| TOTAL Sprint 0 | 11 semanas | 3.8 semanas | ~65% |
4.2 Módulos de Negocio
| Módulo MVP | Complejidad | Reutilización GAMILIT | Tiempo Estimado (sin/con) |
|---|---|---|---|
| 1. Proyectos y Obras | Media | 40% | 3 sem / 2 sem |
| 2. Presupuestos | Alta | 10% | 4 sem / 3.5 sem |
| 3. Compras | Media | 15% | 3 sem / 2.5 sem |
| 4. Inventarios | Media | 20% | 3 sem / 2.5 sem |
| 5. Contratos | Alta | 20% | 4 sem / 3 sem |
| 6. Control de Obra | Alta | 60% | 4 sem / 2 sem |
| 7. Estimaciones | Alta | 25% | 4 sem / 3 sem |
| 8. RRHH | Media | 30% | 3 sem / 2 sem |
| 9. Calidad/Postventa | Media | 25% | 3 sem / 2.5 sem |
| 10. CRM | Media | 30% | 3 sem / 2 sem |
| 11. INFONAVIT | Alta | 10% | 4 sem / 3.5 sem |
| 12. Reportes/BI | Media | 70% | 3 sem / 1.5 sem |
| 13. Admin | Baja | 80% | 2 sem / 0.5 sem |
5. Plan de Migración de Componentes
Sprint 0: Migración de Base (1 semana)
Componentes a migrar:
- Sistema de autenticación JWT
- Middleware de autenticación y autorización
- Sistema de logging estructurado
- Componentes UI base (Buttons, Inputs, Modales)
- Layouts principales
- Setup de base de datos con schemas modulares
Actividades:
- Crear repositorio con estructura base de GAMILIT
- Migrar sistema de autenticación completo
- Setup de base de datos con schemas modulares
- Migrar componentes UI base
- Configurar sistema de logging y error handling
Sprint 1-2: Fundamentos (2 semanas)
Componentes a adaptar:
-
Sistema de roles específicos de construcción:
student→resident(Residente de obra)admin_teacher→engineer(Ingeniero)super_admin→director(Director de obra)- Nuevos:
purchases,finance,hr,post_sales
-
Layouts y navegación:
- Adaptar menú principal
- Crear dashboards por rol
-
Sistema de permisos:
- Adaptar RLS policies para obras/proyectos
- Definir permisos por módulo
Sprint 3+: Módulos de Negocio
Estrategia:
- Reutilizar patrones de tracking de GAMILIT para "Control de Obra"
- Adaptar sistema de "Aulas" a "Proyectos/Obras"
- Crear nuevos módulos específicos (Presupuestos, Compras, Contratos)
- Reutilizar componentes de dashboards y gráficos
6. Consideraciones Técnicas
6.1 Diferencias de Dominio
| Aspecto | GAMILIT | MVP Inmobiliario | Impacto |
|---|---|---|---|
| Modelo de Datos | Educativo (cursos, módulos, ejercicios) | Constructivo (obras, etapas, conceptos) | Alto - Nuevas entidades |
| Flujos de Trabajo | Lineal (progreso en curso) | Complejo (múltiples frentes paralelos) | Alto - Nueva lógica |
| Roles de Usuario | Estudiante, Profesor, Admin | 7 roles específicos de construcción | Medio - Adaptación de RBAC |
| Métricas | Educativas (XP, progreso, logros) | Financieras (presupuesto, costo, avance) | Alto - Nuevas métricas |
| Integraciones | OAuth social | WhatsApp Business, INFONAVIT | Alto - Nuevas integraciones |
6.2 Términos a Adaptar
| GAMILIT | MVP Inmobiliario |
|---|---|
students |
employees / beneficiaries |
teachers |
engineers / residents |
courses |
projects |
modules |
stages (etapas) |
activities |
tasks / work_items |
progress |
physical_progress / financial_progress |
achievements |
milestones |
classrooms |
construction_sites / work_fronts |
xp_points |
progress_percentage |
ml_coins |
budget_balance |
7. Estrategia de Mantenimiento del Código Compartido
7.1 Componentes Compartidos
Opción 1: Copiar y Divergir
- Copiar componentes de GAMILIT al proyecto inmobiliario
- Evolucionar independientemente
- Ventaja: Independencia total
- Desventaja: Duplicación de código
Opción 2: Librería Compartida (Futuro)
- Extraer componentes comunes a librería npm privada
- Compartir entre GAMILIT e Inmobiliario
- Ventaja: Reutilización real, fixes compartidos
- Desventaja: Complejidad adicional
Recomendación: Opción 1 para MVP, Opción 2 en Fase 2
7.2 Documentación de Componentes Reutilizados
Todos los componentes reutilizados deben documentarse con:
/**
* @reused-from GAMILIT
* @original-file apps/backend/src/shared/guards/roles.guard.ts
* @adaptations
* - Roles específicos de construcción
* - Permisos por proyecto/obra
* @last-sync 2025-11-17
*/
8. Estimación de Ahorro
8.1 Resumen por Fase
| Fase | Sin Reutilización | Con Reutilización | Ahorro |
|---|---|---|---|
| Fase 1 | 20 semanas | 14 semanas | 30% |
| Fase 2 | 14 semanas | 10 semanas | 29% |
| Fase 3 | 8 semanas | 6 semanas | 25% |
| TOTAL | 42 semanas | 30 semanas | ~29% |
Ahorro total estimado: 12 semanas (~3 meses)
8.2 Resumen por Componente
| Componente | Ahorro Estimado |
|---|---|
| Autenticación | 65% |
| UI Base | 67% |
| Dashboards | 50% |
| Formularios | 60% |
| BD Setup | 60% |
| Logging/Auditoría | 90% |
| Middleware | 85% |
| PROMEDIO | ~65% |
9. Riesgos y Mitigaciones
9.1 Riesgos Identificados
| Riesgo | Probabilidad | Impacto | Mitigación |
|---|---|---|---|
| Incompatibilidad de versiones | Media | Alto | Documentar versiones exactas de dependencias |
| Over-engineering | Media | Medio | Simplificar componentes no necesarios |
| Divergencia de arquitectura | Baja | Alto | Mantener patrones consistentes |
| Deuda técnica | Media | Medio | Code reviews rigurosos |
9.2 Plan de Mitigación
- Sprint 0 obligatorio: No saltar directo a módulos de negocio
- Code reviews cruzados: Team GAMILIT revisa código inmobiliario
- Documentación exhaustiva: Cada adaptación debe documentarse
- Tests rigurosos: Mantener >80% coverage como en GAMILIT
10. Conclusiones y Recomendaciones
10.1 Componentes Prioritarios a Reutilizar
Alta Prioridad (Reutilizar tal cual):
- Sistema de autenticación JWT
- RBAC y guards
- Logging y auditoría
- Componentes UI base
- Middleware de validación
- Error handling
Media Prioridad (Adaptar):
- Sistema de tracking de progreso → Avances de obra
- Dashboards y gráficos → Dashboards de obra
- Sistema de notificaciones
- Gestión de archivos
Baja Prioridad (Inspiración):
- Sistema de gamificación → No aplica
- Achievements → Hitos de proyecto (concepto adaptado)
10.2 Roadmap Recomendado
Semanas 1-2: Sprint 0 (Migración de Base)
- Configurar repositorio
- Migrar infraestructura base
- Adaptar sistema de autenticación
Semanas 3-6: Fase 1A (Fundamentos + Proyectos)
- MAI-001: Fundamentos
- MAI-002: Proyectos y Estructura
Semanas 7-14: Fase 1B (Core de Obra)
- MAI-003: Presupuestos
- MAI-004: Compras e Inventarios
- MAI-005: Control de Obra
- MAI-006: Reportes Base
Semanas 15-24: Fase 2 (Gestión Avanzada)
- MAI-007 a MAI-011
Semanas 25-30: Fase 3 (IA y Extensiones)
- MAI-012 y MAI-013
10.3 KPIs de Éxito
| KPI | Target |
|---|---|
| Tiempo de desarrollo | ≤ 30 semanas |
| Reducción vs desarrollo desde cero | ≥ 25% |
| Código reutilizado | ≥ 50% de infraestructura |
| Coverage de tests | ≥ 80% |
| Bugs críticos en producción | 0 |
Apéndice A: Checklist de Migración
Infraestructura Base
- Sistema de autenticación JWT
- Guards y decorators
- Middleware de validación
- Error handlers
- Logging estructurado
- Sistema de auditoría
- Gestión de archivos
- RLS policies base
Frontend
- Componentes UI base
- Layouts principales
- Sistema de formularios
- Tablas con paginación
- Dashboards base
- Hooks personalizados
- Guards de routing
- State management
Database
- Schemas modulares
- Funciones comunes
- Triggers de auditoría
- Sistema de migraciones
- Seeds de datos de prueba
Documento generado: 2025-11-17 Autor: Análisis Técnico Versión: 1.0 Próxima revisión: Post Sprint 0