Un sistema de gestión de biblioteca completo, construido con una arquitectura basada en microservicios utilizando Spring Boot para el backend y una interfaz Frontend en HTML/CSS/JS (Vanilla), preparada para ser servida a través de Nginx.
El proyecto está dividido en varios microservicios independientes que se comunican entre sí. Además, incluye un servidor web frontend.
-
Frontend (
frontend/)- Interfaz de usuario construida con HTML, CSS y JavaScript puro (Vanilla).
- Incluye vistas para la gestión de Libros, Usuarios y Préstamos.
- Preparado para desplegarse mediante un contenedor Nginx (accesible por defecto en el puerto
90al usar Docker).
-
Libros Service (
libros-service/) - Puerto8081- Microservicio encargado de la administración del catálogo completo de libros.
- Controla el stock y la disponibilidad.
-
Usuarios Service (
usuarios-service/) - Puerto8082- Microservicio para el registro y la administración de los usuarios del sistema.
-
Préstamos Service (
prestamos-service/) - Puerto8083- Microservicio que gestiona la lógica de préstamos y devoluciones de los libros.
- Interactúa con
libros-serviceyusuarios-service.
- Backend: Java 21, Spring Boot 3.5.7, Spring Data JPA, H2 Database (Persistent mode) / MySQL Connector.
- Frontend: HTML5, CSS3, JavaScript Vanilla, FontAwesome.
- Despliegue y Construcción: Maven, Docker, Docker Compose.
Hay dos formas principales de ejecutar el sistema de biblioteca en su entorno local: usando Docker Compose o mediante el Script Local (Windows).
Asegúrate de tener instalado Docker y docker-compose. En la raíz del proyecto, ejecuta el siguiente comando:
docker-compose up --buildEsto compilará los microservicios, creará las imágenes y levantará los 4 contenedores (los tres servicios backend y el servidor Nginx para el frontend) en una misma red (biblioteca-net).
- Frontend accesible en:
http://localhost:90
Si estás en un entorno Windows y tienes Maven y Java 21 configurados en tus variables de entorno, puedes ejecutar el sistema simplemente haciendo doble clic en el archivo iniciar-sistema.bat.
Este script se encarga de:
- Compilar cada uno de los microservicios sin ejecutar pruebas (
mvn clean package -DskipTests). - Levantar independientemente cada servicio:
- Libros en
http://localhost:8081 - Usuarios en
http://localhost:8082 - Préstamos en
http://localhost:8083
- Libros en
- Finalmente, abre el archivo
frontend/index.htmlen el navegador predeterminado.
El sistema por defecto hace uso de H2 Database configurada para guardar los datos en archivos locales persistentes dentro de cada servicio (ej. ./data/librosdb).
Para acceder a la consola de administración de base de datos H2 de cada servicio, puedes navegar a:
- Libros:
http://localhost:8081/h2-console - Usuarios:
http://localhost:8082/h2-console - Préstamos:
http://localhost:8083/h2-console
Para realizar modificaciones:
- Cada microservicio es un proyecto Maven independiente, contiene su propio
pom.xml. - Las configuraciones como los puertos, configuración de la base de datos y logging se encuentran en
src/main/resources/application.propertiesde cada servicio. - El Frontend está puramente basado en archivos estáticos; cualquier cambio en
html,cssojsse reflejará directamente al recargar la página (si no estás usando Docker).
Desarrollado con cariño usando Spring Boot - 2025