7.6 KiB
7.6 KiB
Matriz de Prioridad - Implementacion Frontend
Resumen Ejecutivo
Este documento define el orden de prioridad para implementar los componentes frontend de los modulos core del ERP Suite.
| Estado Actual | Valor |
|---|---|
| Componentes especificados | 120+ |
| Componentes implementados | ~22% |
| Prioridad | Fase 1 Foundation |
Criterios de Priorizacion
- Dependencia de otros modulos - Modulos bloqueantes primero
- Frecuencia de uso - Pantallas usadas diariamente
- Complejidad - Menor complejidad primero para momentum
- Valor de negocio - Funcionalidad core antes que nice-to-have
Prioridad 1: Autenticacion (MGN-001)
Sprint: 1 Justificacion: Sin auth, nada funciona
| Componente | Tipo | Prioridad | Complejidad | Estado |
|---|---|---|---|---|
| LoginPage | Page | P0 | Baja | Pendiente |
| LoginForm | Component | P0 | Baja | Pendiente |
| PasswordInput | Component | P0 | Baja | Pendiente |
| ForgotPasswordPage | Page | P0 | Baja | Pendiente |
| ResetPasswordPage | Page | P0 | Baja | Pendiente |
| authStore | Store | P0 | Media | Pendiente |
| AuthProvider | Context | P0 | Media | Pendiente |
| ProtectedRoute | HOC | P0 | Baja | Pendiente |
Total: 8 componentes
Prioridad 2: Layout y Navegacion
Sprint: 1 Justificacion: Estructura base para toda la app
| Componente | Tipo | Prioridad | Complejidad | Estado |
|---|---|---|---|---|
| AppLayout | Layout | P0 | Media | Pendiente |
| Sidebar | Component | P0 | Media | Pendiente |
| Header | Component | P0 | Baja | Pendiente |
| UserMenu | Component | P0 | Baja | Pendiente |
| Breadcrumbs | Component | P1 | Baja | Pendiente |
| NotificationBell | Component | P2 | Media | Pendiente |
Total: 6 componentes
Prioridad 3: Usuarios (MGN-002)
Sprint: 2 Justificacion: CRUD basico de usuarios
| Componente | Tipo | Prioridad | Complejidad | Estado |
|---|---|---|---|---|
| UsersPage | Page | P0 | Media | Pendiente |
| UserTable | Component | P0 | Media | Pendiente |
| UserForm | Component | P0 | Media | Pendiente |
| UserDetailPage | Page | P0 | Media | Pendiente |
| ProfilePage | Page | P0 | Media | Pendiente |
| ProfileForm | Component | P0 | Baja | Pendiente |
| AvatarUpload | Component | P1 | Media | Pendiente |
| ChangePasswordModal | Component | P0 | Baja | Pendiente |
| PreferencesPage | Page | P1 | Baja | Pendiente |
| PreferencesForm | Component | P1 | Baja | Pendiente |
| ChangeEmailForm | Component | P1 | Media | Pendiente |
Total: 11 componentes
Prioridad 4: Roles y Permisos (MGN-003)
Sprint: 3 Justificacion: RBAC para control de acceso
| Componente | Tipo | Prioridad | Complejidad | Estado |
|---|---|---|---|---|
| RolesPage | Page | P0 | Media | Pendiente |
| RoleTable | Component | P0 | Baja | Pendiente |
| RoleForm | Component | P0 | Media | Pendiente |
| PermissionTree | Component | P0 | Alta | Pendiente |
| RoleDetailPage | Page | P0 | Media | Pendiente |
| AssignPermissionsModal | Component | P0 | Media | Pendiente |
| UserRolesManager | Component | P0 | Media | Pendiente |
| PermissionGuard | HOC | P0 | Media | Pendiente |
Total: 8 componentes
Prioridad 5: Tenants (MGN-004)
Sprint: 4 Justificacion: Multi-tenancy
| Componente | Tipo | Prioridad | Complejidad | Estado |
|---|---|---|---|---|
| TenantsPage | Page | P0 | Media | Pendiente |
| TenantTable | Component | P0 | Baja | Pendiente |
| TenantForm | Component | P0 | Media | Pendiente |
| TenantDetailPage | Page | P0 | Media | Pendiente |
| TenantSelector | Component | P0 | Media | Pendiente |
| TenantUsersManager | Component | P0 | Media | Pendiente |
| SubscriptionCard | Component | P1 | Media | Pendiente |
| TenantContext | Context | P0 | Media | Pendiente |
Total: 8 componentes
Componentes Compartidos (Prioritarios)
Componentes reutilizables que deben crearse primero:
| Componente | Tipo | Usado Por | Prioridad |
|---|---|---|---|
| DataTable | Component | Todas las listas | P0 |
| Modal | Component | Todos los forms | P0 |
| Form | Component | Todos los forms | P0 |
| Button | Component | Toda la app | P0 |
| Input | Component | Todos los forms | P0 |
| Select | Component | Todos los forms | P0 |
| Checkbox | Component | Listas, forms | P0 |
| Toast/Notification | Component | Feedback | P0 |
| ConfirmDialog | Component | Acciones destructivas | P0 |
| LoadingSpinner | Component | Async operations | P0 |
| EmptyState | Component | Listas vacias | P1 |
| ErrorBoundary | HOC | Manejo de errores | P0 |
| Pagination | Component | Listas | P0 |
| SearchInput | Component | Busquedas | P0 |
| FilterPanel | Component | Filtros avanzados | P1 |
Total: 15 componentes base
Plan de Implementacion por Sprint
Sprint 1 (Auth + Layout)
Semana 1:
- [ ] Componentes base (Button, Input, Modal, Form)
- [ ] LoginPage + LoginForm
- [ ] authStore + AuthProvider
Semana 2:
- [ ] AppLayout + Sidebar + Header
- [ ] ProtectedRoute
- [ ] ForgotPasswordPage + ResetPasswordPage
Sprint 2 (Users)
Semana 1:
- [ ] DataTable + Pagination
- [ ] UsersPage + UserTable
- [ ] UserForm modal
Semana 2:
- [ ] ProfilePage + ProfileForm
- [ ] AvatarUpload
- [ ] ChangePasswordModal
Sprint 3 (Roles)
Semana 1:
- [ ] RolesPage + RoleTable
- [ ] RoleForm
- [ ] PermissionTree (complejo)
Semana 2:
- [ ] AssignPermissionsModal
- [ ] UserRolesManager
- [ ] PermissionGuard
Sprint 4 (Tenants)
Semana 1:
- [ ] TenantsPage + TenantTable
- [ ] TenantForm
- [ ] TenantContext
Semana 2:
- [ ] TenantSelector
- [ ] TenantUsersManager
- [ ] SubscriptionCard
Sprint 5 (Extras)
Semana 1:
- [ ] PreferencesPage + PreferencesForm
- [ ] ChangeEmailForm
- [ ] UserDetailPage completo
Semana 2:
- [ ] Tests de componentes
- [ ] Storybook stories
- [ ] Pulido de UX
Tecnologias y Convenciones
Stack Frontend
- Framework: React 18+
- Router: React Router v6
- State: Zustand
- Forms: React Hook Form + Zod
- UI Library: shadcn/ui (basado en Radix)
- Styling: Tailwind CSS
- API Client: TanStack Query
- Tests: Vitest + Testing Library
Estructura de Carpetas
src/
├── components/ # Componentes compartidos
│ ├── ui/ # Componentes base (shadcn)
│ └── shared/ # Componentes de negocio compartidos
├── features/ # Modulos por funcionalidad
│ ├── auth/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── hooks/
│ │ ├── stores/
│ │ └── api/
│ ├── users/
│ ├── roles/
│ └── tenants/
├── layouts/ # Layouts de pagina
├── hooks/ # Hooks globales
├── lib/ # Utilidades
├── stores/ # Stores globales
└── types/ # Tipos TypeScript
Convenciones de Nombrado
- Componentes: PascalCase (UserTable.tsx)
- Hooks: camelCase con use (useAuth.ts)
- Stores: camelCase con Store (authStore.ts)
- Types: PascalCase (User.ts)
- Utils: camelCase (formatDate.ts)
Metricas de Progreso
| Metrica | Target |
|---|---|
| Componentes base | 15 |
| Paginas core | 12 |
| Cobertura tests | 70% |
| Storybook stories | 80% componentes |
| Lighthouse Performance | > 90 |
| Lighthouse Accessibility | > 90 |
Historial
| Version | Fecha | Autor | Cambios |
|---|---|---|---|
| 1.0 | 2025-12-06 | System | Creacion inicial |