Skip to content

Repository files navigation

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Discord Backers on Open Collective Sponsors on Open Collective Donate us Support us Follow us on Twitter

📚 Sistema de Gestión de Biblioteca - Backend

API REST desarrollada con NestJS para gestión completa de biblioteca con autenticación JWT y sistema de préstamos.

🚀 Características

  • 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

🛠️ Inicio Rápido

Prerrequisitos

  • Docker y Docker Compose
  • Git

Instalación

  1. Clonar el repositorio
git clone <repo-url>
cd gestlib-backend
  1. Iniciar el sistema
./start.sh

El sistema creará automáticamente:

  • Base de datos PostgreSQL
  • Backend NestJS
  • Usuarios iniciales
  • Interfaz PgAdmin

🌐 Acceso al Sistema

👤 Usuarios Iniciales

El sistema crea automáticamente estos usuarios:

Rol Email Contraseña
Usuario usuario@biblioteca.com User123!

📖 Desarrollo

# Modo desarrollo (con hot reload)
./dev.sh

# Ver logs interactivamente
./logs.sh

📝 Visualización de Logs

Opciones rápidas de logs:

# 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

Script interactivo:

./logs.sh

El script logs.sh te permite elegir entre diferentes opciones de visualización de logs de forma interactiva.

🔧 Comandos Útiles

# 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_db

📋 API Endpoints

Autenticación

  • POST /api/auth/login - Iniciar sesión
  • POST /api/auth/register - Registrar usuario

Usuarios

  • GET /api/users - Listar usuarios
  • POST /api/users - Crear usuario
  • GET /api/users/:id - Obtener usuario
  • PATCH /api/users/:id - Actualizar usuario

Libros

  • GET /api/books - Listar libros
  • POST /api/books - Crear libro
  • GET /api/books/:id - Obtener libro
  • PATCH /api/books/:id - Actualizar libro

Préstamos

  • GET /api/loans - Listar préstamos
  • POST /api/loans/create - Crear préstamo
  • PATCH /api/loans/:id/return - Devolver libro
  • GET /api/loans/overdue - Préstamos vencidos

🏗️ Arquitectura

src/
├── auth/           # Autenticación JWT
├── users/          # Gestión de usuarios
├── books/          # Gestión de libros
├── loans/          # Sistema de préstamos
└── database/       # Seeder automático

🔒 Variables de Entorno

El archivo .env contiene todas las configuraciones necesarias:

  • Credenciales de base de datos
  • Configuración JWT
  • Usuarios iniciales
  • PgAdmin credentials

📚 Tecnologías

  • 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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages