Files
horux-strategy-platform/docs/plans/2025-01-31-implementation-plan.md
Torch2196 4c3dc94ff2 Initial commit: Horux Strategy Platform
- Laravel 11 backend with API REST
- React 18 + TypeScript + Vite frontend
- Multi-parser architecture for accounting systems (CONTPAQi, Aspel, SAP)
- 27+ financial metrics calculation
- PDF report generation with Browsershot
- Complete documentation (10 documents)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 22:24:00 -06:00

8.3 KiB

Horux Strategy Platform - Plan de Implementación

Fecha: 2025-01-31 Documento de diseño: 2025-01-31-horux-strategy-design.md


Fases de Implementación

FASE 1: Fundamentos (Backend)

1.1 Configuración del proyecto Laravel

  • Crear proyecto Laravel 11
  • Configurar base de datos (MySQL/PostgreSQL)
  • Instalar y configurar Laravel Sanctum
  • Configurar CORS para React

1.2 Migraciones de base de datos

  • Tabla users (con campo role)
  • Tabla clientes
  • Tabla giros
  • Tabla permisos_empleado
  • Tabla reportes_contables
  • Tabla categorias_contables
  • Tabla umbrales
  • Tabla balanzas
  • Tabla cuentas
  • Tabla reglas_mapeo
  • Tabla mapeo_cuentas
  • Tabla reportes
  • Seeders para catálogos iniciales (giros, categorías, reglas CONTPAQi)

1.3 Modelos y relaciones

  • User (con roles)
  • Cliente
  • Giro
  • PermisoEmpleado
  • Umbral
  • Balanza
  • Cuenta
  • ReglaMappeo
  • Reporte

1.4 Sistema de autenticación

  • Login / Logout
  • Registro (solo admin puede crear usuarios)
  • Middleware por rol
  • Policies para autorización

FASE 2: Parser de Balanzas

2.1 Arquitectura de parsers

  • Crear ParserInterface.php
  • Crear DetectorFormato.php
  • Implementar ContpaqiParser.php
  • Crear ParserGenerico.php (CSV/Excel)

2.2 Procesamiento de archivos

  • Endpoint para upload de archivos
  • Extracción de texto de PDF
  • Parsing de estructura CONTPAQi
  • Normalización a formato interno
  • Almacenamiento en tabla cuentas

2.3 Clasificación automática

  • Crear ClasificadorCuentas.php
  • Aplicar reglas de mapeo
  • Detectar anomalías
  • Marcar cuentas que requieren revisión

FASE 3: Motor de Cálculo

3.1 Calculador de estados financieros

  • Crear CalculadorMetricas.php
  • Calcular Balance General
  • Calcular Estado de Resultados
  • Calcular Flujo de Efectivo (método indirecto)

3.2 Cálculo de métricas

  • Métricas de márgenes (7 métricas)
  • Métricas de retorno (4 métricas)
  • Métricas de eficiencia (6 métricas)
  • Métricas de liquidez (3 métricas)
  • Métricas de solvencia (3 métricas)
  • Métricas de gestión (4 métricas)

3.3 Comparativos

  • Calcular promedio 3 periodos
  • Comparar con periodo anterior
  • Comparar con año anterior
  • Calcular variaciones
  • Determinar tendencia según umbrales

FASE 4: API REST

4.1 Endpoints de autenticación

  • POST /api/login
  • POST /api/logout
  • GET /api/user

4.2 Endpoints de clientes

  • GET /api/clientes
  • POST /api/clientes
  • GET /api/clientes/{id}
  • PUT /api/clientes/{id}
  • DELETE /api/clientes/{id}

4.3 Endpoints de balanzas

  • POST /api/clientes/{id}/balanzas (upload)
  • GET /api/clientes/{id}/balanzas
  • GET /api/balanzas/{id}/cuentas
  • PUT /api/balanzas/{id}/cuentas (actualizar exclusiones)
  • PUT /api/cuentas/{id}/clasificacion (corregir anomalía)

4.4 Endpoints de reportes

  • POST /api/clientes/{id}/reportes (generar)
  • GET /api/clientes/{id}/reportes
  • GET /api/reportes/{id}
  • GET /api/reportes/{id}/pdf

4.5 Endpoints administrativos

  • CRUD /api/admin/usuarios
  • CRUD /api/admin/giros
  • CRUD /api/admin/umbrales
  • CRUD /api/admin/reglas-mapeo

FASE 5: Frontend - Fundamentos

5.1 Configuración del proyecto React

  • Crear proyecto con Vite + TypeScript
  • Configurar React Router
  • Configurar Axios para API
  • Configurar Recharts
  • Configurar Tailwind CSS

5.2 Autenticación

  • Página de Login
  • Context de autenticación
  • Rutas protegidas por rol
  • Interceptor para tokens

