# PLAN DE SUBTAREAS - Auditoría Frontend/UX-UI
**ID:** TASK-2026-02-03-AUDITORIA-FRONTEND-UX-UI
**Fecha:** 2026-02-03
**Estado:** PLANIFICACIÓN COMPLETA
**SP Total:** 49
---
## RESUMEN EJECUTIVO
Este plan descompone la implementación frontend en **4 Sprints** con **21 subtareas** organizadas por prioridad y dependencias. Cada subtarea cumple con el principio CAPVED y puede ser ejecutada por subagentes en paralelo según el mapa de dependencias.
```
┌───────────────────────────────────────────────────────────────┐
│ DISTRIBUCIÓN POR SPRINT │
├───────────────────────────────────────────────────────────────┤
│ Sprint 1 (P0): 11 SP - Módulos Críticos │
│ Sprint 2 (P1): 21 SP - Módulos Comerciales │
│ Sprint 3 (P2): 14 SP - Calidad y Tests │
│ Sprint 4 (P3): 3 SP - Limpieza y Documentación │
├───────────────────────────────────────────────────────────────┤
│ TOTAL: 49 SP | 21 Subtareas | 4 Sprints │
└───────────────────────────────────────────────────────────────┘
```
---
## SPRINT 1: MÓDULOS CRÍTICOS (P0)
**Objetivo:** Completar funcionalidad core para administración
**SP Total:** 11
**Paralelismo:** ST-1.1, ST-1.2, ST-1.3 pueden ejecutarse en paralelo
### ST-1.1: RBAC Frontend Completo
| Aspecto | Detalle |
|---------|---------|
| **ID** | ST-1.1-RBAC-FRONTEND |
| **SP** | 5 |
| **Prioridad** | P0 |
| **Dependencias** | Ninguna |
| **Paralelizable** | Sí |
**CAPVED:**
| Fase | Actividad | Output |
|------|-----------|--------|
| **C** | Leer SAAS-003-rbac.md, revisar backend/src/modules/rbac | Entender 14 endpoints |
| **A** | Analizar patrones de Sales para replicar | Definir estructura páginas |
| **P** | Diseñar RolesPage, PermissionsPage, PermissionsMatrix | Mockups/wireframes |
| **E** | Implementar 5 archivos: API, hook, 3 páginas | Código funcional |
| **V** | npm run build, npm run lint, pruebas manuales | Build exitoso |
| **D** | Actualizar router, FRONTEND_INVENTORY.yml | Docs actualizados |
**Archivos a crear:**
```
frontend/src/
├── services/api/rbac.api.ts # 14 endpoints
├── hooks/useRbac.ts # Queries + mutations
├── pages/dashboard/rbac/
│ ├── RolesPage.tsx # CRUD roles
│ ├── PermissionsPage.tsx # CRUD permissions
│ └── RoleDetailPage.tsx # Asignación permisos
└── components/rbac/
├── RoleCard.tsx
├── RoleForm.tsx
└── PermissionsMatrix.tsx
```
**Criterios de Aceptación:**
- [ ] Lista de roles con CRUD
- [ ] Lista de permisos disponibles
- [ ] Matriz de asignación role→permissions
- [ ] Asignación de roles a usuarios
- [ ] Validación de permisos en UI
---
### ST-1.2: Audit Frontend Completo
| Aspecto | Detalle |
|---------|---------|
| **ID** | ST-1.2-AUDIT-COMPLETE |
| **SP** | 3 |
| **Prioridad** | P0 |
| **Dependencias** | Ninguna |
| **Paralelizable** | Sí |
**CAPVED:**
| Fase | Actividad | Output |
|------|-----------|--------|
| **C** | Revisar audit.controller.ts (8 endpoints), componentes existentes | Lista de gaps |
| **A** | Comparar con AuditLogsPage actual | Funcionalidades faltantes |
| **P** | Diseñar filtros avanzados, exportación, stats | Plan de mejoras |
| **E** | Completar API (6 endpoints), mejorar página | Código funcional |
| **V** | Validar filtros, exportación CSV/Excel | Tests manuales |
| **D** | Actualizar SAAS-009-audit.md con UI | Docs actualizados |
**Archivos a modificar/crear:**
```
frontend/src/
├── services/api/audit.api.ts # Completar 6 endpoints faltantes
├── hooks/useAudit.ts # Agregar queries faltantes
├── pages/dashboard/AuditLogsPage.tsx # Mejorar con filtros
└── components/audit/
├── AuditFilters.tsx # Ya existe, mejorar
├── AuditExport.tsx # CREAR
└── AuditStatsCard.tsx # Ya existe, mejorar
```
**Criterios de Aceptación:**
- [ ] Filtros por fecha, usuario, acción, entidad
- [ ] Exportación a CSV y Excel
- [ ] Estadísticas de actividad (gráfico)
- [ ] Paginación con 50+ registros
- [ ] Búsqueda full-text
---
### ST-1.3: Notifications Frontend Completo
| Aspecto | Detalle |
|---------|---------|
| **ID** | ST-1.3-NOTIFICATIONS-COMPLETE |
| **SP** | 3 |
| **Prioridad** | P0 |
| **Dependencias** | Ninguna |
| **Paralelizable** | Sí |
**CAPVED:**
| Fase | Actividad | Output |
|------|-----------|--------|
| **C** | Revisar notifications.controller.ts (17 endpoints) | Lista completa |
| **A** | Comparar con componentes existentes | Gaps en templates, config |
| **P** | Diseñar página de gestión de templates | Plan de UI |
| **E** | Completar API, crear TemplatesPage | Código funcional |
| **V** | Validar CRUD templates, config por canal | Tests manuales |
| **D** | Actualizar SAAS-007-notifications.md | Docs actualizados |
**Archivos a modificar/crear:**
```
frontend/src/
├── services/api/notifications.api.ts # Completar 9 endpoints
├── hooks/useNotifications.ts # Agregar templates queries
├── pages/dashboard/notifications/
│ ├── NotificationsPage.tsx # Ya existe
│ └── TemplatesPage.tsx # CREAR
└── components/notifications/
├── TemplateCard.tsx # CREAR
├── TemplateForm.tsx # CREAR
└── ChannelConfig.tsx # CREAR
```
**Criterios de Aceptación:**
- [ ] CRUD de templates de notificación
- [ ] Configuración por canal (email, push, in-app, whatsapp)
- [ ] Preview de template
- [ ] Activar/desactivar templates
- [ ] Historial de notificaciones enviadas
---
## SPRINT 2: MÓDULOS COMERCIALES (P1)
**Objetivo:** Implementar UI para módulos comerciales avanzados
**SP Total:** 21
**Paralelismo:** ST-2.1, ST-2.2, ST-2.3 pueden ejecutarse en paralelo
### ST-2.1: Portfolio UI Completo
| Aspecto | Detalle |
|---------|---------|
| **ID** | ST-2.1-PORTFOLIO-UI |
| **SP** | 5 |
| **Prioridad** | P1 |
| **Dependencias** | Ninguna |
| **Paralelizable** | Sí |
**CAPVED:**
| Fase | Actividad | Output |
|------|-----------|--------|
| **C** | Revisar usePortfolio (21 funciones), SAAS-019-portfolio.md | Entender modelo |
| **A** | Diseñar flujo Category→Product→Variant→Price | Wireframes |
| **P** | Definir 6 páginas y 7 componentes | Arquitectura UI |
| **E** | Implementar páginas usando hooks existentes | Código funcional |
| **V** | Validar CRUD completo, árbol de categorías | Tests E2E |
| **D** | Crear ET-SAAS-019-frontend.md | Docs técnicas |
**Archivos a crear:**
```
frontend/src/
├── pages/dashboard/portfolio/
│ ├── PortfolioDashboardPage.tsx # Resumen, stats
│ ├── CategoriesPage.tsx # Árbol + CRUD
│ ├── CategoryDetailPage.tsx # Subcategorías, productos
│ ├── ProductsPage.tsx # Grid filtrable
│ ├── ProductDetailPage.tsx # Variantes, precios
│ └── ProductFormPage.tsx # Crear/editar
└── components/portfolio/
├── CategoryTree.tsx # Árbol jerárquico
├── CategoryForm.tsx
├── ProductCard.tsx
├── ProductForm.tsx
├── VariantList.tsx
├── PriceTable.tsx
└── ProductFilters.tsx
```
**Rutas a agregar en router/index.tsx:**
```typescript
{ path: 'portfolio', element: },
{ path: 'portfolio/categories', element: },
{ path: 'portfolio/categories/:id', element: },
{ path: 'portfolio/products', element: },
{ path: 'portfolio/products/new', element: },
{ path: 'portfolio/products/:id', element: },
{ path: 'portfolio/products/:id/edit', element: },
```
**Criterios de Aceptación:**
- [ ] Árbol de categorías navegable
- [ ] CRUD completo de categorías
- [ ] Grid de productos con filtros
- [ ] Gestión de variantes por producto
- [ ] Gestión de precios (multi-moneda si aplica)
- [ ] Duplicación de productos
- [ ] Cambio de estado (activo/inactivo)
---
### ST-2.2: MLM UI Completo
| Aspecto | Detalle |
|---------|---------|
| **ID** | ST-2.2-MLM-UI |
| **SP** | 8 |
| **Prioridad** | P1 |
| **Dependencias** | ST-2.1 (Portfolio) para contexto de productos |
| **Paralelizable** | Sí (con precaución) |
**CAPVED:**
| Fase | Actividad | Output |
|------|-----------|--------|
| **C** | Revisar useMlm (18 funciones), SAAS-021-mlm.md, entities | Entender estructuras |
| **A** | Diseñar visualización de árbol de red | Componente NetworkTree |
| **P** | Definir 7 páginas y 8 componentes | Arquitectura UI |
| **E** | Implementar con visualización de árbol D3/react-tree | Código funcional |
| **V** | Validar navegación de red, cálculo comisiones | Tests E2E |
| **D** | Crear ET-SAAS-021-frontend.md | Docs técnicas |
**Archivos a crear:**
```
frontend/src/
├── pages/dashboard/mlm/
│ ├── MLMDashboardPage.tsx # Stats, resumen red
│ ├── StructuresPage.tsx # Lista estructuras
│ ├── StructureDetailPage.tsx # Visualización árbol
│ ├── NodesPage.tsx # Grid de nodos
│ ├── NodeDetailPage.tsx # Perfil nodo, downlines
│ ├── RanksPage.tsx # Niveles y requisitos
│ └── MyNetworkPage.tsx # Mi árbol personal
└── components/mlm/
├── NetworkTree.tsx # Visualización árbol (D3 o similar)
├── StructureCard.tsx
├── StructureForm.tsx
├── NodeCard.tsx
├── RankBadge.tsx
├── CommissionsSummary.tsx
├── DownlineList.tsx
└── MLMStatsCard.tsx
```
**Consideraciones especiales:**
- NetworkTree puede usar `react-d3-tree` o `react-organizational-chart`
- Considerar lazy loading para redes grandes (>100 nodos)
- Implementar zoom y pan para navegación
**Criterios de Aceptación:**
- [ ] Visualización de árbol de red interactivo
- [ ] Navegación entre nodos (click para ver detalle)
- [ ] Vista de mi red personal
- [ ] Lista de rangos con requisitos
- [ ] Resumen de comisiones por período
- [ ] Histórico de promociones/demociones
- [ ] Exportación de estructura
---
### ST-2.3: Goals UI Completo
| Aspecto | Detalle |
|---------|---------|
| **ID** | ST-2.3-GOALS-UI |
| **SP** | 8 |
| **Prioridad** | P1 |
| **Dependencias** | Ninguna |
| **Paralelizable** | Sí |
**CAPVED:**
| Fase | Actividad | Output |
|------|-----------|--------|
| **C** | Revisar useGoals (14 funciones), SAAS-022-goals.md | Entender modelo OKR |
| **A** | Diseñar flujo Definition→Assignment→Progress→Report | UX flow |
| **P** | Definir 7 páginas y 6 componentes | Arquitectura UI |
| **E** | Implementar con progress bars y gráficos | Código funcional |
| **V** | Validar tracking de progreso, milestones | Tests E2E |
| **D** | Crear ET-SAAS-022-frontend.md | Docs técnicas |
**Archivos a crear:**
```
frontend/src/
├── pages/dashboard/goals/
│ ├── GoalsDashboardPage.tsx # KPIs, tendencias
│ ├── DefinitionsPage.tsx # CRUD definiciones
│ ├── DefinitionDetailPage.tsx # Detalle + assignments
│ ├── AssignmentsPage.tsx # Lista asignaciones
│ ├── AssignmentDetailPage.tsx # Progreso individual
│ ├── MyGoalsPage.tsx # Mis metas
│ └── ReportsPage.tsx # Reportes, exportación
└── components/goals/
├── GoalCard.tsx
├── GoalForm.tsx
├── GoalProgressBar.tsx # Con milestones
├── GoalAssignmentCard.tsx
├── ProgressLogList.tsx
└── GoalsKPIGrid.tsx
```
**Criterios de Aceptación:**
- [ ] CRUD de definiciones de metas
- [ ] Asignación a usuarios/equipos
- [ ] Tracking de progreso con logs
- [ ] Visualización de milestones
- [ ] Dashboard con KPIs
- [ ] Reportes por período
- [ ] Notificaciones de milestones alcanzados
---
## SPRINT 3: CALIDAD Y TESTS (P2)
**Objetivo:** Mejorar calidad, accesibilidad y cobertura de tests
**SP Total:** 14
**Paralelismo:** Todas las subtareas pueden ejecutarse en paralelo
### ST-3.1: Mejora Accesibilidad WCAG 2.1
| Aspecto | Detalle |
|---------|---------|
| **ID** | ST-3.1-WCAG-IMPROVE |
| **SP** | 5 |
| **Prioridad** | P2 |
| **Dependencias** | Sprint 1 y 2 completados |
| **Paralelizable** | Sí |
**CAPVED:**
| Fase | Actividad | Output |
|------|-----------|--------|
| **C** | Auditar con axe DevTools, WAVE | Lista de issues |
| **A** | Categorizar por severidad y esfuerzo | Plan priorizado |
| **P** | Definir fixes para 90% cobertura | Checklist |
| **E** | Aplicar fixes en ~20 componentes | Código mejorado |
| **V** | Re-auditar, keyboard nav test | Score WCAG |
| **D** | Crear ACCESSIBILITY-REPORT.md | Docs |
**Áreas a mejorar:**
```
1. Semantic HTML
- Reemplazar
→