LiterAlura es una aplicación de consola desarrollada en Java utilizando el framework Spring Boot. El proyecto interactúa con la API de Gutendex para buscar información sobre libros y autores, almacenándolos en una base de datos PostgreSQL para realizar consultas avanzadas y estadísticas dinámicas.
El sistema ofrece un menú interactivo con las siguientes opciones:
- Buscar libro por título (API): Consulta la API de Gutendex y persiste el libro y su autor en la base de datos (evitando duplicados).
- Mostrar historial de libros buscados: Lista todos los libros almacenados en la base de datos local.
- Listar autores registrados: Muestra todos los autores con sus respectivos años de nacimiento y fallecimiento.
- Listar autores vivos en determinado año: Filtra autores que estaban vivos en un año específico ingresado por el usuario.
- Listar libros por idioma: Filtra libros por códigos (es, en, fr, pt).
- Top 10 Libros más descargados: Consulta directamente a la base de datos los libros con mayor número de descargas.
- Generar estadísticas de descargas: Utiliza Java Streams y
DoubleSummaryStatisticspara mostrar promedio, máximo y mínimo de descargas. - Buscar autor por nombre: Localiza autores específicos dentro de la base de datos utilizando filtros
IgnoreCase.
- Lenguaje: Java 17+ (Desarrollado en Java 25)
- Framework: Spring Boot 3.4.0 (o superior)
- Persistencia: Spring Data JPA / Hibernate
- Base de Datos: PostgreSQL
- Gestión de Dependencias: Maven
- Consumo de API:
HttpClientyJacksonpara el procesamiento de JSON.
- JDK 17 o superior instalado.
- Maven instalado.
- Instancia de PostgreSQL activa.
-
Clona este repositorio:
git clone [https://github.com/PierreLogs/LiterAlura_Challenge.git](https://github.com/PierreLogs/LiterAlura_Challenge.git)
-
Configura tus variables de entorno en tu IDE:
DB_HOST: Host de tu base de datos (ej.localhost:5432)DB_NAME: Nombre de la base de datos (ej.literalura)DB_USER: Tu usuario de PostgreSQL.DB_PASSWORD: Tu contraseña de PostgreSQL.
-
Ejecuta la aplicación desde tu terminal o IDE:
mvn spring-boot:run
model: Contiene las entidades JPA (Libros,Autor) y los Records para el mapeo de la API.repository: Interfaces que gestionan las consultas a la base de datos mediante Derived Queries y@Query.service: Lógica de negocio, consumo de API y conversión de datos.controller: ClasePrincipalque gestiona el flujo del menú y la interacción con el usuario.
Desarrollado por PierreLogs como parte del Challenge de Alura Latam y Oracle Next Education (ONE).