Biblioteca Popular La Palabra es un sistema de gestión bibliotecaria full-stack diseñado para digitalizar y centralizar las operaciones diarias de una biblioteca pública: registro de socios, catalogación de materiales, control de préstamos y devoluciones, administración de usuarios, y generación de reportes. Reemplaza los registros manuales con una interfaz web moderna y una API REST robusta, garantizando trazabilidad completa, reglas de negocio automatizadas (como el cálculo de mora y el límite de préstamos simultáneos) y control de acceso basado en roles.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.
Stack tecnológico
| Capa | Tecnología |
|---|---|
| Frontend | Astro + Bootstrap 5 + Tailwind CSS |
| Backend | Node.js + Express (CommonJS) |
| Base de Datos | MySQL 8 + Prisma ORM |
| Auth | JWT — access token + refresh token |
| Contenedores | Docker + Docker Compose |
Módulos del sistema
Dashboard
Estadísticas en tiempo real: socios activos, préstamos vigentes, materiales disponibles y alertas de mora.
Socios
CRUD completo de socios con filtros, paginación y gestión de estado (activo / moroso).
Materiales
Catálogo de libros, revistas y otros materiales con tipos, estados y asignación de autores y categorías.
Préstamos
Registro y devolución de préstamos con límite de 3 activos por socio y mora automática a los 30 días.
Autores & Categorías
Gestión del catálogo de autores y categorías (con selector de iconos) utilizados para clasificar materiales.
Usuarios
Administración de cuentas del sistema, asignación de roles y aprobación de solicitudes de registro. Solo disponible para ADMIN.
Reportes
Historial de préstamos, listado de socios morosos y ranking de materiales más solicitados.
Roles de usuario
El sistema implementa dos roles con permisos diferenciados:| Rol | Acceso |
|---|---|
| ADMIN | Acceso completo a todos los módulos, incluyendo la gestión de usuarios del sistema, aprobación de registros y configuración general. |
| BIBLIOTECARIO | Acceso operativo a socios, materiales, préstamos, autores, categorías y reportes. No puede gestionar usuarios ni cambiar roles. |
role.middleware.js (requireRole('ADMIN', ...)), por lo que las restricciones aplican tanto en la interfaz como en la API.
Servicios y puertos
Cada componente del sistema se ejecuta en un contenedor Docker independiente. Los puertos expuestos en el host durante el desarrollo local son:| Servicio | Host | Descripción |
|---|---|---|
| Frontend | http://localhost:3000 | Interfaz web Astro |
| API | http://localhost:4000/api | API REST Express |
| phpMyAdmin | http://localhost:8080 | Gestor visual de base de datos |
| MySQL | localhost:3307 | Conexión directa a MySQL 8 |
¿Listo para levantar el sistema? Sigue la guía de Quickstart para tener el entorno completo corriendo en menos de 5 minutos con Docker Compose.