Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
307 lines
9.7 KiB
YAML
307 lines
9.7 KiB
YAML
# TRACEABILITY - MAI-002: Proyectos y Estructura de Obra
|
|
metadata:
|
|
modulo: MAI-002
|
|
nombre: Proyectos y Estructura de Obra
|
|
version: 1.0.0
|
|
fecha: 2025-12-06
|
|
reutilizacion_core: 40%
|
|
descripcion: >
|
|
Sistema de gestión de proyectos de construcción inmobiliaria con estructura jerárquica
|
|
(Fraccionamiento → Etapa → Manzana → Lote → Vivienda), prototipos de vivienda,
|
|
asignación de equipo y calendario de obra.
|
|
|
|
requerimientos:
|
|
- id: RF-PROJ-001
|
|
titulo: Catálogo de Proyectos
|
|
descripcion: >
|
|
Gestión completa de proyectos de construcción inmobiliaria incluyendo
|
|
fraccionamientos, conjuntos habitacionales y edificios verticales con
|
|
información general, ubicación, datos del cliente, permisos legales y
|
|
estados del ciclo de vida.
|
|
especificaciones:
|
|
- ET-PROJ-001-implementacion-catalogo-proyectos
|
|
- ET-PROJ-001-rls-policies
|
|
historias_usuario:
|
|
- US-PROJ-001-catalogo-proyectos
|
|
- US-PROJ-002-transiciones-estado
|
|
tablas:
|
|
- project_management.projects
|
|
- project_management.project_documents
|
|
- project_management.project_metrics
|
|
endpoints:
|
|
- POST /api/v1/projects
|
|
- GET /api/v1/projects
|
|
- GET /api/v1/projects/:id
|
|
- PATCH /api/v1/projects/:id
|
|
- POST /api/v1/projects/:id/change-status
|
|
- GET /api/v1/projects/:id/metrics
|
|
- GET /api/v1/projects/:id/dashboard
|
|
- POST /api/v1/projects/:id/documents
|
|
- GET /api/v1/projects/:id/documents
|
|
componentes_ui:
|
|
- ProjectList
|
|
- ProjectCard
|
|
- ProjectForm
|
|
- ProjectDetail
|
|
- ProjectDashboard
|
|
- ProjectMetrics
|
|
- ProjectStatusBadge
|
|
- ProjectDocuments
|
|
estado: pendiente
|
|
prioridad: P0
|
|
dependencias:
|
|
- RF-AUTH-002 (Roles y permisos)
|
|
- RF-AUTH-003 (Multi-tenancy por constructora)
|
|
validaciones:
|
|
- Nombre único por constructora
|
|
- Transiciones de estado válidas
|
|
- Monto contratado > 0
|
|
- Fecha inicio < fecha fin
|
|
- RFC válido (12-13 caracteres)
|
|
|
|
- id: RF-PROJ-002
|
|
titulo: Estructura Jerárquica de Obra
|
|
descripcion: >
|
|
Definición y gestión de la estructura jerárquica de proyectos de construcción
|
|
organizando el desarrollo en Etapas → Manzanas (opcional) → Lotes → Viviendas.
|
|
Permite rastrear avances físicos, asignar presupuestos y gestionar entregas
|
|
de forma granular.
|
|
especificaciones:
|
|
- ET-PROJ-002-implementacion-estructura-jerarquica
|
|
- ET-PROJ-002-rls-policies
|
|
historias_usuario:
|
|
- US-PROJ-003-estructura-fraccionamiento
|
|
- US-PROJ-004-estructura-torre-vertical
|
|
tablas:
|
|
- project_management.stages
|
|
- project_management.blocks
|
|
- project_management.lots
|
|
- project_management.housing_units
|
|
- project_management.unit_progress
|
|
endpoints:
|
|
- POST /api/v1/projects/:projectId/stages
|
|
- GET /api/v1/projects/:projectId/stages
|
|
- GET /api/v1/stages/:id
|
|
- PATCH /api/v1/stages/:id
|
|
- DELETE /api/v1/stages/:id
|
|
- POST /api/v1/stages/:stageId/blocks
|
|
- GET /api/v1/stages/:stageId/blocks
|
|
- POST /api/v1/blocks/:blockId/lots
|
|
- GET /api/v1/blocks/:blockId/lots
|
|
- PATCH /api/v1/lots/:id
|
|
- POST /api/v1/lots/:lotId/housing
|
|
- GET /api/v1/housing-units/:id
|
|
- PATCH /api/v1/housing-units/:id/status
|
|
- GET /api/v1/projects/:id/hierarchy
|
|
componentes_ui:
|
|
- StageList
|
|
- StageForm
|
|
- BlockList
|
|
- BlockForm
|
|
- LotList
|
|
- LotForm
|
|
- HousingUnitCard
|
|
- HousingUnitDetail
|
|
- ProjectHierarchyTree
|
|
- ProgressTracker
|
|
estado: pendiente
|
|
prioridad: P0
|
|
dependencias:
|
|
- RF-PROJ-001 (Catálogo de proyectos)
|
|
- RF-PROJ-003 (Prototipos - para asignación)
|
|
validaciones:
|
|
- Códigos únicos dentro del proyecto
|
|
- Jerarquía válida (lote → manzana → etapa)
|
|
- Suma de lotes = total declarado en etapa
|
|
- Área de lote > 0
|
|
- Estado secuencial (no saltar estados)
|
|
|
|
- id: RF-PROJ-003
|
|
titulo: Prototipos de Vivienda
|
|
descripcion: >
|
|
Creación y gestión de prototipos de vivienda estandarizados (casas, departamentos,
|
|
dúplex) que sirven como plantillas para asignación a lotes. Define características
|
|
arquitectónicas, áreas, distribución, acabados estándar y costos estimados.
|
|
especificaciones:
|
|
- ET-PROJ-003-implementacion-prototipos
|
|
historias_usuario:
|
|
- US-PROJ-005-gestion-prototipos
|
|
- US-PROJ-006-asignacion-prototipos-lotes
|
|
tablas:
|
|
- project_management.housing_prototypes
|
|
- project_management.prototype_versions
|
|
- project_management.prototype_documents
|
|
- project_management.prototype_costs
|
|
endpoints:
|
|
- POST /api/v1/prototypes
|
|
- GET /api/v1/prototypes
|
|
- GET /api/v1/prototypes/:id
|
|
- PATCH /api/v1/prototypes/:id
|
|
- DELETE /api/v1/prototypes/:id
|
|
- POST /api/v1/prototypes/:id/versions
|
|
- GET /api/v1/prototypes/:id/versions
|
|
- POST /api/v1/prototypes/:id/documents
|
|
- POST /api/v1/lots/bulk-assign-prototypes
|
|
componentes_ui:
|
|
- PrototypeList
|
|
- PrototypeCard
|
|
- PrototypeForm
|
|
- PrototypeDetail
|
|
- PrototypeVersionHistory
|
|
- PrototypeCostCalculator
|
|
- BulkPrototypeAssignment
|
|
- PrototypeComparison
|
|
estado: pendiente
|
|
prioridad: P1
|
|
dependencias:
|
|
- RF-PROJ-002 (Para asignación a lotes)
|
|
validaciones:
|
|
- Código único por constructora
|
|
- Área construida > 0
|
|
- Costo por m² > 0
|
|
- Versiones secuenciales
|
|
- Archivos válidos (PDF, JPG, PNG, DWG)
|
|
|
|
- id: RF-PROJ-004
|
|
titulo: Asignación de Equipo y Calendario
|
|
descripcion: >
|
|
Asignación de personal clave al proyecto (director, residentes, ingenieros,
|
|
supervisores) y gestión del calendario general de obra con hitos, fases
|
|
constructivas y fechas críticas para facilitar organización y seguimiento.
|
|
especificaciones:
|
|
- ET-PROJ-004-implementacion-equipo-calendario
|
|
historias_usuario:
|
|
- US-PROJ-007-asignacion-equipo
|
|
- US-PROJ-008-calendario-hitos
|
|
- US-PROJ-009-alertas-fechas-criticas
|
|
tablas:
|
|
- project_management.project_team_assignments
|
|
- project_management.project_milestones
|
|
- project_management.construction_phases
|
|
- project_management.critical_dates
|
|
- project_management.milestone_dependencies
|
|
endpoints:
|
|
- POST /api/v1/projects/:id/team-assignments
|
|
- GET /api/v1/projects/:id/team-assignments
|
|
- PATCH /api/v1/team-assignments/:id
|
|
- DELETE /api/v1/team-assignments/:id
|
|
- GET /api/v1/users/:userId/workload
|
|
- POST /api/v1/projects/:id/milestones
|
|
- GET /api/v1/projects/:id/milestones
|
|
- PATCH /api/v1/milestones/:id/complete
|
|
- POST /api/v1/projects/:id/phases
|
|
- GET /api/v1/projects/:id/phases
|
|
- POST /api/v1/projects/:id/critical-dates
|
|
- GET /api/v1/projects/:id/critical-dates
|
|
- GET /api/v1/projects/:id/calendar
|
|
componentes_ui:
|
|
- TeamAssignmentList
|
|
- TeamAssignmentForm
|
|
- WorkloadChart
|
|
- MilestoneList
|
|
- MilestoneForm
|
|
- MilestoneTimeline
|
|
- PhaseList
|
|
- PhaseGantt
|
|
- CriticalDatesList
|
|
- ProjectCalendar
|
|
- AlertsPanel
|
|
estado: pendiente
|
|
prioridad: P1
|
|
dependencias:
|
|
- RF-AUTH-002 (Usuarios y roles)
|
|
- RF-HR-001 (Empleados - para cuadrillas)
|
|
validaciones:
|
|
- Director único por proyecto
|
|
- Residente obligatorio en ejecución
|
|
- Límite de carga de trabajo por rol
|
|
- Fechas lógicas (inicio < fin)
|
|
- Dependencias de hitos válidas
|
|
|
|
cobertura:
|
|
rf_total: 4
|
|
rf_con_et: 4
|
|
rf_con_us: 9
|
|
rf_implementados: 0
|
|
porcentaje: 0%
|
|
|
|
metricas_desarrollo:
|
|
tablas_total: 17
|
|
endpoints_total: 52
|
|
componentes_ui_total: 43
|
|
validaciones_total: 20
|
|
dependencias_externas: 4
|
|
|
|
integracion:
|
|
modulos_core:
|
|
- MAI-001 (Autenticación y Multi-tenancy)
|
|
modulos_verticales:
|
|
- MAI-003 (Presupuesto - vinculación por etapa)
|
|
- MAI-004 (Compras e Inventarios - almacén por proyecto)
|
|
- MAI-005 (Control de Obra - avances por vivienda)
|
|
- MAI-007 (RRHH - cuadrillas asignadas)
|
|
|
|
stack_tecnologico:
|
|
backend:
|
|
- NestJS + TypeORM
|
|
- PostgreSQL 15+
|
|
- Event-driven architecture
|
|
frontend:
|
|
- React + TypeScript
|
|
- React Query (TanStack)
|
|
- Zod validation
|
|
- Shadcn/UI components
|
|
storage:
|
|
- S3-compatible para documentos
|
|
- PostGIS para coordenadas (opcional)
|
|
|
|
estados_entidades:
|
|
proyecto:
|
|
- licitacion
|
|
- adjudicado
|
|
- ejecucion
|
|
- entregado
|
|
- cerrado
|
|
etapa:
|
|
- planeada
|
|
- en_proceso
|
|
- terminada
|
|
- entregada
|
|
lote:
|
|
- disponible
|
|
- vendido
|
|
- en_construccion
|
|
- terminado
|
|
- entregado
|
|
vivienda:
|
|
- disponible
|
|
- en_proceso
|
|
- terminada
|
|
- entregada
|
|
hito:
|
|
- pending
|
|
- in_progress
|
|
- completed
|
|
- delayed
|
|
|
|
notas_implementacion:
|
|
- Implementar Row-Level Security (RLS) por constructoraId en todas las tablas
|
|
- Código de proyecto autogenerado: PROJ-{YEAR}-{SEQUENCE}
|
|
- Validar transiciones de estado con máquina de estados
|
|
- Calcular métricas de forma asíncrona (avances, costos)
|
|
- Emitir eventos para notificaciones (project.created, status_changed, etc.)
|
|
- Soportar versionado de prototipos sin afectar construcciones existentes
|
|
- Validar límites de carga de trabajo al asignar personal
|
|
- Implementar alertas automáticas para fechas críticas (cron job)
|
|
- Permitir estructura flexible (con/sin manzanas para edificios verticales)
|
|
- Mantener historial de asignaciones de equipo con fechas de inicio/fin
|
|
|
|
estimaciones:
|
|
esfuerzo_total: 8 semanas
|
|
desarrolladores: 2 full-stack
|
|
desglose:
|
|
- RF-PROJ-001: 2 semanas
|
|
- RF-PROJ-002: 3 semanas
|
|
- RF-PROJ-003: 1.5 semanas
|
|
- RF-PROJ-004: 1.5 semanas
|