Skip to main content

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.

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.

Métricas disponibles

Todas las métricas del dashboard provienen de una única llamada a GET /api/reportes/dashboard. El endpoint ejecuta múltiples consultas en paralelo y devuelve un objeto estructurado con tres secciones: socios, materiales y prestamos.
SecciónMétricaDescripción
sociostotalTotal de socios registrados en el sistema
sociosactivosSocios con estado ACTIVO
sociosmorososSocios con estado MOROSO (tienen préstamos vencidos)
materialestotalTotal de materiales en el catálogo
materialesdisponiblesMateriales con estado DISPONIBLE (tienen stock)
materialesprestadosMateriales con estado PRESTADO (sin stock disponible)
prestamosactivosPréstamos con estado ACTIVO (en curso, dentro de plazo)
prestamosmoraPréstamos con estado MORA (plazo vencido)
prestamosvencidosPréstamos ACTIVO cuya fechaDevolucion ya pasó pero aún no fueron marcados como MORA
prestamosdevueltosTotal de préstamos con estado DEVUELTO
prestamoshoyPréstamos creados en el día de hoy
prestamosdevoluccionesHoyDevoluciones registradas hoy
Ejemplo de respuesta de GET /api/reportes/dashboard:
{
  "data": {
    "socios": {
      "total": 142,
      "activos": 130,
      "morosos": 12
    },
    "materiales": {
      "total": 389,
      "disponibles": 301,
      "prestados": 88
    },
    "prestamos": {
      "activos": 74,
      "mora": 14,
      "vencidos": 3,
      "devueltos": 512,
      "hoy": 5,
      "devoluccionesHoy": 2
    }
  }
}

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.
src/pages/dashboard/
├── index.astro        ← Dashboard principal (este módulo)
├── socios.astro
├── materiales.astro
├── prestamos.astro
└── ...
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ágina dashboard/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.

Build docs developers (and LLMs) love