# 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