Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
17 KiB
17 KiB
US-ADM-008: Dashboard de Administración General
ID: US-ADM-008
Módulo: MAI-013
Relacionado con: Todos los RFs de MAI-013
Prioridad: Media
Story Points: 5
📖 Historia de Usuario
Como Director General o Administrador
Quiero visualizar un dashboard consolidado con métricas clave de administración y seguridad
Para monitorear la salud del sistema y tomar decisiones informadas rápidamente
✅ Criterios de Aceptación
1. Vista General del Dashboard
Given que soy Director o Admin
When accedo a "Dashboard de Administración"
Then debo ver widgets con información en tiempo real:
- Resumen de usuarios y roles
- Estado de seguridad del sistema
- Actividad reciente (últimas 24 horas)
- Estado de backups
- Centros de costo (top 5 por costo)
- Alertas pendientes
- Métricas de sistema
And todos los datos deben actualizarse automáticamente cada 30 segundos
2. Widget: Resumen de Usuarios
Given que estoy en el dashboard
Then el widget de usuarios debe mostrar:
- Total de usuarios activos
- Usuarios conectados ahora (🟢 en vivo)
- Nuevos usuarios (últimos 7 días)
- Invitaciones pendientes
- Usuarios bloqueados
- Gráfico de distribución por rol (pie chart)
- Link rápido a "Gestionar Usuarios"
3. Widget: Estado de Seguridad
Given que estoy monitoreando seguridad
Then el widget debe mostrar:
- Score de seguridad global (0-100)
- Passwords expirados (contador con alerta)
- Usuarios sin 2FA (contador con alerta)
- Intentos de login fallidos (últimas 24h)
- Sesiones sospechosas
- Última vulnerabilidad detectada
- Indicador visual: 🟢 Seguro / 🟡 Advertencia / 🔴 Crítico
4. Widget: Actividad Reciente
Given que quiero ver actividad del sistema
Then el widget debe mostrar:
- Timeline de últimas 10 acciones críticas
- Con formato: "Usuario realizó Acción en Módulo hace Tiempo"
- Ejemplo: "María L. eliminó presupuesto en Presupuestos hace 5 min"
- Iconos según tipo de acción
- Filtro rápido por severidad
- Link a "Ver Bitácora Completa"
5. Widget: Estado de Backups
Given que monitoreo backups
Then el widget debe mostrar:
- Último backup: Fecha/hora, tipo, estado (✅/❌)
- Próximo backup programado: Countdown
- Tasa de éxito (últimos 30 días) con gráfico
- Espacio usado: Local / S3
- Backups sin verificar (alerta si >3)
- RTO/RPO actuales
- Link a "Gestionar Backups"
6. Widget: Centros de Costo
Given que quiero ver resumen de costos
Then el widget debe mostrar:
- Top 5 centros con mayor costo (mes actual)
- Con barra de progreso indicando % del total
- Total acumulado del mes
- Comparación vs. mes anterior (% cambio)
- Gráfico de tendencia (últimos 6 meses)
- Link a "Ver Todos los Centros de Costo"
7. Widget: Alertas Pendientes
Given que hay alertas sin atender
Then el widget debe mostrar:
- Contador de alertas por severidad:
- 🚨 Críticas
- ⚠️ Altas
- ℹ️ Medias
- Lista de alertas recientes (últimas 5)
- Tiempo sin atender
- Botón "Marcar como atendida"
- Notificación badge en icono si hay críticas
8. Widget: Métricas del Sistema
Given que monitoreo rendimiento
Then el widget debe mostrar:
- Uso de CPU (%)
- Uso de memoria (%)
- Uso de disco (%)
- Conexiones a BD activas
- Requests por minuto
- Tiempo de respuesta promedio (ms)
- Gráficos de línea (últimas 2 horas)
- Alertas si algún indicador >80%
9. Filtros de Periodo
Given que quiero ver datos de diferentes periodos
When selecciono filtro de periodo:
- Hoy
- Últimos 7 días
- Últimos 30 días
- Mes actual
- Rango personalizado
Then todos los widgets deben:
- Actualizar datos según periodo seleccionado
- Mostrar comparación con periodo anterior
- Mantener selección al navegar
10. Acciones Rápidas
Given que estoy en el dashboard
Then debo ver panel de acciones rápidas:
- [+ Invitar Usuario]
- [🔒 Crear Backup Manual]
- [👁️ Ver Sesiones Activas]
- [📊 Exportar Reporte]
- [⚙️ Configurar Alertas]
And cada botón debe abrir modal o redirigir a sección correspondiente
11. Exportar Dashboard
Given que quiero compartir métricas
When hago clic en "Exportar Dashboard"
And selecciono formato: "PDF"
Then el sistema debe:
- Generar PDF con snapshot de todos los widgets
- Incluir fecha/hora de generación
- Incluir gráficos y tablas
- Descargar automáticamente
- Registrar exportación en audit log
12. Personalizar Dashboard
Given que quiero personalizar mi vista
When hago clic en "⚙️ Personalizar"
Then debo poder:
- Arrastrar y soltar widgets para reordenar
- Ocultar/mostrar widgets específicos
- Cambiar tamaño de widgets (pequeño, mediano, grande)
- Guardar configuración personal
- Restaurar a configuración por defecto
🎨 Mockup / Wireframe
Dashboard Principal
┌─────────────────────────────────────────────────────────────────┐
│ Dashboard de Administración [Hoy ▼] [Exportar] [⚙️] │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌────────────────┐│
│ │ 👥 Usuarios │ │ 🔒 Seguridad │ │ ⚠️ Alertas ││
│ │ │ │ │ │ ││
│ │ 45 Activos │ │ Score: 85/100 🟢 │ │ 🚨 2 Críticas ││
│ │ 🟢 12 Conectados │ │ │ │ ⚠️ 5 Altas ││
│ │ +3 Esta semana │ │ ⚠️ 3 Pass. exp. │ │ ℹ️ 12 Medias ││
│ │ │ │ ⚠️ 7 Sin 2FA │ │ ││
│ │ 📊 Por rol: │ │ 8 Intentos fall. │ │ [Ver Todo] ││
│ │ Director: 8 │ │ │ │ ││
│ │ Ingeniero: 15 │ │ [Configurar] │ │ ││
│ │ Residente: 12 │ │ │ │ ││
│ │ Otros: 10 │ │ │ │ ││
│ │ │ │ │ │ ││
│ │ [Gestionar] │ │ │ │ ││
│ └──────────────────┘ └──────────────────┘ └────────────────┘│
│ │
│ ┌────────────────────────────────────┐ ┌───────────────────┐ │
│ │ 📋 Actividad Reciente │ │ 💾 Backups │ │
│ │ │ │ │ │
│ │ 🔴 María L. intentó eliminar │ │ Último: │ │
│ │ presupuesto $250K │ │ ✅ Full │ │
│ │ Hace 5 min │ │ 20 Nov, 03:00 AM │ │
│ │ │ │ │ │
│ │ 🟡 Juan P. actualizó monto │ │ Próximo en: │ │
│ │ en Presupuesto PRE-089 │ │ ⏱️ 2h 15min │ │
│ │ Hace 12 min │ │ │ │
│ │ │ │ Tasa éxito: │ │
│ │ 🟢 Ana G. creó nuevo proyecto │ │ ████████░ 98.5% │ │
│ │ "Residencial Vista" │ │ │ │
│ │ Hace 23 min │ │ Espacio: │ │
│ │ │ │ Local: 450 GB │ │
│ │ 🟢 Pedro M. aprobó compra │ │ S3: 1.2 TB │ │
│ │ Materiales - $45K │ │ │ │
│ │ Hace 35 min │ │ [Gestionar] │ │
│ │ │ │ │ │
│ │ [Ver Bitácora Completa] │ │ │ │
│ └────────────────────────────────────┘ └───────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 💰 Top Centros de Costo (Mes Actual) │ │
│ │ │ │
│ │ 101 - Proyecto Res. A ████████████████░░░░ $180,000 │ │
│ │ 102 - Proyecto Com. B ██████████░░░░░░░░░░ $ 70,000 │ │
│ │ 200 - Administración ████░░░░░░░░░░░░░░░░ $ 50,000 │ │
│ │ 300 - Marketing ███░░░░░░░░░░░░░░░░░ $ 30,000 │ │
│ │ 103 - Servicios Comp. ██░░░░░░░░░░░░░░░░░░ $ 20,000 │ │
│ │ │ │
│ │ Total mes: $350,000 📈 +15% vs mes anterior │ │
│ │ [Ver Todos] │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 📊 Métricas del Sistema (Últimas 2h) │ │
│ │ │ │
│ │ CPU: ████████░░░░░░░░░░ 45% Memoria: ██████░░░░ 62%│ │
│ │ Disco: ████░░░░░░░░░░░░░░ 35% Conexiones BD: 24 │ │
│ │ │ │
│ │ [Gráficos de línea mostrando tendencias] │ │
│ │ │ │
│ │ Requests/min: 1,250 Tiempo respuesta: 125ms │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ⚡ Acciones Rápidas: │
│ [+ Invitar Usuario] [🔒 Backup Manual] [👁️ Sesiones] [📊 Reporte]│
└─────────────────────────────────────────────────────────────────┘
Modal de Exportar Dashboard
┌─────────────────────────────────────────────┐
│ Exportar Dashboard [X]│
├─────────────────────────────────────────────┤
│ │
│ Formato * │
│ ◉ PDF (recomendado para reportes) │
│ ○ Excel (incluye datos tabulares) │
│ ○ CSV (solo datos, sin gráficos) │
│ │
│ Incluir │
│ ☑️ Todos los widgets │
│ ☑️ Gráficos y tablas │
│ ☑️ Metadata (fecha, usuario) │
│ ☐ Anexar bitácora de auditoría │
│ │
│ Periodo │
│ ◉ Datos actuales (snapshot) │
│ ○ Rango personalizado │
│ │
│ ℹ️ El archivo contendrá datos sensibles. │
│ Será registrado en la bitácora. │
│ │
│ [Cancelar] [Exportar] │
└─────────────────────────────────────────────┘
🧪 Casos de Prueba
CP-001: Dashboard Carga Correctamente
Precondiciones:
- Usuario con rol "director"
Pasos:
- Login al sistema
- Navegar a "Dashboard de Administración"
Resultado Esperado:
- ✅ Todos los widgets cargan en <2 segundos
- ✅ Datos son actuales (timestamp correcto)
- ✅ No hay errores en consola
- ✅ Gráficos se renderizan correctamente
CP-002: Actualización Automática
Precondiciones:
- Dashboard abierto
Pasos:
- Esperar 30 segundos
- Observar actualización de datos
Resultado Esperado:
- ✅ Widgets se actualizan automáticamente
- ✅ Sin recargar página completa
- ✅ Indicador visual de actualización
- ✅ No interrumpe interacción del usuario
CP-003: Filtro por Periodo
Precondiciones:
- Dashboard muestra "Hoy"
Pasos:
- Cambiar filtro a "Últimos 30 días"
- Verificar cambios
Resultado Esperado:
- ✅ Todos los widgets actualizan datos
- ✅ Actividad reciente muestra últimos 30 días
- ✅ Métricas recalculadas correctamente
- ✅ Comparación con periodo anterior visible
CP-004: Exportar Dashboard a PDF
Precondiciones:
- Dashboard con datos
Pasos:
- Clic "Exportar"
- Seleccionar "PDF"
- Confirmar
Resultado Esperado:
- ✅ PDF genera en <5 segundos
- ✅ Incluye todos los widgets visibles
- ✅ Gráficos renderizados correctamente
- ✅ Descarga automáticamente
- ✅ Exportación registrada en audit log
CP-005: Acciones Rápidas Funcionan
Precondiciones:
- Dashboard abierto
Pasos:
- Clic en "[+ Invitar Usuario]"
- Verificar modal
Resultado Esperado:
- ✅ Modal de invitación abre correctamente
- ✅ No requiere navegación a otra página
- ✅ Al cerrar modal, vuelve al dashboard
CP-006: Personalizar Dashboard
Precondiciones:
- Dashboard en configuración por defecto
Pasos:
- Clic "⚙️ Personalizar"
- Arrastrar widget "Usuarios" al primer lugar
- Ocultar widget "Métricas del Sistema"
- Guardar
Resultado Esperado:
- ✅ Widgets reordenados correctamente
- ✅ Widget oculto no se muestra
- ✅ Configuración persiste al recargar
- ✅ Otros usuarios no ven cambios (configuración personal)
🔗 Dependencias
Requisitos Previos:
- Todos los módulos de MAI-013 implementados
- APIs de estadísticas disponibles
- WebSockets o polling para actualización en tiempo real
APIs Necesarias:
GET /api/admin/dashboard/summary- Resumen generalGET /api/admin/dashboard/users- Métricas de usuariosGET /api/admin/dashboard/security- Score de seguridadGET /api/admin/dashboard/activity- Actividad recienteGET /api/admin/dashboard/backups- Estado de backupsGET /api/admin/dashboard/cost-centers- Top centros de costoGET /api/admin/dashboard/alerts- Alertas pendientesGET /api/admin/dashboard/system-metrics- Métricas de sistemaPOST /api/admin/dashboard/export- ExportarPUT /api/admin/dashboard/layout- Guardar configuración
Componentes Frontend:
- DashboardLayout (grid responsive)
- Widget components (UserWidget, SecurityWidget, etc.)
- Charts (recharts, chart.js)
- Drag & drop (react-beautiful-dnd)
📊 Métricas de Éxito
- Tiempo de carga inicial: <2 segundos
- Actualización automática: Cada 30 segundos sin errores
- Precisión de datos: 100% consistencia con datos reales
- Tiempo de exportación: <5 segundos para PDF
🎯 Valor de Negocio
Este dashboard permite a los administradores:
- Detectar problemas de seguridad rápidamente
- Monitorear salud del sistema proactivamente
- Tomar decisiones informadas con datos en tiempo real
- Ahorrar tiempo al tener todo consolidado en una vista
- Identificar tendencias y patrones de uso
Generado: 2025-11-20
Estado: ✅ Listo para desarrollo