Skip to content

Challenge Literalura - Catálogo de Libros con Spring Boot consumiendo la API de Gutendex y persistencia en PostgreSQL.

Notifications You must be signed in to change notification settings

jhonyaldo/g8literalurajr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Literalura: Catálogo de Libros Interactivo

Demostración del Catalogo LiterAlura

📋 Descripción del Proyecto

Literalura es una robusta aplicación de consola desarrollada como parte del Challenge de Backend de Alura Latam y Oracle (ONE). Este proyecto funciona como un catálogo de libros personal, consumiendo la API pública Gutendex para obtener datos de libros y persistirlos en una base de datos PostgreSQL.

El objetivo principal es demostrar un sólido entendimiento de la arquitectura backend con Java y Spring Boot, incluyendo el consumo de APIs externas, la persistencia de datos con Spring Data JPA y el diseño de una aplicación interactiva y funcional.


✨ Características Principales

La aplicación cuenta con un menú interactivo en la consola que ofrece las siguientes funcionalidades:

  • 🔍 Buscar y Registrar Libros: Busca libros por título en la API de Gutendex. Si el libro no existe en la base de datos local, lo registra automáticamente junto con su autor.

  • 📖 Listar Libros Registrados: Muestra una lista completa de todos los libros almacenados en la base de datos.

  • ✒️ Listar Autores Registrados: Presenta una lista de todos los autores guardados, incluyendo sus fechas de nacimiento y fallecimiento.

  • 🗓️ Filtrar Autores por Año: Permite al usuario ingresar un año específico y muestra una lista de autores que estaban vivos en esa fecha.

  • 🌐 Listar Libros por Idioma: Filtra y muestra los libros según el idioma seleccionado por el usuario (Español, Inglés, Francés, Portugués).


🏛️ Arquitectura y Diseño

El proyecto sigue una arquitectura por capas para garantizar una clara separación de responsabilidades, facilitando la mantenibilidad y escalabilidad del código.

/com/alurachallenge/literalura
├── dto/          # (Data Transfer Objects) Records que modelan la respuesta de la API.
├── main/         # Clase principal que contiene la lógica de la interfaz de consola.
├── model/        # Entidades JPA (@Entity) que representan las tablas de la base de datos.
├── repository/   # Interfaces de Spring Data JPA para el acceso y consulta de datos.
└── service/      # Lógica de negocio, consumo de API y orquestación de servicios.


🛠️ Tecnologías Utilizadas

Tecnología

Propósito

Java 17

Lenguaje principal de programación.

Spring Boot

Framework para la creación de la aplicación backend.

Spring Data JPA

Persistencia de datos e interacción con la base de datos (ORM con Hibernate).

PostgreSQL

Sistema Gestor de Base de Datos para el almacenamiento de datos.

Maven

Gestor de dependencias y construcción del proyecto.

API Gutendex

Fuente externa para la obtención de datos de libros.

Jackson

Deserialización de la respuesta JSON de la API a DTOs de Java.


⚙️ Instalación y Uso

Para ejecutar este proyecto en tu entorno local, sigue estos pasos:

1. Clonar el Repositorio

Bash

git clone https://github.com/tu-usuario/g8literalurajr.git
cd g8literalurajr

2. Configurar la Base de Datos

Asegúrate de tener PostgreSQL instalado y en ejecución. Luego, crea una nueva base de datos.

SQL

CREATE DATABASE literalura;

3. Configurar las Credenciales

Navega al archivo src/main/resources/application.properties y modifica las siguientes líneas con tus credenciales de PostgreSQL:

Properties

spring.datasource.url=jdbc:postgresql://localhost:5432/literalura
spring.datasource.username=tu_usuario_de_postgres
spring.datasource.password=tu_contraseña_de_postgres

4. Ejecutar la Aplicación

Puedes ejecutar el proyecto directamente desde tu IDE favorito (como IntelliJ IDEA o Eclipse) localizando la clase LiteraluraApplication.java y ejecutando su método main().

Alternativamente, puedes usar Maven desde la terminal:

Bash

mvn spring-boot:run

Una vez iniciada, la aplicación te mostrará el menú interactivo en la consola.


👨‍💻 Autor

Jhony A. Rodriguez Melendez


📝 Licencia

Este proyecto está bajo la Licencia MIT. Te invito a consultar el archivo LICENSE para más detalles.

About

Challenge Literalura - Catálogo de Libros con Spring Boot consumiendo la API de Gutendex y persistencia en PostgreSQL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages