docs: actualiza FASES_IMPLEMENTADAS.md con estado post-voz y roadmap pendiente
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
# Nexus POS — Resumen de Fases Implementadas
|
# Nexus POS — Resumen de Fases Implementadas
|
||||||
|
|
||||||
**Fecha:** 2026-04-27
|
**Fecha:** 2026-04-28
|
||||||
**Versión DB:** v3.2
|
**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
|
- Ventas 20 ítems: 21 queries → 1 query
|
||||||
- Cache hit rate: 6% → 80%+
|
- 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
|
## Infraestructura Desplegada
|
||||||
@@ -93,6 +122,8 @@
|
|||||||
| Metabase | v0.53 | 3000 | ✅ Dashboard ID 2 |
|
| Metabase | v0.53 | 3000 | ✅ Dashboard ID 2 |
|
||||||
| Nginx | — | 80/443 | ✅ gzip, cache 6M, auto-serve .min |
|
| Nginx | — | 80/443 | ✅ gzip, cache 6M, auto-serve .min |
|
||||||
| Gunicorn | — | 5001 | ✅ gthread, 4×4, max_requests=1000 |
|
| 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)
|
### 🔴 Crítico — Deuda Técnica
|
||||||
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
|
|
||||||
|
|
||||||
### Opción A — Arquitectura (pendiente)
|
| # | Mejora | Descripción | Bloqueo |
|
||||||
1. **Serialización `orjson`** — 2-10× faster JSON
|
|---|--------|-------------|---------|
|
||||||
2. **Virtual scroll** — Tablas grandes sin lag
|
| 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 |
|
||||||
3. **Celery worker queue** — Tareas pesadas async
|
| 2 | **Quart async catalog en producción** | PoC en puerto 5002 funciona. Integrar con nginx reverse proxy, migrar endpoints críticos. | Necesita hypercorn + monitoreo |
|
||||||
4. **Asyncpg + Quart PoC** — Evaluar I/O no bloqueante para catálogo
|
| 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 |
|
||||||
5. **Particionar `vehicle_parts`** — Escalabilidad ilimitada (254 GB → particiones)
|
|
||||||
|
|
||||||
### Features de Negocio (futuro)
|
### 🟠 Alto — Features de Negocio
|
||||||
1. **Mercado Libre / Amazon sync** — Publicar inventario en marketplaces
|
|
||||||
2. **IA por voz (Chalán de Nexus)** — Web Speech API → chatbot existente
|
| # | Mejora | Descripción | Esfuerzo |
|
||||||
3. **PWA mejorada** — Offline mode, install prompt, background sync
|
|---|--------|-------------|----------|
|
||||||
4. **Portal de proveedores** — Demand analytics, heatmaps, stock recommendations
|
| 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. **Dashboard in-app** — Gráficos de rendimiento en tiempo real
|
| 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). |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user