Fase 1: Scaffolding, Estructura Base y Capa Offline Base
Objetivo: Dejar el "cascarón" del sistema completamente estructurado, las rutas funcionales y las bases de datos local y remota inicializadas.
1. Track Backend (.NET 10 & Docker Compose)
[ ] Task 1.1: Inicialización de la Solución Monolítica Modular
- Descripción: Crear la solución base en .NET 10 (
MdxCloud.sln) y estructurar los subproyectos físicos que espejean los 10 dominios de negocio. - Detalle:
- Crear la WebAPI núcleo (
MdxCloud.API) como punto de entrada único. - Modularizar la lógica de negocio mediante bibliotecas de clases aisladas, una por dominio:
MdxCloud.Modules.Catalogos(Productos, presentaciones, unidades)MdxCloud.Modules.Fiscal(Catálogos SAT, regímenes, códigos postales)MdxCloud.Modules.Ventas(Clientes, pedidos, precios B2B)MdxCloud.Modules.Compras(Proveedores, órdenes de compra)MdxCloud.Modules.Wms(Inventario, lotes, picking FEFO, transferencias)MdxCloud.Modules.Credito(Cartera, abonos FIFO, bloqueos)MdxCloud.Modules.Tesoreria(Cuentas por pagar, pagos a proveedores)MdxCloud.Modules.CFDI(Timbrado CFDI 4.0, integración PAC, Cloudflare R2)MdxCloud.Modules.Personal(Empleados, usuarios, RBAC)MdxCloud.Modules.Auditoria(Interceptor centralizado de logs JSONB)
- Crear el proyecto compartido de contratos e interfaces:
MdxCloud.Shared.
- Crear la WebAPI núcleo (
[ ] Task 1.2: Orquestación de Infraestructura Local (Docker Compose)
- Descripción: Automatizar el levantamiento del entorno de desarrollo con los tres servicios oficiales del stack.
- Detalle:
- Redactar
docker-compose.ymlde desarrollo con tres servicios:mdx-caddy: Proxy inverso Caddy 2, único con puertos públicos (80, 443, 443/udp para HTTP/3).mdx-backend: API .NET 10 conexpose: 8080(sin puertos públicos al host).mdx-database: PostgreSQL 16 Alpine conexpose: 5432(invisible al exterior).
- Montar el
Caddyfilecomo volumen de solo lectura en el contenedormdx-caddy. - Definir la red interna
mdx-networktipo bridge que conecta los tres contenedores. - Gestionar todas las contraseñas mediante variables
${DB_PASSWORD}en archivo.env(nunca en Git).
- Redactar
[ ] Task 1.3: Inicialización de Esquemas Físicos en Postgres (10 Dominios)
- Descripción: Configurar e instanciar los 10 esquemas de base de datos que segmentan los dominios de negocio de MDX-Cloud.
- Detalle:
- Configurar las migraciones iniciales de EF Core, una por módulo.
- Ejecutar scripts SQL para la creación física de los 10 esquemas oficiales:
catalogos,fiscal,ventas,compras,wms,credito_cobranza,tesoreria,cfdi,personal,auditoria. - Verificar que ningún esquema tenga FKs cruzadas que no estén justificadas como red de seguridad (ver regla de aislamiento § 03.3).
[ ] Task 1.4: Definición de Contratos Base (Mocks API)
- Descripción: Redactar los contratos JSON de red para habilitar el desarrollo paralelo.
- Detalle:
- Escribir las estructuras DTO (Data Transfer Objects) e interfaces en
MdxCloud.Shared. - Configurar endpoints temporales en el WebAPI que devuelvan JSONs con datos estáticos de prueba (Mocked responses).
- Escribir las estructuras DTO (Data Transfer Objects) e interfaces en
2. Track Frontend (React SPA & Dexie.js)
[x] Task 1.5: Inicialización del Ecosistema Frontend
- Descripción: Crear e inicializar la Single Page Application base.
- Detalle:
- Instanciar el proyecto mediante Vite con el template de TypeScript.
- Instalar dependencias esenciales de producción:
dexie,dexie-react-hooks,react-router-dom,lucide-react.
[x] Task 1.6: Arquitectura de Carpetas Feature-Driven
- Descripción: Estructurar el directorio de código bajo una arquitectura limpia orientada a características de negocio, espejando los 10 dominios del backend.
- Detalle:
- Mapear las 10 carpetas de dominio bajo
src/features/, una por esquema de BD:catalogos/,fiscal/,ventas/,compras/,wms/,credito_cobranza/,tesoreria/,cfdi/,personal/,auditoria/. - Crear las carpetas transversales:
src/components/(UI atómica),src/hooks/,src/context/,src/services/,src/config/,src/layouts/,src/db/.
- Mapear las 10 carpetas de dominio bajo
[x] Task 1.7: Construcción del Layout Horizontal Moderno (Navbar)
- Descripción: Diseñar el cascarón de navegación global del portal de administración.
- Detalle:
- Implementar la barra superior horizontal responsiva (Navbar) con perfil de usuario y selector rápido de módulos comerciales.
- Nota: Queda estrictamente prohibido el uso de barras de navegación verticales (Sidebars) para cumplir con el diseño corporativo premium.
[x] Task 1.8: Instanciación de Dexie.js con Convención de Nombres
- Descripción: Crear e inicializar la capa de persistencia local en IndexedDB del navegador.
- Detalle:
- Crear el servicio base
WmsDatabase.tsheredando deDexie. - Configurar el constructor para inicializar el nombre de la BD local dinámicamente según el entorno (
mdx_wms_devomdx_wms_prod). - Mapear los esquemas de tablas iniciales con el prefijo de caché:
cache_productosycache_lotes.
- Crear el servicio base
[ ] Task 1.9: Configuración e Inyección del Entorno PWA
- Descripción: Configurar e inyectar el Service Worker para habilitar el comportamiento de aplicación de escritorio offline-first.
- Detalle:
- Instalar el paquete
vite-plugin-pwacomo dependencia de desarrollo. - Configurar
vite.config.tspara registrar el Service Worker en modo de generación automática (GenerateSW). - Diseñar el archivo
manifest.jsondefiniendo:display: "standalone",orientation: "landscape"(optimizado para tablets) y los colores corporativos de la marca. - Configurar la estrategia básica de precarga de assets estáticos esenciales.
- Instalar el paquete