Skip to content

JHFEGOVI/LiterAlura-challenge-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LiterAlura - Catalogo de Libros

Descripcion

LiterAlura es una aplicacion de consola interactiva en Java con Spring Boot que permite buscar y gestionar libros y autores. Consume la API Gutendex usando el cliente HTTP nativo de Java (HttpClient), persiste la informacion en PostgreSQL con Spring Data JPA y modela una relacion muchos a muchos entre Libro y Autor. El proyecto cumple los requisitos del desafio de Alura Latam.

Tecnologias utilizadas

  • Java 17
  • Spring Boot
  • Spring Data JPA
  • PostgreSQL
  • HttpClient nativo de Java (java.net.http)
  • Jackson
  • Maven

Configuracion de la base de datos

  • Nombre de la base de datos: literalura
  • Usuario por defecto: postgres
  • Contrasena por defecto: postgres

Ejemplo de creacion en PostgreSQL:

CREATE DATABASE literalura;

Si necesitas crear el usuario (opcional):

CREATE USER postgres WITH PASSWORD 'postgres';
GRANT ALL PRIVILEGES ON DATABASE literalura TO postgres;

Como ejecutar la aplicacion

  1. Clona el repositorio.
  2. Configura src/main/resources/application.properties con tus credenciales:
    spring.datasource.url=jdbc:postgresql://localhost:5432/literalura
    spring.datasource.username=postgres
    spring.datasource.password=postgres
    spring.jpa.hibernate.ddl-auto=update
  3. Ejecuta con Maven o desde el IDE:
    ./mvnw spring-boot:run

Funcionalidades implementadas

  1. Buscar libro por titulo (consumo de API Gutendex, registro en BD, evita duplicados).
  2. Listar todos los libros registrados.
  3. Listar todos los autores registrados.
  4. Listar autores vivos en un anio determinado.
  5. Listar libros por idioma (ingles, espanol, frances, portugues).
  6. (Extra) Top 10 libros mas descargados desde la BD.

Estructura del proyecto

  • dto: objetos para mapear respuestas de Gutendex.
  • model: entidades JPA (incluye la relacion muchos a muchos entre Libro y Autor).
  • repository: interfaces Spring Data JPA para acceso a datos.
  • service: logica de negocio, consumo de API y conversion de datos.
  • LiteraluraApplication: clase principal y menu de la aplicacion de consola.

Ejemplo de uso

====== LiterAlura ======
1. Buscar libro por titulo
2. Listar libros registrados
3. Listar autores registrados
4. Listar autores vivos en un año
5. Listar libros por idioma
6. Top 10 libros mas descargados
0. Salir
========================

4
Ingrese el año:
1890
Autores vivos en 1890:
Autor: Stoker, Bram
Nacimiento: 1847
Fallecimiento: 1912
Libros: [Dracula]

Autor: Engels, Friedrich
Nacimiento: 1820
Fallecimiento: 1895
Libros: [The Communist Manifesto]

Autor

Desarrollado por Jhon Fernando Gomez Villa como parte del desafio LiterAlura de Alura Latam.

Licencia

Educativo.

About

Catálogo de Libros a través de una API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages