3. Tareas Jeisson - PREX

📋 Fase 1: Base De Datos PREX

1.1 Diseño De Esquema

  • Crear diagrama ER de prex_db
    • Identificar todas las tablas necesarias
    • Definir relaciones
    • Documentar campos por tabla

📋 Fase 2: Backend PREX - API Y Lógica

2.1 Setup Proyecto Backend

  • Decidir stack tecnológico
    • Opción A: FastAPI (Python) - recomendado si ya usas Python para OCR
    • Opción B: Express (Node.js) - si prefieres JavaScript
    • Opción C: Laravel (PHP) - si quieres mantener consistencia con ORDEN
  • Crear estructura de proyecto
    • Configurar .env (DB_HOST, DB_PORT, CLAUDE_API_KEY, etc.)
    • Setup conexión a prex_db
    • Configurar CORS para frontend

2.2 Endpoints Básicos (CRUD)

  • Empresas PREX
    • POST /api/empresas - Crear empresa (registro)
    • GET /api/empresas/{id} - Obtener empresa
    • PUT /api/empresas/{id} - Actualizar empresa
  • Usuarios PREX
    • POST /api/auth/register - Registro
    • POST /api/auth/login - Login
    • GET /api/auth/me - Usuario actual
  • Facturas
    • GET /api/facturas?mes=202501 - Listar facturas
    • GET /api/facturas/{id} - Detalle factura
    • DELETE /api/facturas/{id} - Eliminar factura

2.3 Upload De Facturas

  • Endpoint: POST /api/facturas/upload
    • Recibir archivo (multipart/form-data)
    • Validar formato (PDF, JPG, PNG)
    • Validar tamaño (max 10MB)
    • Generar nombre único
    • Guardar en storage (S3, DigitalOcean Spaces, o local)
    • Crear registro en facturas_prex (estado: pendiente)
    • Retornar: {id, archivo_url, estado}
  • Manejo de múltiples archivos
    • Permitir upload batch (hasta 20 archivos)
    • Progress tracking

2.4 Procesamiento OCR + IA

  • Servicio: OCR Service
    • Integrar Tesseract OCR
    • Pre-procesamiento de imágenes:
      • Convertir PDF a imagen (si es PDF)
      • Ajustar contraste/brillo
      • Corregir rotación
      • Reducir ruido
    • Extraer texto plano
  • Servicio: AI Extraction Service
    • Integrar Claude API
    • Prompt optimizado para extraer:
      • RNC proveedor (11 dígitos)
      • Nombre proveedor
      • NCF (B01-XXXXXXXX, etc.)
      • Fecha comprobante (YYYY-MM-DD)
      • Fecha pago (YYYY-MM-DD)
      • Monto facturado
      • ITBIS facturado
      • Total factura
      • Forma de pago
    • Parsear respuesta JSON de Claude
    • Calcular confidence_score por campo
  • Endpoint: POST /api/facturas/{id}/procesar
    • Ejecutar OCR
    • Enviar a Claude API
    • Validar datos extraídos:
      • RNC: 11 dígitos numéricos
      • NCF: formato válido
      • Total = monto + ITBIS (±$0.01)
    • Crear registro en datos_extraidos
    • Actualizar facturas_prex (estado: procesada)
    • Retornar: {datos_extraidos, confidence_score}

2.5 Job Queue Para Procesamiento Asíncrono

  • Configurar sistema de colas
    • Redis + Bull (Node.js) o Celery (Python)
    • Job: ProcesarFacturaJob
  • Lógica del Job
    • Recibir factura_id
    • Ejecutar OCR + IA
    • Guardar resultados
    • Marcar como completado o fallido
    • Reintentos automáticos (max 3)
  • Endpoint: GET /api/facturas/{id}/status
    • Retornar estado actual del procesamiento

📋 Fase 3: Frontend PREX - Interfaz De Usuario

3.1 Setup Proyecto Frontend

  • Decidir framework
    • Opción A: React + Tailwind
    • Opción B: Vue + Tailwind
    • Opción C: Next.js (si necesitas SSR)
  • Crear estructura de proyecto
    • Setup routing
    • Configurar axios o fetch para API calls
    • Setup state management (Redux, Zustand, Pinia)

3.2 Autenticación

  • Página: Login
    • Form: email, password
    • Guardar token JWT
  • Página: Registro
    • Form: nombre empresa, RNC, email, password
    • Validaciones

3.3 Dashboard Principal

  • Vista: Dashboard
    • Cards con estadísticas del mes:
      • Total facturas subidas
      • Facturas procesadas
      • Facturas validadas
      • Facturas pendientes
    • Gráfico: Evolución últimos 6 meses
    • Lista: Últimas facturas procesadas

3.4 Upload De Facturas

  • Componente: Upload Zone (Drag & Drop)
    • Usar Filepond o Dropzone.js
    • Preview de archivos
    • Progress bar durante upload
    • Múltiples archivos a la vez
  • Botón: “Procesar Todas”
    • Enviar facturas a cola de procesamiento
    • Mostrar progreso global

3.5 Lista De Facturas

  • Vista: Lista de Facturas
    • Tabla con columnas:
      • Thumbnail del archivo
      • Fecha de subida
      • Estado (badge con color)
      • Proveedor (si ya fue procesada)
      • Monto
      • Acciones (ver, editar, eliminar)
    • Filtros:
      • Por mes
      • Por estado (pendiente, procesada, validada)
    • Paginación

