PROJECT_STATUS.md
Estado del Proyecto
Archivo vivo. Se sobreescribe al cierre de cada sesión. No se acumula.
Actualizado: 2026-06-27 (sesión 7 — Sprint 1 T4 mergeada: wizard de onboarding frontend)
Sprint actual
| Campo |
Valor |
| Sprint |
1 |
| Tracker |
docs/sprints/SPRINT-01.md |
| Fase |
Sprint 1 EN_PROGRESO — T4 cerrada, T5 pendiente |
| Estado |
SPRINT_01_STATUS: EN_PROGRESO |
| Bloqueante |
Ninguno |
PRs mergeados a main
| PR |
Descripción |
| #1 |
Documentación fundacional real de Venuo ERP |
| #2 |
Decisiones DevOps y 4 ADRs previos al Sprint 0 |
| #3 |
Fix sistema de memoria persistente entre sesiones |
| #4 |
Mejora sistema de trazabilidad y persistencia entre sesiones |
| #5 |
Dockerfiles backend y frontend — Sprint 0 Tarea 1 |
| #6 |
docker-compose.yml completo con todos los servicios — Sprint 0 Tarea 2 |
| #7 |
Proyecto Django + django-tenants + settings divididos — Sprint 0 Tarea 5 |
| #8 |
Modelo Usuario + autenticación JWT + permisos base — Sprint 0 Tarea 6 |
| #9 |
Estructura de apps + healthcheck + tests — Sprint 0 Tarea 7 |
| #10 |
React + Vite + Tailwind + PWA shell + design system — Sprint 0 Tarea 8 |
| #11 |
Auth segura JWT + httpOnly cookie + Login UI — Sprint 0 Tarea 9 |
| #12 |
CI GitHub Actions + ruff + black + fix test mock — Sprint 0 Tarea 4 |
| #13 |
Nginx prod config — Sprint 0 Tarea 3 |
| #14 |
README de Venuo ERP (reemplaza README del kit) |
| #15 |
MkDocs Material — sitio de documentación |
| #16 |
app_suscripciones: Suscripcion + FeatureFlag + validacion — Sprint 1 T1 |
| #18 |
app_empresas: wizard onboarding + CRUD Sucursal — Sprint 1 T2 |
| #19 |
app_inventario: modelos base + APIs CRUD — Sprint 1 T3 |
| #20 |
Frontend wizard onboarding + guards de ruta + 40 tests — Sprint 1 T4 |
Módulos implementados
- [x] Docker — Dockerfile backend (378 MB) y frontend (74 MB)
- [x] Docker Compose completo (8 servicios, red interna, healthchecks)
- [x] Nginx dev config, backup GFS,
.env.example, .gitignore
- [x] Nginx prod config — SPA static, proxy Django, security headers, SSL-ready
- [x] Proyecto Django base + django-tenants + settings por entorno
- [x]
Empresa (TenantMixin) + Dominio (DomainMixin) + onboarding (PENDIENTE→WIZARD_COMPLETADO→ACTIVO)
- [x]
Usuario custom (AbstractBaseUser, email como USERNAME_FIELD)
- [x]
Sucursal + UsuarioEmpresaSucursal + clase Rol con 6 roles
- [x] CRUD
Sucursal — GET/POST /api/empresas/sucursales/, soft-delete
- [x] Wizard onboarding —
GET/POST /api/empresas/onboarding/
- [x] Auth segura:
refresh en cookie httpOnly, access en memoria Zustand
- [x]
POST /api/auth/token/ — login (cookie httpOnly)
- [x]
POST /api/auth/token/refresh/ — refresh desde cookie
- [x]
POST /api/auth/token/logout/ — blacklist + borra cookie
- [x]
GET /api/auth/me/ — datos del usuario autenticado
- [x] Permisos base en
core_api/permissions.py (IsSuperAdmin, HasTenantAccess, roles)
- [x]
Suscripcion + FeatureFlag — GET /api/suscripciones/mi-plan/
- [x]
RequireFeature(feature_name) — factory de DRF Permission class para feature flags
- [x]
Categoria, PlantillaRubro, AtributoConfig — CRUD en app_inventario
- [x]
Producto con JSONB especificaciones + índice GIN — CRUD con soft-delete
- [x]
StockSucursal — GET /api/inventario/stock/, ajuste manual
- [x]
seed_plantilla_rubro() — activa tenant al finalizar onboarding
- [x]
validar_especificaciones() — ningún atributo libre sin declarar en PlantillaRubro
- [x] 68 tests backend pasando — CI valida en cada PR, 0 regresiones
- [x] Frontend shell: React + Vite + Tailwind + PWA + design system
- [x] Auth frontend:
authStore Zustand, api.ts axios con refresh automático, LoginPage, rutas protegidas
- [x] Wizard onboarding frontend — 3 pasos, guards de ruta,
estadoOnboarding en store
- [x] 40 tests frontend — vitest + @testing-library (store, API, página completa)
- [x] CI — GitHub Actions: lint + tests + type-check + build en cada PR
- [x] README de Venuo ERP
- [x] MkDocs Material — sitio de documentación en https://venuo-6cm.pages.dev
Último sprint cerrado
| Sprint |
Tag |
Fecha cierre |
| Sprint 0 — Cimientos |
sprint-00 |
2026-06-26 |