El dashboard es la pantalla de inicio del sistema para todo usuario autenticado. Muestra un resumen completo del estado actual de la biblioteca: cuántos socios están activos, qué materiales están disponibles y cuántos préstamos se encuentran en curso o en situación de mora. Está pensado para que el personal de la biblioteca pueda hacer una lectura rápida de la situación operativa sin necesidad de navegar entre módulos.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/camiloivcode/biblioteca-la-palabra/llms.txt
Use this file to discover all available pages before exploring further.
Métricas disponibles
Todas las métricas del dashboard provienen de una única llamada aGET /api/reportes/dashboard. El endpoint ejecuta múltiples consultas en paralelo y devuelve un objeto estructurado con tres secciones: socios, materiales y prestamos.
| Sección | Métrica | Descripción |
|---|---|---|
socios | total | Total de socios registrados en el sistema |
socios | activos | Socios con estado ACTIVO |
socios | morosos | Socios con estado MOROSO (tienen préstamos vencidos) |
materiales | total | Total de materiales en el catálogo |
materiales | disponibles | Materiales con estado DISPONIBLE (tienen stock) |
materiales | prestados | Materiales con estado PRESTADO (sin stock disponible) |
prestamos | activos | Préstamos con estado ACTIVO (en curso, dentro de plazo) |
prestamos | mora | Préstamos con estado MORA (plazo vencido) |
prestamos | vencidos | Préstamos ACTIVO cuya fechaDevolucion ya pasó pero aún no fueron marcados como MORA |
prestamos | devueltos | Total de préstamos con estado DEVUELTO |
prestamos | hoy | Préstamos creados en el día de hoy |
prestamos | devoluccionesHoy | Devoluciones registradas hoy |
GET /api/reportes/dashboard:
Acceso
El dashboard está disponible en la ruta/dashboard/ y corresponde al archivo src/pages/dashboard/index.astro. El acceso requiere que el usuario esté autenticado con un JWT válido almacenado en localStorage.
La verificación de autenticación la realiza DashboardLayout.astro, el layout compartido por todas las páginas protegidas. Al cargarse, comprueba la presencia del accessToken en localStorage; si no existe, redirige al usuario a /login de forma inmediata mediante un script inline.
Si una petición al backend devuelve un
401 Unauthorized, el cliente HTTP api.js intercepta el error automáticamente e intenta renovar la sesión haciendo POST /api/auth/refresh con el refreshToken almacenado en localStorage. Si la renovación tiene éxito, reemplaza el accessToken y reintenta la petición original de forma transparente. Si el refresh también falla, limpia localStorage y redirige al usuario a /login.Datos en tiempo real
El dashboard no utiliza ningún mecanismo de caché local. Al cargar la páginadashboard/index.astro, un script inline ejecuta api.get('/reportes/dashboard') de forma inmediata, garantizando que los números mostrados reflejan siempre el estado actual de la base de datos.
Este diseño es intencional: dado que las operaciones de préstamo, devolución y mora pueden modificar los contadores en cualquier momento, mostrar datos desactualizados podría llevar a decisiones incorrectas por parte del personal.