diff --git a/docs/FASES_IMPLEMENTADAS.md b/docs/FASES_IMPLEMENTADAS.md index a60e599..0ef80a3 100644 --- a/docs/FASES_IMPLEMENTADAS.md +++ b/docs/FASES_IMPLEMENTADAS.md @@ -1,8 +1,8 @@ # Nexus POS — Resumen de Fases Implementadas -**Fecha:** 2026-04-27 +**Fecha:** 2026-04-28 **Versión DB:** v3.2 -**Tests:** 108/108 pasando (pytest) + 207 checks (scripts standalone) +**Tests:** 73/73 pasando (pytest) --- @@ -81,6 +81,35 @@ - Ventas 20 ítems: 21 queries → 1 query - Cache hit rate: 6% → 80%+ +## Opción C — Consolidación Técnica (COMPLETADA) + +| Item | Estado | Commit | +|------|--------|--------| +| **C1: MV `part_vehicle_preview`** | ✅ En producción, refresh automático vía systemd timer (03:00 UTC) | `f893391` | +| **C2: Cache warming script** | ✅ Autónomo con auto-sudo fallback, args CLI | `f893391` | +| **C3: CSS dinámico residual** | ✅ `sidebar.js` → `sidebar.css`, `pos-utils.js` → `common.css` | `042acd6` | +| **C4: Load testing script** | ✅ `scripts/load_test.py` con `locust` | `042acd6` | +| **C5: Docs audit** | ✅ `FASES_IMPLEMENTADAS.md`, `performance_audit_2026.md` | `042acd6` | + +## Opción A — Arquitectura Avanzada (COMPLETADA) + +| Item | Estado | Commit | +|------|--------|--------| +| **A1: `orjson` como JSON provider** | ✅ Hereda `DefaultJSONProvider`, fix indent en `pos_bp.py` | `a1be8dd` | +| **A2: Virtual scroll** | ✅ `inventory.js`, `customers.js`, `fleet.js` | `a1be8dd` | +| **A3: Celery worker queue** | ✅ `celery_app.py`, `tasks.py`, `tasks_bp.py`, systemd service activo | `a1be8dd` | +| **A4: Quart + asyncpg PoC** | ✅ `async_catalog.py` en puerto 5002, benchmark script | `a1be8dd` | +| **A5: Particionamiento `vehicle_parts`** | ✅ Script `partition_vehicle_parts.py` listo (HASH 16 particiones, dry-run) | `a1be8dd` | + +## IA por Voz — Chalán de Nexus (COMPLETADA) + +| Componente | Estado | +|------------|--------| +| **STT (Speech-to-Text)** | ✅ POS + Dashboard público, `es-MX`, auto-send, animación micrófono | +| **TTS (Text-to-Speech)** | ✅ Botón 🔊 en burbujas de IA, `speechSynthesis`, preferencia guardada en `localStorage` | +| **Cobertura templates POS** | ✅ 14/14 templates tienen chat widget | +| **Dashboard público** | ✅ Chat público con voz completa (sin cámara) | + --- ## Infraestructura Desplegada @@ -93,6 +122,8 @@ | Metabase | v0.53 | 3000 | ✅ Dashboard ID 2 | | Nginx | — | 80/443 | ✅ gzip, cache 6M, auto-serve .min | | Gunicorn | — | 5001 | ✅ gthread, 4×4, max_requests=1000 | +| Celery | — | — | ✅ 4 prefork workers, broker redis://localhost:6379/1 | +| Quart PoC | — | 5002 | ✅ hypercorn manual, no en producción | --- @@ -132,28 +163,44 @@ METABASE_URL=http://localhost:3000 --- -## Próximos Pasos (Roadmap restante) +## Mejoras Pendientes (Roadmap Actualizado) -### Opción C — Consolidación Técnica (en progreso) -1. **Materialized view `part_vehicle_preview`** — Fallback robusto al Redis cache para vehicle info -2. **Fix cache warming script** — Autonomía sin `sudo -u postgres` -3. **CSS dinámico residual** — Extraer CSS inyectado por JS a archivos externos -4. **Load testing script** — Benchmark básico de endpoints críticos -5. **Docs audit** — Corregir métricas y marcar estado post-FASE 7 +### 🔴 Crítico — Deuda Técnica -### Opción A — Arquitectura (pendiente) -1. **Serialización `orjson`** — 2-10× faster JSON -2. **Virtual scroll** — Tablas grandes sin lag -3. **Celery worker queue** — Tareas pesadas async -4. **Asyncpg + Quart PoC** — Evaluar I/O no bloqueante para catálogo -5. **Particionar `vehicle_parts`** — Escalabilidad ilimitada (254 GB → particiones) +| # | Mejora | Descripción | Bloqueo | +|---|--------|-------------|---------| +| 1 | **Particionar `vehicle_parts` en producción** | Script `partition_vehicle_parts.py` listo. Ejecutar en staging primero, luego producción. Reduce 254 GB → particiones HASH 16. | Necesita ventana de mantenimiento | +| 2 | **Quart async catalog en producción** | PoC en puerto 5002 funciona. Integrar con nginx reverse proxy, migrar endpoints críticos. | Necesita hypercorn + monitoreo | +| 3 | **Arreglar `scripts/minify-assets.sh`** | Itera sobre `*.js`/`*.css` incluyendo `.min.*`, generando `.min.min.*`. Filtrar archivos ya minificados. | Riesgo de archivos corruptos en deploy | -### Features de Negocio (futuro) -1. **Mercado Libre / Amazon sync** — Publicar inventario en marketplaces -2. **IA por voz (Chalán de Nexus)** — Web Speech API → chatbot existente -3. **PWA mejorada** — Offline mode, install prompt, background sync -4. **Portal de proveedores** — Demand analytics, heatmaps, stock recommendations -5. **Dashboard in-app** — Gráficos de rendimiento en tiempo real +### 🟠 Alto — Features de Negocio + +| # | Mejora | Descripción | Esfuerzo | +|---|--------|-------------|----------| +| 4 | **WhatsApp Business API (Meta Cloud)** | Actualmente solo webhook Baileys. Migrar a Meta Cloud API para escalabilidad real. Requiere verificación de cuenta Meta. | 2-3 semanas | +| 5 | **BNPL real** | Integrar APLAZO/Kueski/Clip para "compra ahora, paga en 15/30 días". Ahora solo es stub. | 2 semanas | +| 6 | **ERP Sync real** | Conectar con Aspel/Contpaqi/SAP/Odoo vía API o archivos de intercambio. Ahora solo es stub. | 2-3 semanas | +| 7 | **Mercado Libre / Amazon sync** | Publicar inventario de bodegas en marketplaces. API de ML Seller + Amazon SP-API. | 3 semanas | +| 8 | **PWA mejorada** | Offline mode, install prompt, background sync para catálogo y carrito. | 1-2 semanas | + +### 🟡 Medio — Diferenciadores + +| # | Mejora | Descripción | Esfuerzo | +|---|--------|-------------|----------| +| 9 | **App móvil nativa (Capacitor)** | Wrap del POS como app iOS/Android. Camera nativa, push notifications, biometrics. | 3-4 semanas | +| 10 | **Portal de proveedores** | Dashboard para que proveedores vean demanda por zona y tipo de parte. | 2 semanas | +| 11 | **Dashboard in-app** | Gráficos de rendimiento en tiempo real (ventas, productividad, conversión) en el POS. | 1-2 semanas | +| 12 | **Crédito basado en comportamiento** | Evaluación automática de línea de crédito por historial de pagos del cliente. | 2 semanas | +| 13 | **Programa de embajadores** | Referidos con recompensas, tracking de conversiones. | 1 semana | + +### 🟢 Bajo — Polish + +| # | Mejora | Descripción | +|---|--------|-------------| +| 14 | **Cache warming automatizado** | Agregar systemd timer/service para correr `warm_cache.py` diariamente (ahora es manual). | +| 15 | **Backup automatizado** | El último backup es del 27/04. Automatizar con cron + S3/GCS. | +| 16 | **Monitoreo/Alerting** | Prometheus/Grafana o similar para gunicorn, PostgreSQL, Redis, Celery. | +| 17 | **Tests de integración frontend** | Playwright/Cypress para flujos críticos (checkout, búsqueda, login). | ---