Este proyecto es una aplicación de consola que permite a los usuarios interactuar con un catálogo de libros. Utiliza la API de Gutendex para buscar y registrar información sobre libros y autores, ofreciendo diversas opciones de consulta y manejo de datos.
El objetivo del proyecto es desarrollar un Catálogo de Libros que ofrezca interacción textual (vía consola) con los usuarios. Se han implementado al menos 5 opciones de interacción, integrando los datos de la API mencionada y una base de datos local para almacenar la información.
El programa presenta el siguiente menú de interacción:
1 - Buscar Libro por Título
2 - Listar Libros Registrados
3 - Listar Autores Registrados
4 - Listar Autores Vivos en un Determinado Año
5 - Listar Libros por Idioma
0 - Salir
-
Buscar Libro por Título
Permite buscar libros por título a través de la API de Gutendex. Los resultados se guardan en la base de datos para futuras consultas. -
Listar Libros Registrados
Muestra todos los libros que han sido registrados previamente en la base de datos. -
Listar Autores Registrados
Muestra una lista de todos los autores registrados en la base de datos, junto con información adicional como su año de nacimiento y muerte. -
Listar Autores Vivos en un Determinado Año
Consulta autores que estaban vivos en un año específico, basado en su año de nacimiento y muerte. -
Listar Libros por Idioma
Permite buscar libros almacenados en la base de datos que están escritos en un idioma específico. -
Salir
Finaliza la ejecución del programa.
- Java (JDK 17 o superior)
- Spring Boot (3.3.4 o superior)
- PostgreSQL como base de datos
- Maven para la gestión de dependencias
-
Clona este repositorio:
git clone https://github.com/gadavalosv/AluraChallengeLiteralura.git
-
Configura la base de datos en el archivo
application.properties
:spring.datasource.url=jdbc:postgresql://localhost:5432/alura_literalura spring.datasource.username=tu_usuario spring.datasource.password=tu_contraseña spring.jpa.hibernate.ddl-auto=update
-
Instala las dependencias con Maven (si no lo tienes disponible en tu IDE):
mvn install
-
Ejecuta la aplicación:
mvn spring-boot:run
- Model: Contiene las clases
Book
yAuthor
para modelar los datos. - Repository: Interfaces para interactuar con la base de datos.
- Service: Contiene la lógica de negocio para procesar las solicitudes del usuario.
La base de datos tiene dos tablas principales:
-
Books
Almacena información sobre los libros, incluyendo título, idiomas y autores asociados. -
Authors
Almacena información sobre los autores, incluyendo su nombre, año de nacimiento y año de muerte.
La aplicación consume datos de la API de Gutendex para buscar información de libros.
-
Buscar por Título:
URL:https://gutendex.com/books/?search=<TITULO>
Respuesta:
{ "count": 1, "results": [ { "id": 123, "title": "Frankenstein; Or, The Modern Prometheus", "authors": [ { "name": "Mary Wollstonecraft Shelley", "birth_year": 1797, "death_year": 1851 } ], "languages": ["en"], "download_count": 12345 } ] }
¡Las contribuciones son bienvenidas! Sigue estos pasos:
- Haz un fork del repositorio.
- Crea una rama para tu función:
git checkout -b feature/nueva-funcionalidad
- Realiza tus cambios y haz commit:
git commit -m "Agrega nueva funcionalidad"
- Haz push de la rama:
git push origin feature/nueva-funcionalidad
- Abre un Pull Request.