feat: Dashboard principal de SIENEP con layout reutilizable
- Layout reutilizable (Sidebar, Header, Footer)
- Componentes UI base (Badge, Card, Table)
- Componentes del Dashboard (QuickAccessCard, RemindersTable)
- Route group (dashboard) con metadata y favicon
🎯 ¿Qué hace este MR?
Implementación del Dashboard principal (Inicio) del sistema SIENEP, junto con la arquitectura base de layout reutilizable, componentes UI y helpers para conectar el backend.
🛠️ Cambios principales
🏗️ Infraestructura
- Route group
(dashboard)con layout compartido - Metadata (títulos por página) y favicon UTEC
- Helper
apiFetchpreparado para conectar backend
🎨 Layout reutilizable
-
Sidebar: menú lateral con 7 secciones y detección de ruta activa -
Header: barra superior con usuario (mock hasta integrar auth) -
Footer: pie de página con copyright -
DashboardShell: contenedor que junta todo
🧩 Componentes UI base
-
Badge: etiquetas de estado con variantes semánticas -
Card: contenedor reutilizable con sombra -
Table: tabla base (Table,Tr,Td)
📊 Dashboard
-
QuickAccessCard: tarjetas de acceso rápido -
RemindersPreview: vista previa de recordatorios -
RemindersTable: tabla con estados coloreados - Página principal con grilla de tarjetas + tabla
📄 Datos y tipos
- Tipos TypeScript del sistema (
src/lib/types.ts) - Datos mock temporales (
src/lib/mock-data.ts)
📚 Documentación
- README completo con stack, estructura, paleta y estado del proyecto
-
.env.examplecomo plantilla de variables de entorno
✅ Checklist
-
Compila sin errores ( npx tsc --noEmit) -
Probado localmente -
No rompe el login existente ( /loginsigue funcionando) -
Commits siguen Conventional Commits -
README actualizado -
Metadata y favicon personalizados
👀 Notas para el reviewer
- El login del compañero vive en
src/app/login/page.tsxy no fue modificado. - El Dashboard está accesible sin autenticación hasta integrar middleware.
- Los datos son mock temporales; se conectarán a la API real (Swagger) en el próximo sprint.