FRONTEND_INVENTORY.yml v5.0.0: - Pages: 38 -> 65 (+27 new pages) - Components: 28 -> 57 (+29 new components) - Hooks: 22 -> 24 files - Tests: 0 -> 13 test files (160 tests) - Documented Sprint 1-3 additions MASTER_INVENTORY.yml v6.2.0: - Updated frontend metrics - Reflects current codebase state Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
512 lines
13 KiB
YAML
512 lines
13 KiB
YAML
---
|
|
# FRONTEND INVENTORY - Template SaaS
|
|
# Version: 5.0.0
|
|
# Ultima actualizacion: 2026-02-03
|
|
# Nota: ST-4.2-UPDATE-INVENTORY - Actualizacion post Sprint 1-3
|
|
# Incluye: Nuevas paginas RBAC/Portfolio/MLM/Goals/Notifications, 57 componentes, 13 tests
|
|
|
|
metadata:
|
|
proyecto: "template-saas"
|
|
tipo: "FRONTEND"
|
|
version: "5.0.0"
|
|
updated: "2026-02-03"
|
|
framework: "React 19.0.0 + Vite 6.0.6"
|
|
styling: "Tailwind CSS 3.4.17"
|
|
state: "Zustand 5.0.2"
|
|
forms: "React Hook Form 7.54.2 + Zod"
|
|
testing: "Vitest 4.0.17 + React Testing Library 16.3.1"
|
|
estado: "completado"
|
|
nota_auditoria: "Inventario actualizado post Sprint 1-3 (ST-4.2-UPDATE-INVENTORY)"
|
|
|
|
portals:
|
|
- nombre: "auth"
|
|
descripcion: "Autenticacion"
|
|
ruta: "/auth"
|
|
estado: "completado"
|
|
pages:
|
|
- LoginPage.tsx
|
|
- RegisterPage.tsx
|
|
- ForgotPasswordPage.tsx
|
|
- OAuthCallbackPage.tsx
|
|
components:
|
|
- OAuthButtons.tsx
|
|
|
|
- nombre: "onboarding"
|
|
descripcion: "Wizard de onboarding 4 pasos"
|
|
ruta: "/onboarding"
|
|
estado: "completado"
|
|
pages:
|
|
- OnboardingPage.tsx
|
|
steps:
|
|
- CompanyStep.tsx
|
|
- CompleteStep.tsx
|
|
- InviteStep.tsx
|
|
- PlanStep.tsx
|
|
|
|
- nombre: "dashboard"
|
|
descripcion: "Portal usuario final (Dashboard)"
|
|
ruta: "/dashboard"
|
|
estado: "completado"
|
|
pages:
|
|
- DashboardPage.tsx
|
|
- AIPage.tsx
|
|
- AuditLogsPage.tsx
|
|
- BillingPage.tsx
|
|
- FeatureFlagsPage.tsx
|
|
- SettingsPage.tsx
|
|
- StoragePage.tsx
|
|
- UsersPage.tsx
|
|
- WebhooksPage.tsx
|
|
|
|
- nombre: "sales"
|
|
descripcion: "Sales Foundation - Leads, Oportunidades, Pipeline"
|
|
ruta: "/dashboard/sales"
|
|
estado: "completado"
|
|
pages:
|
|
- SalesPage.tsx
|
|
- LeadsPage.tsx
|
|
- LeadDetailPage.tsx
|
|
- OpportunitiesPage.tsx
|
|
- OpportunityDetailPage.tsx
|
|
- ActivitiesPage.tsx
|
|
nota: "SAAS-018 - 6 paginas implementadas"
|
|
|
|
- nombre: "commissions"
|
|
descripcion: "Commissions - Esquemas, Entradas, Periodos, Ganancias"
|
|
ruta: "/dashboard/commissions"
|
|
estado: "completado"
|
|
pages:
|
|
- CommissionsPage.tsx
|
|
- SchemesPage.tsx
|
|
- EntriesPage.tsx
|
|
- PeriodsPage.tsx
|
|
- MyEarningsPage.tsx
|
|
nota: "SAAS-020 - 5 paginas implementadas"
|
|
|
|
- nombre: "portfolio"
|
|
descripcion: "Catalogo de Productos - Categorias, Productos, Variantes"
|
|
ruta: "/dashboard/portfolio"
|
|
estado: "completado"
|
|
pages:
|
|
- PortfolioPage.tsx
|
|
- CategoriesPage.tsx
|
|
- CategoryDetailPage.tsx
|
|
- ProductsPage.tsx
|
|
- ProductDetailPage.tsx
|
|
- ProductFormPage.tsx
|
|
nota: "SAAS-019 - Sprint 2: CategoryDetailPage, ProductDetailPage, ProductFormPage agregadas"
|
|
|
|
- nombre: "mlm"
|
|
descripcion: "Multi-Level Marketing - Redes de distribuidores"
|
|
ruta: "/dashboard/mlm"
|
|
estado: "completado"
|
|
pages:
|
|
- MLMPage.tsx
|
|
- StructuresPage.tsx
|
|
- StructureDetailPage.tsx
|
|
- NodesPage.tsx
|
|
- NodeDetailPage.tsx
|
|
- RanksPage.tsx
|
|
- MyNetworkPage.tsx
|
|
- MyEarningsPage.tsx
|
|
nota: "SAAS-021 - Sprint 2: NodesPage agregada. 8 paginas totales"
|
|
|
|
- nombre: "goals"
|
|
descripcion: "Sistema de Metas y Objetivos"
|
|
ruta: "/dashboard/goals"
|
|
estado: "completado"
|
|
pages:
|
|
- GoalsPage.tsx
|
|
- DefinitionsPage.tsx
|
|
- GoalDetailPage.tsx
|
|
- DefinitionFormPage.tsx
|
|
- AssignmentsPage.tsx
|
|
- AssignmentDetailPage.tsx
|
|
- MyGoalsPage.tsx
|
|
- ReportsPage.tsx
|
|
nota: "SAAS-022 - Sprint 2: AssignmentsPage, DefinitionFormPage agregadas. 8 paginas totales"
|
|
|
|
- nombre: "rbac"
|
|
descripcion: "Role-Based Access Control"
|
|
ruta: "/dashboard/rbac"
|
|
estado: "completado"
|
|
pages:
|
|
- RolesPage.tsx
|
|
- RoleDetailPage.tsx
|
|
- PermissionsPage.tsx
|
|
nota: "Sprint 1: 3 nuevas paginas para gestion RBAC"
|
|
|
|
- nombre: "notifications"
|
|
descripcion: "Notificaciones y Templates"
|
|
ruta: "/dashboard/notifications"
|
|
estado: "completado"
|
|
pages:
|
|
- NotificationsPage.tsx
|
|
- TemplatesPage.tsx
|
|
nota: "Sprint 1: TemplatesPage agregada"
|
|
|
|
- nombre: "admin"
|
|
descripcion: "Portal admin de tenant"
|
|
ruta: "/admin"
|
|
estado: "completado"
|
|
pages:
|
|
- AnalyticsDashboardPage.tsx
|
|
- WhatsAppSettings.tsx
|
|
|
|
- nombre: "settings"
|
|
descripcion: "Configuraciones de usuario"
|
|
ruta: "/settings"
|
|
estado: "completado"
|
|
pages:
|
|
- SettingsPage.tsx
|
|
- GeneralSettings.tsx
|
|
- NotificationSettings.tsx
|
|
- SecuritySettings.tsx
|
|
|
|
- nombre: "superadmin"
|
|
descripcion: "Portal superadmin"
|
|
ruta: "/superadmin"
|
|
estado: "completado"
|
|
pages:
|
|
- TenantsPage.tsx
|
|
- TenantDetailPage.tsx
|
|
- MetricsPage.tsx
|
|
|
|
pages:
|
|
total: 65
|
|
desglose:
|
|
auth: 4
|
|
onboarding: 5
|
|
dashboard_core: 9
|
|
sales: 6
|
|
commissions: 5
|
|
portfolio: 6
|
|
mlm: 8
|
|
goals: 8
|
|
rbac: 3
|
|
notifications: 2
|
|
admin: 2
|
|
settings: 4
|
|
superadmin: 3
|
|
|
|
components:
|
|
total: 57
|
|
por_categoria:
|
|
ai:
|
|
- AIChat.tsx
|
|
- AISettings.tsx
|
|
- ChatMessage.tsx
|
|
analytics:
|
|
- MetricCard.tsx
|
|
- TrendChart.tsx
|
|
audit:
|
|
- ActivityTimeline.tsx
|
|
- AuditFilters.tsx
|
|
- AuditLogRow.tsx
|
|
- AuditStatsCard.tsx
|
|
auth:
|
|
- OAuthButtons.tsx
|
|
common:
|
|
- ExportButton.tsx
|
|
- ExportModal.tsx
|
|
feature-flags:
|
|
- FeatureFlagCard.tsx
|
|
- FeatureFlagForm.tsx
|
|
- TenantOverridesPanel.tsx
|
|
goals:
|
|
- GoalAssignmentCard.tsx
|
|
- GoalCard.tsx
|
|
- GoalFilters.tsx
|
|
- GoalForm.tsx
|
|
- GoalProgressBar.tsx
|
|
- GoalsKPIGrid.tsx
|
|
- ProgressLogForm.tsx
|
|
- ProgressLogList.tsx
|
|
mlm:
|
|
- CommissionsSummary.tsx
|
|
- DownlineList.tsx
|
|
- MLMStatsCard.tsx
|
|
- NetworkTree.tsx
|
|
- NodeCard.tsx
|
|
- NodeStatusBadge.tsx
|
|
- RankBadge.tsx
|
|
- StructureCard.tsx
|
|
notifications:
|
|
- ChannelConfig.tsx
|
|
- DevicesManager.tsx
|
|
- NotificationBell.tsx
|
|
- NotificationDrawer.tsx
|
|
- NotificationItem.tsx
|
|
- PushPermissionBanner.tsx
|
|
- TemplateCard.tsx
|
|
- TemplateForm.tsx
|
|
- TemplatePreview.tsx
|
|
portfolio:
|
|
- CategoryForm.tsx
|
|
- CategoryTree.tsx
|
|
- PriceTable.tsx
|
|
- ProductCard.tsx
|
|
- ProductFilters.tsx
|
|
- VariantList.tsx
|
|
rbac:
|
|
- PermissionsMatrix.tsx
|
|
- RoleCard.tsx
|
|
- RoleForm.tsx
|
|
storage:
|
|
- FileItem.tsx
|
|
- FileList.tsx
|
|
- FileUpload.tsx
|
|
- StorageUsageCard.tsx
|
|
webhooks:
|
|
- WebhookCard.tsx
|
|
- WebhookDeliveryList.tsx
|
|
- WebhookForm.tsx
|
|
whatsapp:
|
|
- WhatsAppTestMessage.tsx
|
|
|
|
conteo_por_modulo:
|
|
ai: 3
|
|
analytics: 2
|
|
audit: 4
|
|
auth: 1
|
|
common: 2
|
|
feature-flags: 3
|
|
goals: 8
|
|
mlm: 8
|
|
notifications: 9
|
|
portfolio: 6
|
|
rbac: 3
|
|
storage: 4
|
|
webhooks: 3
|
|
whatsapp: 1
|
|
|
|
nuevos_sprint_1:
|
|
rbac:
|
|
- RoleCard.tsx
|
|
- RoleForm.tsx
|
|
- PermissionsMatrix.tsx
|
|
notifications:
|
|
- TemplateCard.tsx
|
|
- TemplateForm.tsx
|
|
- TemplatePreview.tsx
|
|
- ChannelConfig.tsx
|
|
audit:
|
|
- AuditFilters.tsx (mejorado)
|
|
- AuditStatsCard.tsx (mejorado)
|
|
|
|
nuevos_sprint_2:
|
|
portfolio:
|
|
- CategoryTree.tsx
|
|
- CategoryForm.tsx
|
|
- ProductCard.tsx
|
|
- ProductFilters.tsx
|
|
- VariantList.tsx
|
|
- PriceTable.tsx
|
|
mlm:
|
|
- NetworkTree.tsx
|
|
- StructureCard.tsx
|
|
- NodeCard.tsx
|
|
- RankBadge.tsx
|
|
- NodeStatusBadge.tsx
|
|
- MLMStatsCard.tsx
|
|
- DownlineList.tsx
|
|
- CommissionsSummary.tsx
|
|
goals:
|
|
- GoalProgressBar.tsx
|
|
- GoalCard.tsx
|
|
- GoalAssignmentCard.tsx
|
|
- GoalFilters.tsx
|
|
- GoalForm.tsx
|
|
- ProgressLogList.tsx
|
|
- ProgressLogForm.tsx
|
|
- GoalsKPIGrid.tsx
|
|
|
|
hooks:
|
|
total_archivos: 24
|
|
archivos:
|
|
- index.ts
|
|
- query-keys.ts
|
|
- useAI.ts
|
|
- useAnalytics.ts
|
|
- useAudit.ts
|
|
- useAuth.ts
|
|
- useCommissions.ts
|
|
- useData.ts
|
|
- useExport.ts
|
|
- useFeatureFlags.ts
|
|
- useGoals.ts
|
|
- useMfa.ts
|
|
- useMlm.ts
|
|
- useNotifications.ts
|
|
- useOAuth.ts
|
|
- useOnboarding.ts
|
|
- usePortfolio.ts
|
|
- usePushNotifications.ts
|
|
- useRbac.ts
|
|
- useSales.ts
|
|
- useStorage.ts
|
|
- useSuperadmin.ts
|
|
- useWebhooks.ts
|
|
- useWhatsApp.ts
|
|
|
|
stores:
|
|
total: 3
|
|
archivos:
|
|
- auth.store.ts
|
|
- ui.store.ts
|
|
- index.ts
|
|
nota: "authStore y uiStore implementados. Otros stores (tenant, subscription, notification, feature-flag) referenciados pero no como archivos separados"
|
|
|
|
services:
|
|
total: 26
|
|
categorias:
|
|
core:
|
|
- api.ts (axios instance)
|
|
- auth.api.ts
|
|
- tenants.api.ts
|
|
- users.api.ts
|
|
billing:
|
|
- billing.api.ts
|
|
- plans.api.ts
|
|
features:
|
|
- notifications.api.ts
|
|
- storage.api.ts
|
|
- ai.api.ts
|
|
- webhooks.api.ts
|
|
- audit.api.ts
|
|
- feature-flags.api.ts
|
|
- onboarding.api.ts
|
|
- whatsapp.api.ts
|
|
sales:
|
|
- sales/leads.api.ts
|
|
- sales/opportunities.api.ts
|
|
- sales/activities.api.ts
|
|
- sales/pipeline.api.ts
|
|
- sales/dashboard.api.ts
|
|
commissions:
|
|
- commissions/schemes.api.ts
|
|
- commissions/assignments.api.ts
|
|
- commissions/entries.api.ts
|
|
- commissions/periods.api.ts
|
|
- commissions/dashboard.api.ts
|
|
portfolio:
|
|
- portfolio/categories.api.ts
|
|
- portfolio/products.api.ts
|
|
|
|
tests:
|
|
total_archivos: 13
|
|
archivos:
|
|
components:
|
|
- ExportButton.test.tsx
|
|
- NotificationBell.test.tsx
|
|
- goals/GoalProgressBar.test.tsx
|
|
- mlm/RankBadge.test.tsx
|
|
- rbac/RoleForm.test.tsx
|
|
hooks:
|
|
- useAuth.test.tsx
|
|
- useGoals.test.tsx
|
|
- useMlm.test.tsx
|
|
- usePortfolio.test.tsx
|
|
- useRbac.test.tsx
|
|
stores:
|
|
- auth.store.test.ts
|
|
- ui.store.test.ts
|
|
utils:
|
|
- helpers.test.ts
|
|
nota_sprint_3: "Sprint 3 agrego tests unitarios para hooks (useGoals, useMlm, usePortfolio, useRbac) y componentes (GoalProgressBar, RankBadge, RoleForm)"
|
|
mejoras_wcag_sprint_3:
|
|
- AuditFilters.tsx
|
|
- AuditStatsCard.tsx
|
|
- RoleForm.tsx
|
|
- GoalProgressBar.tsx
|
|
- RankBadge.tsx
|
|
- NotificationBell.tsx
|
|
- ExportButton.tsx
|
|
- ExportModal.tsx
|
|
- MetricCard.tsx
|
|
- TrendChart.tsx
|
|
- FileUpload.tsx
|
|
|
|
resumen:
|
|
nota_auditoria: "ACTUALIZACION 2026-02-03: Post Sprint 1-3"
|
|
total_pages: 65
|
|
total_components: 57
|
|
total_hooks_archivos: 24
|
|
total_stores: 3
|
|
total_api_services: 26
|
|
total_tests_archivos: 13
|
|
|
|
planificado:
|
|
pages_actuales: 65
|
|
pages_objetivo: 65
|
|
components_actuales: 57
|
|
components_objetivo: 60
|
|
stores_actuales: 3
|
|
stores_objetivo: 6
|
|
hooks_actuales: 24
|
|
hooks_objetivo: 24
|
|
nota: "Sprint 1-3 completados. UI para todos los modulos implementada"
|
|
|
|
gaps_identificados:
|
|
criticos: []
|
|
altos: []
|
|
medios:
|
|
- "Stores adicionales (tenant, subscription, notification, feature-flag) a separar en archivos individuales"
|
|
resueltos_2026_02_03:
|
|
- "Sprint 1: RBAC pages (3), Notifications TemplatesPage, componentes RBAC y Notifications"
|
|
- "Sprint 2: Portfolio pages (3 nuevas), MLM NodesPage, Goals pages (2 nuevas), 22 componentes nuevos"
|
|
- "Sprint 3: 13 archivos de tests, mejoras WCAG en 11 componentes"
|
|
|
|
dependencias_npm:
|
|
core:
|
|
- "react@19.0.0"
|
|
- "react-dom@19.0.0"
|
|
- "react-router-dom@6.x"
|
|
- "vite@6.0.6"
|
|
state:
|
|
- "zustand@5.0.2"
|
|
- "@tanstack/react-query"
|
|
forms:
|
|
- "react-hook-form@7.54.2"
|
|
- "zod"
|
|
- "@hookform/resolvers"
|
|
styling:
|
|
- "tailwindcss@3.4.17"
|
|
- "@headlessui/react"
|
|
- "@heroicons/react"
|
|
utils:
|
|
- "axios"
|
|
- "date-fns"
|
|
- "clsx"
|
|
notifications:
|
|
- "socket.io-client"
|
|
testing:
|
|
- "vitest@4.0.17"
|
|
- "@testing-library/react@16.3.1"
|
|
|
|
ultima_actualizacion: "2026-02-03"
|
|
actualizado_por: "Claude Opus 4.5 (ST-4.2-UPDATE-INVENTORY)"
|
|
|
|
historial_cambios:
|
|
- fecha: "2026-02-03"
|
|
tipo: "actualizacion_inventario"
|
|
descripcion: "ST-4.2-UPDATE-INVENTORY: Actualizacion post Sprint 1-3. 65 pages, 57 components, 13 test files, 24 hook files"
|
|
agente: "Claude Opus 4.5 (ST-4.2-UPDATE-INVENTORY)"
|
|
cambios_principales:
|
|
- "Sprint 1: RBAC pages (RolesPage, RoleDetailPage, PermissionsPage), TemplatesPage, componentes RBAC/Notifications"
|
|
- "Sprint 2: Portfolio pages (CategoryDetailPage, ProductDetailPage, ProductFormPage), NodesPage MLM, Goals pages (AssignmentsPage, DefinitionFormPage)"
|
|
- "Sprint 2: 22 componentes nuevos (Portfolio, MLM, Goals)"
|
|
- "Sprint 3: 13 archivos de tests, mejoras WCAG 11 componentes"
|
|
- fecha: "2026-01-25"
|
|
tipo: "implementacion"
|
|
descripcion: "SAAS-019 Portfolio: 21 React Query hooks y 2 API services (categories.api.ts, products.api.ts)"
|
|
agente: "Claude Opus 4.5 (SAAS-019 Portfolio)"
|
|
- fecha: "2026-01-25"
|
|
tipo: "implementacion"
|
|
descripcion: "4 Zustand stores implementados (tenant, subscription, notification, feature-flag)"
|
|
agente: "Claude Opus 4.5 (Correccion Gaps Cross-Project)"
|
|
- fecha: "2026-01-24"
|
|
tipo: "correccion_critica"
|
|
descripcion: "CORRECCION: Sales (6 paginas) y Commissions (5 paginas) SI implementados"
|
|
agente: "Claude Opus 4.5 (Validacion de Coherencia)"
|