Crear una aplicación de búsqueda y análisis de series y episodios
La idea es que el proyecto permita:
buscar una serie por nombre en una API
obtener sus temporadas
obtener todos sus episodios
transformar los datos crudos en objetos de negocio
mostrar estadísticas usando streams
Funcionalidades mínimas
Tu aplicación debería poder hacer esto:
- Buscar una serie
El usuario escribe el nombre de una serie y la aplicación consulta la API.
- Listar todas las temporadas
Debes recorrer todas las temporadas con un for y guardarlas en una lista.
- Crear una lista de episodios
Convierte los DatosEpisodio en objetos Episodio para trabajar mejor la lógica.
- Mostrar el top 5 de episodios
Ordena por evaluación descendente y muestra los 5 mejores.
- Buscar episodios desde un año
Filtra por fecha de lanzamiento a partir de un año dado.
- Calcular estadísticas
Usa streams para obtener:
promedio por temporada
promedio general
mejor episodio
peor episodio
total de episodios evaluados
- Usar peek
Agrega peek() en alguna operación para observar cómo pasan los elementos por el stream.
Conceptos que practicarás
Con este reto refuerzas:
Colecciones
List
Map
Programación funcional
expresiones lambda
method reference
filter
map
flatMap
sorted
limit
collect
groupingBy
averagingDouble
Optional
ifPresent
findFirst
max
min
Modelado
clases record
clase de negocio separada de la clase de datos
Frameworks y dependencias
Spring Boot
Maven
Jackson para JSON
Estructura sugerida del proyecto
Podrías organizarlo así:
src/main/java
├── principal
│ └── Principal.java
├── modelos
│ ├── DatosSerie.java
│ ├── DatosTemporada.java
│ ├── DatosEpisodio.java
│ └── Episodio.java
├── service
│ ├── ConsumoApi.java
│ └── ConvierteDatos.java
└── ScreenmatchApplication.java