erp-construccion/orchestration/inventarios/FRONTEND_INVENTORY.yml

724 lines
19 KiB
YAML

# =============================================================================
# FRONTEND INVENTORY - ERP CONSTRUCCION
# =============================================================================
# Version: 1.0.0
# Ultima actualizacion: 2025-12-06
# Proposito: Inventario canonico de objetos frontend (web + mobile)
# =============================================================================
metadata:
proyecto: ERP Construccion
version: 1.0.0
fecha_actualizacion: 2025-12-06
base_core: erp-core
# =============================================================================
# STACK TECNOLOGICO - WEB
# =============================================================================
stack_web:
framework: React 18.2+
build_tool: Vite 5.x
language: TypeScript 5.3+
state_management: Zustand 4.x
forms: React Hook Form + Zod
styling: Tailwind CSS 4.x
routing: React Router 6.x
http_client: Axios
charts: Recharts
tables: TanStack Table
maps: Leaflet (para geolocalizacion)
# =============================================================================
# STACK TECNOLOGICO - MOBILE
# =============================================================================
stack_mobile:
framework: React Native 0.73
platform: Expo 50
language: TypeScript 5.3+
state_management: Zustand 4.x
navigation: React Navigation 6.x
offline_storage: WatermelonDB
camera: expo-camera
location: expo-location
biometrics: expo-local-authentication
push: Firebase Cloud Messaging
# =============================================================================
# CONFIGURACION
# =============================================================================
configuracion:
web:
puerto: 5174
api_url: http://localhost:3100
mobile:
bundle_ios: com.construccion.mvp
bundle_android: com.construccion.mvp
# =============================================================================
# RESUMEN DE COMPONENTES
# =============================================================================
resumen:
web:
pages: 45
components: 180
stores: 20
hooks: 35
services: 18
mobile:
screens: 25
components: 60
stores: 8
hooks: 15
services: 10
apps: 5
# ESTADO REAL DE IMPLEMENTACIÓN (2025-12-08)
estado_implementacion:
web:
porcentaje: "2%"
archivos_existentes: 3
components_implementados: 0
pages_implementadas: 0
stores_implementados: 0
mobile:
porcentaje: "0%"
archivos_existentes: 0
nota: "Mobile no iniciado"
gap_documentacion_vs_codigo:
documentacion_md: 449
archivos_frontend: 3
ratio: "0.6%"
herencia_core:
version_core: "1.1.0"
base: "apps/erp-core/"
componentes_compartidos:
- UI Components (Button, Input, Modal, etc.)
- Layout Components (MainLayout, Sidebar)
- Hooks (useAuth, useTenant, useApi)
- Services (apiClient, authService)
stores_base:
- useAuthStore
- useTenantStore
- useNotificationsStore
# =============================================================================
# FRONTEND WEB - MODULOS
# =============================================================================
web_modulos:
# ---------------------------------------------------------------------------
# Dashboard Principal
# ---------------------------------------------------------------------------
- modulo: dashboard
ubicacion: src/features/dashboard/
pages:
- nombre: DashboardPage
ruta: /dashboard
descripcion: Vista ejecutiva general
components:
- nombre: KPICard
descripcion: Tarjeta de indicador clave
- nombre: ProjectProgressChart
descripcion: Grafico de avance por proyecto
- nombre: BudgetVsRealChart
descripcion: Comparativo presupuesto vs real
- nombre: RecentActivityFeed
descripcion: Actividad reciente
- nombre: AlertsWidget
descripcion: Alertas y notificaciones
stores:
- nombre: useDashboardStore
estado: [kpis, projects, alerts, loading]
# ---------------------------------------------------------------------------
# MAI-002: Proyectos
# ---------------------------------------------------------------------------
- modulo: proyectos
ubicacion: src/features/proyectos/
pages:
- nombre: FraccionamientosListPage
ruta: /fraccionamientos
descripcion: Lista de fraccionamientos
- nombre: FraccionamientoDetailPage
ruta: /fraccionamientos/:id
descripcion: Detalle con etapas, manzanas, lotes
- nombre: EtapaDetailPage
ruta: /fraccionamientos/:id/etapas/:etapaId
descripcion: Detalle de etapa
- nombre: UnidadDetailPage
ruta: /unidades/:tipo/:id
descripcion: Detalle de lote/departamento
- nombre: PrototiposPage
ruta: /prototipos
descripcion: Catalogo de prototipos
components:
- nombre: FraccionamientoCard
descripcion: Tarjeta resumen de fraccionamiento
- nombre: FraccionamientoForm
descripcion: Formulario crear/editar
- nombre: EtapasList
descripcion: Lista de etapas de un fraccionamiento
- nombre: ManzanaGrid
descripcion: Grid visual de manzanas/lotes
- nombre: TorreVisualization
descripcion: Visualizacion de torre/niveles/deptos
- nombre: PrototipoSelector
descripcion: Selector de prototipo para asignar
- nombre: ProjectMap
descripcion: Mapa con geolocalizacion de obras
stores:
- nombre: useFraccionamientosStore
estado: [fraccionamientos, selected, loading, filters]
acciones: [fetch, create, update, delete]
- nombre: useEtapasStore
estado: [etapas, selected, loading]
- nombre: useUnidadesStore
estado: [lotes, departamentos, loading]
hooks:
- nombre: useFraccionamiento
descripcion: Hook para operaciones de fraccionamiento
- nombre: useProjectHierarchy
descripcion: Hook para navegacion jerarquica
# ---------------------------------------------------------------------------
# MAI-003: Presupuestos
# ---------------------------------------------------------------------------
- modulo: presupuestos
ubicacion: src/features/presupuestos/
pages:
- nombre: PresupuestosListPage
ruta: /presupuestos
descripcion: Lista de presupuestos
- nombre: PresupuestoDetailPage
ruta: /presupuestos/:id
descripcion: Arbol presupuestario
- nombre: ConceptoDetailPage
ruta: /presupuestos/:id/conceptos/:conceptoId
descripcion: Detalle de concepto con insumos
components:
- nombre: BudgetTree
descripcion: Arbol jerarquico de partidas/conceptos
- nombre: PartidaRow
descripcion: Fila de partida expandible
- nombre: ConceptoEditor
descripcion: Editor de concepto con PU
- nombre: InsumosList
descripcion: Lista de insumos de concepto
- nombre: BudgetComparison
descripcion: Comparativo presupuesto vs real
stores:
- nombre: usePresupuestoStore
estado: [presupuestos, selected, tree, loading]
# ---------------------------------------------------------------------------
# MAI-005: Control de Obra
# ---------------------------------------------------------------------------
- modulo: control-obra
ubicacion: src/features/control-obra/
pages:
- nombre: AvancesListPage
ruta: /avances
descripcion: Lista de avances registrados
- nombre: AvanceCapturePage
ruta: /avances/captura
descripcion: Captura de avance
- nombre: BitacoraPage
ruta: /bitacora
descripcion: Bitacora de obra
- nombre: RecursosPage
ruta: /recursos
descripcion: Gestion de recursos
components:
- nombre: AvanceForm
descripcion: Formulario captura avance
- nombre: PhotoUploader
descripcion: Carga de fotos con preview
- nombre: ProgressBar
descripcion: Barra de progreso visual
- nombre: GanttChart
descripcion: Grafico Gantt de avances
- nombre: ResourceCalendar
descripcion: Calendario de recursos
stores:
- nombre: useAvancesStore
estado: [avances, filters, loading]
- nombre: useBitacoraStore
estado: [entradas, fecha, loading]
# ---------------------------------------------------------------------------
# MAI-007: RRHH
# ---------------------------------------------------------------------------
- modulo: rrhh
ubicacion: src/features/rrhh/
pages:
- nombre: PersonalListPage
ruta: /personal
descripcion: Lista de personal
- nombre: CuadrillasPage
ruta: /cuadrillas
descripcion: Gestion de cuadrillas
- nombre: AsistenciasPage
ruta: /asistencias
descripcion: Control de asistencias
- nombre: DestajoPage
ruta: /destajo
descripcion: Control de destajo
components:
- nombre: PersonalTable
descripcion: Tabla de personal con filtros
- nombre: CuadrillaCard
descripcion: Tarjeta de cuadrilla
- nombre: AttendanceCalendar
descripcion: Calendario de asistencias
- nombre: DestajoCalculator
descripcion: Calculadora de destajo
# ---------------------------------------------------------------------------
# MAI-008: Estimaciones
# ---------------------------------------------------------------------------
- modulo: estimaciones
ubicacion: src/features/estimaciones/
pages:
- nombre: EstimacionesListPage
ruta: /estimaciones
descripcion: Lista de estimaciones
- nombre: EstimacionDetailPage
ruta: /estimaciones/:id
descripcion: Detalle con workflow
- nombre: EstimacionCreatePage
ruta: /estimaciones/nueva
descripcion: Crear estimacion
components:
- nombre: EstimacionForm
descripcion: Formulario de estimacion
- nombre: WorkflowTimeline
descripcion: Timeline de aprobaciones
- nombre: DeduccionesTable
descripcion: Tabla de deducciones
- nombre: EstimacionPDF
descripcion: Vista previa PDF
stores:
- nombre: useEstimacionesStore
estado: [estimaciones, selected, workflow, loading]
# ---------------------------------------------------------------------------
# Modulos adicionales (resumen)
# ---------------------------------------------------------------------------
- modulo: compras
pages: 4
components: 12
stores: 2
- modulo: reportes
pages: 3
components: 15
stores: 1
- modulo: calidad
pages: 3
components: 10
stores: 1
- modulo: crm
pages: 4
components: 12
stores: 2
- modulo: infonavit
pages: 3
components: 10
stores: 1
- modulo: contratos
pages: 3
components: 8
stores: 1
- modulo: administracion
pages: 4
components: 12
stores: 2
# =============================================================================
# FRONTEND MOBILE - APPS
# =============================================================================
mobile_apps:
# ---------------------------------------------------------------------------
# MOB-001: Checador Biometrico
# ---------------------------------------------------------------------------
- app: MOB-001
nombre: Checador Biometrico
perfil: checador
package: com.construccion.checador
ubicacion: apps/mobile-checador/
screens:
- nombre: LoginScreen
descripcion: Login con credenciales ERP
- nombre: BiometricSetupScreen
descripcion: Configuracion biometrica inicial
- nombre: CheckInScreen
descripcion: Pantalla principal check-in/out
- nombre: AttendanceHistoryScreen
descripcion: Historial de asistencias
components:
- nombre: FacialRecognition
descripcion: Componente reconocimiento facial
- nombre: FingerprintScanner
descripcion: Lector huella dactilar
- nombre: LocationCapture
descripcion: Captura GPS al hacer check
- nombre: OfflineQueue
descripcion: Cola de registros offline
stores:
- nombre: useAuthStore
estado: [user, token, tenant]
- nombre: useAttendanceStore
estado: [records, pendingSync, lastCheck]
features:
- biometria_facial
- biometria_huella
- geolocalizacion
- offline_first
# ---------------------------------------------------------------------------
# MOB-002: Almacenista
# ---------------------------------------------------------------------------
- app: MOB-002
nombre: Almacenista
perfil: almacenista
package: com.construccion.almacen
ubicacion: apps/mobile-almacen/
screens:
- nombre: InventoryHomeScreen
descripcion: Dashboard de inventario
- nombre: GoodsReceiptScreen
descripcion: Recepcion de materiales
- nombre: MaterialMovementScreen
descripcion: Movimientos de almacen
- nombre: InventoryCountScreen
descripcion: Conteo fisico
- nombre: BarcodeSccanScreen
descripcion: Escaneo de codigos
components:
- nombre: BarcodeScanner
descripcion: Lector de codigos de barras
- nombre: MaterialCard
descripcion: Tarjeta de material
- nombre: QuantityInput
descripcion: Input cantidad con validacion
- nombre: SyncIndicator
descripcion: Indicador estado sync
stores:
- nombre: useInventoryStore
estado: [materials, movements, pendingSync]
features:
- escaneo_codigos
- offline_first
- sincronizacion_background
# ---------------------------------------------------------------------------
# MOB-003: Supervisor de Obra
# ---------------------------------------------------------------------------
- app: MOB-003
nombre: Supervisor de Obra
perfil: supervisor
package: com.construccion.supervisor
ubicacion: apps/mobile-supervisor/
screens:
- nombre: ProjectSelectorScreen
descripcion: Seleccion de proyecto/obra
- nombre: ProgressCaptureScreen
descripcion: Captura de avances
- nombre: PhotoEvidenceScreen
descripcion: Toma de fotos con GPS
- nombre: InspectionChecklistScreen
descripcion: Checklist de inspeccion
- nombre: DailyLogScreen
descripcion: Bitacora diaria
- nombre: ResourcesScreen
descripcion: Recursos en sitio
components:
- nombre: ProgressSlider
descripcion: Slider de porcentaje avance
- nombre: GeotaggedCamera
descripcion: Camara con geoetiqueta
- nombre: ChecklistItem
descripcion: Item de checklist
- nombre: VoiceNote
descripcion: Nota de voz
stores:
- nombre: useProjectStore
estado: [currentProject, units, concepts]
- nombre: useProgressStore
estado: [entries, photos, pendingSync]
features:
- camara_geoetiquetada
- offline_first
- notas_voz
- checklists
# ---------------------------------------------------------------------------
# MOB-004: Capataz/Cuadrilla
# ---------------------------------------------------------------------------
- app: MOB-004
nombre: Capataz
perfil: capataz
package: com.construccion.capataz
ubicacion: apps/mobile-capataz/
screens:
- nombre: CrewManagementScreen
descripcion: Gestion de cuadrilla
- nombre: DestajoEntryScreen
descripcion: Registro de destajo
- nombre: WorkAssignmentScreen
descripcion: Asignacion de trabajo
- nombre: ProductivityReportScreen
descripcion: Reporte productividad
components:
- nombre: CrewMemberCard
descripcion: Tarjeta miembro cuadrilla
- nombre: DestajoCalculator
descripcion: Calculadora destajo
- nombre: TaskAssigner
descripcion: Asignador de tareas
features:
- gestion_cuadrilla
- calculo_destajo
- offline_first
# ---------------------------------------------------------------------------
# MOB-005: Derechohabiente
# ---------------------------------------------------------------------------
- app: MOB-005
nombre: Mi Vivienda
perfil: derechohabiente
package: com.construccion.cliente
ubicacion: apps/mobile-cliente/
screens:
- nombre: HomeScreen
descripcion: Dashboard cliente
- nombre: UnitProgressScreen
descripcion: Avance de vivienda
- nombre: InspectionRequestScreen
descripcion: Solicitar inspeccion
- nombre: DocumentsScreen
descripcion: Documentos de la vivienda
- nombre: ContactSupportScreen
descripcion: Contacto con soporte
components:
- nombre: ProgressTimeline
descripcion: Timeline de avance
- nombre: PhotoGallery
descripcion: Galeria de fotos
- nombre: DocumentViewer
descripcion: Visor de documentos
- nombre: ChatSupport
descripcion: Chat con soporte
features:
- consulta_avance
- galeria_fotos
- documentos
- chat_soporte
# =============================================================================
# COMPONENTES COMPARTIDOS
# =============================================================================
shared_components:
web:
ui:
- Button
- Input
- Select
- Modal
- Table
- Card
- Tabs
- Toast
- Loading
- EmptyState
- ErrorBoundary
layout:
- MainLayout
- Sidebar
- Header
- Footer
- Breadcrumb
forms:
- FormField
- FormError
- DatePicker
- FilePicker
- SearchInput
mobile:
ui:
- Button
- TextInput
- Card
- Modal
- Loading
- Toast
navigation:
- BottomTabBar
- DrawerMenu
- Header
# =============================================================================
# HOOKS COMPARTIDOS
# =============================================================================
shared_hooks:
- nombre: useAuth
descripcion: Autenticacion y sesion
- nombre: useTenant
descripcion: Contexto de tenant
- nombre: useApi
descripcion: Cliente API con interceptors
- nombre: useOffline
descripcion: Deteccion y manejo offline
- nombre: useSync
descripcion: Sincronizacion de datos
- nombre: useGeolocation
descripcion: Geolocalizacion
- nombre: useBiometrics
descripcion: Autenticacion biometrica
- nombre: useCamera
descripcion: Acceso a camara
- nombre: useNotifications
descripcion: Push notifications
# =============================================================================
# METADATA
# =============================================================================
metadata:
creado_por: Requirements-Analyst
fecha_creacion: 2025-12-06
ultima_actualizacion: 2025-12-06
version_documento: 1.0.0