3.6 Interfaz De Auditoría/Validación

  • Vista: Auditoría de Factura
    • Layout 2 columnas:
      • Izquierda: Visor de imagen/PDF
        • Zoom in/out
        • Rotar imagen
        • Navegación de páginas (si PDF multipágina)
      • Derecha: Formulario editable con datos
    • Form con campos:
      • RNC Proveedor (input con validación)
      • Nombre Proveedor (autocomplete si existe)
      • NCF (input con validación formato)
      • Fecha Comprobante (datepicker)
      • Fecha Pago (datepicker)
      • Monto Facturado (input number)
      • ITBIS Facturado (input number)
      • Total Factura (calculado automáticamente)
      • Forma de Pago (select)
    • Badges de confianza:
      • Verde: confidence > 80%
      • Amarillo: confidence 50-80%
      • Rojo: confidence < 50%
    • Auto-save al cambiar campo (debounce 500ms)
    • Navegación: Anterior / Siguiente
    • Botones:
      • “Validar” (marca como validada)
      • “Rechazar” (para facturas inválidas)

3.7 Validación Batch

  • Vista: Validar Múltiples
    • Lista de facturas procesadas sin validar
    • Checkbox para seleccionar
    • Botón “Validar Seleccionadas”
    • Vista rápida de datos (sin edición)

📋 Fase 4: Exportación

4.1 Exportar a Excel

  • Endpoint: GET /api/exportar/excel?mes=202501
    • Obtener todas las facturas validadas del mes
    • Generar Excel con columnas estándar del 606
    • Retornar archivo Excel (.xlsx)
  • Botón en Frontend: “Descargar Excel”
    • Trigger descarga del archivo

4.2 Exportar a ORDEN (Integración)

  • Endpoint: POST /api/exportar/orden
    • Input: {mes, facturas_ids[]}
    • Validar que empresa tiene orden_api_key configurada
    • Validar que todas las facturas estén validadas
    • Preparar payload para ORDEN (ver formato en código)
    • Llamar: POST https://orden.app/api/prex/import-gastos
    • Procesar response de ORDEN
    • Actualizar estados y logs
  • Vista en Frontend: “Exportar a ORDEN”
    • Botón: “Conectar ORDEN” (modal para API Key)
    • Botón: “Enviar a ORDEN” (confirmación + progreso)

4.3 Historial De Exportaciones

  • Vista: Historial de Exportaciones
    • Tabla con logs_exportacion
    • Ver detalles, reenviar si falló

📋 Fase 5: Configuración Y Admin

5.1 Configuración De Empresa

  • Vista: Configuración
    • Tab “General” (nombre, RNC, plan, límite)
    • Tab “Integraciones” (ORDEN API Key, probar conexión)
    • Tab “Usuarios” (lista, agregar usuarios)

5.2 Gestión De Planes

  • Lógica de límites

    • Verificar límite al subir factura
    • Modal “Mejora tu plan” si excede
  • Planes:

    Gratis:     50 facturas/mes
    Básico:    200 facturas/mes - $50/mes
    Premium:  1000 facturas/mes - $150/mes
    

📋 Fase 6: Testing Y Calibración

6.1 Dataset De Prueba

  • Recopilar 50 facturas variadas
    • Diferentes proveedores y formatos
    • Incluir casos difíciles

6.2 Métricas De Precisión

  • Crear ground truth (datos correctos manuales)
  • Procesar con PREX
  • Calcular métricas por campo
  • Objetivo: ≥ 85% precisión global

6.3 Iteraciones De Mejora

  • Si precisión < 85%: Ajustar prompt, OCR, etc.
  • Documentar casos que siempre fallan

📋 Fase 7: Deployment

7.1 Preparación

  • Elegir hosting (VPS o PaaS)
  • Configurar servidor (PostgreSQL, Nginx, SSL)

7.2 Deploy Backend

  • Subir código, migraciones, configurar PM2

7.3 Deploy Frontend

  • Build producción, servir con Nginx

7.4 Storage De Archivos

  • Configurar S3/Spaces o local + CDN opcional

7.5 Backups

  • BD diaria, archivos semanal, probar restauración

📋 Fase 8: Monitoreo Y Mantenimiento

8.1 Logging

  • Sistema de logs con rotación

8.2 Monitoreo (Opcional)

  • Dashboard métricas, alertas

8.3 Mejora Continua

  • Revisar facturas fallidas semanalmente
  • Actualizar prompt si DGII cambia formatos

✅ Checklist De Completitud

  • ✅ Base de datos prex_db diseñada y migrada
  • ✅ Backend API completo
  • ✅ Frontend completo
  • ✅ OCR + IA ≥ 85% precisión
  • ✅ Interfaz validación completa
  • ✅ Exportación Excel funcional
  • ✅ Integración ORDEN funcional
  • ✅ Sistema de planes implementado
  • ✅ Testing exhaustivo
  • ✅ Deploy en producción
  • ✅ Backups configurados
  • ✅ Documentación completa

💬 Comunicación Con Andrés

Puntos De Sincronización:

  1. Después de Fase 2.4: Demo OCR + IA
  2. Después de Fase 3.6: Demo interfaz validación
  3. Antes de Fase 4.2: Coordinación endpoint ORDEN
  4. Después de Fase 6.2: Validar métricas juntos
  5. Antes de Fase 7: Decidir arquitectura servidores

¿Qué Necesitas De Andrés?

  1. Endpoint en ORDEN: POST /api/prex/import-gastos
  2. Formato exacto del payload
  3. Cómo generar API Key en ORDEN
  4. 10-20 facturas reales para testing

Canales:

  • WhatsApp, llamadas, Dropbox/Drive, Git