A progressive Node.js framework for building efficient and scalable server-side applications.
API REST desarrollada con NestJS para gestión completa de biblioteca con autenticación JWT y sistema de préstamos.
- ✅ Autenticación JWT con roles (admin, bibliotecario, usuario)
- 📖 Gestión de libros con inventario automático
- 👥 Gestión de usuarios con diferentes roles
- 📋 Sistema de préstamos con control automático de inventario
- 🐘 PostgreSQL 17 con TypeORM
- 🐳 Dockerizado con docker-compose
- 🌱 Seeder automático para usuarios iniciales
- 🔒 Seguridad con variables de entorno
- Docker y Docker Compose
- Git
- Clonar el repositorio
git clone <repo-url>
cd gestlib-backend- Iniciar el sistema
./start.shEl sistema creará automáticamente:
- Base de datos PostgreSQL
- Backend NestJS
- Usuarios iniciales
- Interfaz PgAdmin
- Backend API: http://localhost:3000
- PgAdmin: http://localhost:5050
- Base de datos: localhost:5432
El sistema crea automáticamente estos usuarios:
| Rol | Contraseña | |
|---|---|---|
| Usuario | usuario@biblioteca.com | User123! |
# Modo desarrollo (con hot reload)
./dev.sh
# Ver logs interactivamente
./logs.sh# Ver logs de todos los servicios en tiempo real
docker compose logs -f
# Ver logs solo del backend
docker compose logs -f backend
# Ver logs con timestamps
docker compose logs -f --timestamps backend
# Ver últimas 50 líneas
docker compose logs --tail=50 backend./logs.shEl script logs.sh te permite elegir entre diferentes opciones de visualización de logs de forma interactiva.
# Parar servicios (conservando datos)
docker compose down
# Reinicio completo (elimina todos los datos)
docker compose down -v && ./start.sh
# Ver estado de contenedores
docker compose ps
# Conectar a PostgreSQL directamente
docker compose exec postgres psql -U biblioteca_admin -d biblioteca_sistema_dbPOST /api/auth/login- Iniciar sesiónPOST /api/auth/register- Registrar usuario
GET /api/users- Listar usuariosPOST /api/users- Crear usuarioGET /api/users/:id- Obtener usuarioPATCH /api/users/:id- Actualizar usuario
GET /api/books- Listar librosPOST /api/books- Crear libroGET /api/books/:id- Obtener libroPATCH /api/books/:id- Actualizar libro
GET /api/loans- Listar préstamosPOST /api/loans/create- Crear préstamoPATCH /api/loans/:id/return- Devolver libroGET /api/loans/overdue- Préstamos vencidos
src/
├── auth/ # Autenticación JWT
├── users/ # Gestión de usuarios
├── books/ # Gestión de libros
├── loans/ # Sistema de préstamos
└── database/ # Seeder automático
El archivo .env contiene todas las configuraciones necesarias:
- Credenciales de base de datos
- Configuración JWT
- Usuarios iniciales
- PgAdmin credentials
- NestJS 11 - Framework backend
- TypeORM - ORM para PostgreSQL
- PostgreSQL 17 - Base de datos
- JWT - Autenticación
- bcrypt - Encriptación de contraseñas
- Docker - Containerización