📚 LiterAlura – Catálogo de Libros en Consola Bienvenido/a a LiterAlura, un proyecto del programa Oracle Next Education (ONE) junto a Alura Latam. Este desafío consiste en la creación de un catálogo de libros en el cual la persona usuaria puede registrar, consultar y gestionar libros mediante consola, conectándose a la API Gutendex y almacenando la información en una base de datos PostgreSQL.
🚀 Tecnologías utilizadas • Java 17 • Spring Boot 3.2.x • Spring Data JPA • PostgreSQL • Maven • Gutendex API (basada en Project Gutenberg)
⚙️ Requisitos previos Antes de comenzar, asegúrate de tener instalado: • Java JDK 17+ • Maven • PostgreSQL • IDE recomendado: IntelliJ IDEA o Eclipse
📌 Funcionalidades principales La aplicación cuenta con 5 funcionalidades básicas:
- Buscar libro por título o La persona usuaria ingresa el nombre de un libro. o La aplicación consulta en Gutendex API, recupera sus datos y los registra en la base de datos. o Ejemplo: Pride → se registra Pride and Prejudice (Jane Austen).
- Listar libros registrados o Muestra todos los libros guardados en la base de datos.
- Listar autores registrados o Muestra todos los autores, evitando duplicados.
- Listar autores vivos en un año específico o La persona usuaria ingresa un año (ej. 1600) y la aplicación devuelve los autores que estaban vivos en ese año.
- Listar libros por idioma o La persona usuaria ingresa un código de idioma (EN, ES, FR, PT) y obtiene los libros disponibles en ese idioma. 🔹 Validaciones incluidas: • Evita registrar un mismo libro más de una vez. • Informa cuando no se encuentra un libro en la API.
📂 Estructura del proyecto literalura/ ├── src/main/java/com/alura/literalura/ │ ├── model/ # Entidades JPA │ ├── repository/ # Repositorios Spring Data JPA │ ├── service/ # Lógica de negocio │ └── controller/ # Menú interactivo en consola ├── src/main/resources/ │ └── application.properties # Configuración de PostgreSQL ├── pom.xml # Dependencias Maven
🛠️ Instalación y ejecución
- Clona este repositorio:
- git clone https://github.com/tuusuario/literalura.git
- cd literalura
- Configura la base de datos en application.properties:
- spring.datasource.url=jdbc:postgresql://localhost:5432/literalura
- spring.datasource.username=postgres
- spring.datasource.password=tu_password
- spring.jpa.hibernate.ddl-auto=update
- Ejecuta el proyecto con Maven:
- mvn spring-boot:run
- Interactúa con el menú en consola:
- ===== LITERALURA =====
- 1 - Buscar libro por título
- 2 - Listar libros registrados
- 3 - Listar autores registrados
- 4 - Listar autores vivos en un año
- 5 - Listar libros por idioma
- 0 - Salir
🌐 API Gutendex La aplicación consume la API pública Gutendex, basada en Project Gutenberg, con más de 70.000 libros disponibles de manera gratuita. Ejemplo de consulta: GET https://gutendex.com/books/?search=pride
💡 Sugerencias adicionales Además de las funcionalidades básicas, se recomienda: • Implementar filtros avanzados (por género, número de descargas, etc.). • Añadir paginación a las consultas. • Mejorar el manejo de errores y excepciones. • Crear pruebas unitarias con JUnit y Mockito.
🤝 Contribución
- Haz un fork del repositorio
- Crea una nueva rama:
- git checkout -b feature/nueva-funcionalidad
- Realiza tus cambios y haz commit
- Envía un pull request
📜 Licencia Este proyecto es de uso educativo bajo la licencia MIT.
¿Quieres que lo prepare en inglés también (README bilingüe) para que quede más universal?