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
- Cards con estadísticas del mes:
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
- Tabla con columnas:
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
- Izquierda: Visor de imagen/PDF
- 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)
- Layout 2 columnas:
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:
- Después de Fase 2.4: Demo OCR + IA
- Después de Fase 3.6: Demo interfaz validación
- Antes de Fase 4.2: Coordinación endpoint ORDEN
- Después de Fase 6.2: Validar métricas juntos
- Antes de Fase 7: Decidir arquitectura servidores
¿Qué Necesitas De Andrés?
- Endpoint en ORDEN:
POST /api/prex/import-gastos - Formato exacto del payload
- Cómo generar API Key en ORDEN
- 10-20 facturas reales para testing
Canales:
- WhatsApp, llamadas, Dropbox/Drive, Git