Este proyecto es una aplicación en Java usando Spring Boot que te permite buscar información sobre series y películas utilizando la API de OMDB. Además, almacena los resultados en una base de datos PostgreSQL y te permite consultarlos desde una interfaz interactiva en la línea de comandos.
- Interfaz interactiva en consola (
MenuInteractivo.java
) - Cliente para consumir la API de OMDB (
OmdbApiClient.java
) - Modelos de datos para series, temporadas y episodios
- Traducción automática de sinopsis usando Gemini API
- Persistencia de datos con PostgreSQL y Spring Data JPA
- Configuración sencilla mediante archivos de propiedades
- Uso de Docker para facilitar la configuración de la base de datos y la herramienta de administración pgAdmin
- Java 17 o superior (por ejemplo,
openjdk 17.0.15
) - Maven (gestor de dependencias y construcción, ya incluido el wrapper en el proyecto)
- Docker (opcional, pero recomendado para la base de datos)
- Spring Boot (ya incluido en las dependencias)
git clone https://github.com/TU-USUARIO/omdbapi-springboot.git
cd omdbapi-springboot
- Copia los archivos de ejemplo y edítalos con tus datos:
cp src/main/resources/application.properties.example src/main/resources/application.properties cp docker/.env.example docker/.env
- En
src/main/resources/application.properties
, coloca tus claves de OMDB y Gemini. - En
docker/.env
, pon los datos de usuario, contraseña y base de datos para PostgreSQL y pgAdmin.
Si nunca has usado Docker, solo necesitas instalarlo y luego ejecutar:
cd docker
docker-compose up -d
cd ..
Esto creará dos servicios:
- db: Un contenedor de PostgreSQL donde se guardarán tus series y episodios.
- pgadmin: Una herramienta web para administrar la base de datos, accesible en http://localhost:8080.
Puedes detener los servicios con:
docker-compose down
./mvnw spring-boot:run
Esto compilará y ejecutará la aplicación. Verás un menú interactivo en la consola para buscar series, consultar temporadas, ver rankings y más.
El archivo docker/docker-compose.yml
automatiza la creación de dos servicios:
-
db:
- Usa la imagen oficial de PostgreSQL.
- Crea una base de datos con el usuario, contraseña y nombre que definas en el archivo
.env
. - Expone el puerto 5432 para que la aplicación pueda conectarse.
- Guarda los datos en un volumen persistente llamado
postgres_data
.
-
pgadmin:
- Usa la imagen oficial de pgAdmin4.
- Permite administrar la base de datos desde el navegador.
- Accesible en http://localhost:8080 usando el correo y contraseña definidos en
.env
. - Sus configuraciones se guardan en el volumen
pgadmin_config
.
Ambos servicios están conectados en una red interna llamada demo_network
para que puedan comunicarse entre sí.
.
├── src
│ ├── main/java/mx/aluracursos/omdbapi_springboot
│ │ ├── cli/ # Interfaz interactiva
│ │ ├── client/ # Cliente OMDB y Gemini
│ │ ├── config/ # Configuración de APIs
│ │ ├── models/ # Modelos de datos
│ │ ├── service/ # Lógica de negocio
│ └── test/java/mx/aluracursos/omdbapi_springboot
│ └── OmdbapiSpringbootApplicationTests.java
├── docker/ # Archivos para Docker y base de datos
├── pom.xml # Dependencias y configuración de Maven
└── README.md
Además de buscar información en OMDB, este proyecto utiliza la API de Gemini (de Google) para traducir automáticamente la sinopsis de las series y películas al español. Cuando realizas una búsqueda, la aplicación consulta Gemini para obtener la traducción y la guarda junto con el resto de la información.
Para que esto funcione, necesitas una clave de Gemini API, que debes colocar en el archivo src/main/resources/application.properties
.
-
src/main/java/mx/aluracursos/omdbapi_springboot/cli/MenuInteractivo.java
Es la interfaz de texto que ves al ejecutar la aplicación. Aquí puedes buscar series, ver temporadas, rankings, etc. -
src/main/java/mx/aluracursos/omdbapi_springboot/client/OmdbApiClient.java
Se encarga de conectarse a la API de OMDB, buscar series y películas, y traer la información. -
src/main/java/mx/aluracursos/omdbapi_springboot/client/GeminiApiClient.java
(o similar, según tu estructura) Se conecta a la API de Gemini para traducir la sinopsis automáticamente. -
src/main/java/mx/aluracursos/omdbapi_springboot/models/
Contiene las clases que representan Series, Temporadas y Episodios, es decir, cómo se guarda la información en la base de datos. -
src/main/java/mx/aluracursos/omdbapi_springboot/service/
Aquí está la lógica principal de la aplicación: cómo se procesan las búsquedas, traducciones y almacenamiento. -
src/main/resources/application.properties
Archivo de configuración donde pones tus claves de OMDB y Gemini, y los datos de conexión a la base de datos. -
docker/docker-compose.yml
Automatiza la creación de la base de datos PostgreSQL y la herramienta pgAdmin para que no tengas que instalarlas manualmente. -
docker/.env
Aquí defines los usuarios y contraseñas para la base de datos y pgAdmin.