5.3 Layout base

  • Sidebar de navegación
  • Header con usuario
  • Layout para admin
  • Layout para cliente

FASE 6: Frontend - Flujo Principal

6.1 Gestión de clientes

  • Lista de clientes
  • Formulario crear/editar cliente
  • Subida de logo

6.2 Subida de balanzas

  • Componente de upload (drag & drop)
  • Preview de archivos
  • Indicador de progreso
  • Detección de sistema origen

6.3 Revisión y limpieza

  • Vista de anomalías con corrección
  • Lista de cuentas con checkboxes
  • Filtros y búsqueda
  • Guardar exclusiones

FASE 7: Frontend - Dashboard

7.1 Componentes de gráficas

  • BarChart
  • LineChart
  • StackedBarChart
  • WaterfallChart
  • ComboChart

7.2 Componentes de cards

  • KPICard (con semáforo)
  • InsightCard
  • MetricTable

7.3 Secciones del dashboard

  • Mensajes Destacados
  • Resumen Mensual
  • Resumen 12m
  • Márgenes
  • Márgenes Deep Dive
  • Resultados
  • Balance
  • Capital de Trabajo
  • Flujo de Efectivo
  • Métricas
  • Indicadores
  • Negocios
  • Estados Financieros

FASE 8: Generación de PDF

8.1 Backend

  • Instalar Browsershot
  • Crear GeneradorPdf.php
  • Endpoint GET /api/reportes/{id}/pdf

8.2 Frontend

  • Vista PdfView con todas las páginas
  • Estilos específicos para impresión
  • Separadores de sección
  • Portada y contraportada

FASE 9: Panel Administrativo

9.1 Dashboard admin

  • Estadísticas generales
  • Alertas pendientes

9.2 Gestión de usuarios

  • CRUD de usuarios
  • Asignación de roles

9.3 Configuración

  • Editor de umbrales
  • Editor de reglas de mapeo
  • Editor de giros

FASE 10: Funcionalidades de Cliente

10.1 Gestión de empleados

  • Lista de empleados
  • Crear empleado
  • Configurar permisos

10.2 Configuración

  • Exclusiones guardadas
  • Preferencias de reporte

FASE 11: Testing y Refinamiento

11.1 Testing

  • Tests unitarios del motor de cálculo
  • Tests de parsers
  • Tests de API
  • Tests E2E del flujo principal

11.2 Refinamiento

  • Optimización de rendimiento
  • Manejo de errores
  • Validaciones
  • UX/UI polish

Prioridad de Implementación

  1. MVP (Fases 1-4, 5-7): Sistema funcional con CONTPAQi, dashboard básico
  2. PDF (Fase 8): Exportación de reportes
  3. Admin (Fase 9): Panel de configuración
  4. Multi-usuario (Fase 10): Funcionalidades de cliente
  5. Calidad (Fase 11): Testing y refinamiento

Archivos Clave a Crear

Backend (Laravel)

app/
├── Http/Controllers/
│   ├── AuthController.php
│   ├── ClienteController.php
│   ├── BalanzaController.php
│   ├── CuentaController.php
│   ├── ReporteController.php
│   └── Admin/
│       ├── UsuarioController.php
│       ├── UmbralController.php
│       └── ReglaMappeoController.php
├── Models/
│   ├── User.php
│   ├── Cliente.php
│   ├── Balanza.php
│   ├── Cuenta.php
│   ├── Reporte.php
│   └── ...
├── Services/
│   ├── Parsers/
│   │   ├── ParserInterface.php
│   │   ├── ContpaqiParser.php
│   │   └── DetectorFormato.php
│   ├── ClasificadorCuentas.php
│   ├── CalculadorMetricas.php
│   └── GeneradorPdf.php
└── ...

Frontend (React)

src/
├── components/
│   ├── charts/
│   │   ├── BarChart.tsx
│   │   ├── LineChart.tsx
│   │   ├── StackedBarChart.tsx
│   │   ├── WaterfallChart.tsx
│   │   └── ComboChart.tsx
│   ├── cards/
│   │   ├── KPICard.tsx
│   │   └── InsightCard.tsx
│   ├── forms/
│   │   ├── ClienteForm.tsx
│   │   └── UploadBalanza.tsx
│   └── layout/
│       ├── Sidebar.tsx
│       └── Header.tsx
├── pages/
│   ├── Login.tsx
│   ├── Dashboard/
│   │   ├── index.tsx
│   │   ├── Resumen.tsx
│   │   ├── Margenes.tsx
│   │   └── ...
│   ├── Admin/
│   │   ├── Usuarios.tsx
│   │   └── Umbrales.tsx
│   └── PdfView/
│       └── index.tsx
├── hooks/
│   ├── useAuth.ts
│   ├── useCliente.ts
│   └── useReporte.ts
├── services/
│   └── api.ts
└── types/
    └── index.ts