Skip to content

Desarrollo Practico: Sistema de Recomendacion de Peliculas con Spring Boot

Descripcion general

Este proyecto practico te requiere trabajar con un PRD real para completar un sitio web de peliculas con capacidades de recomendacion usando Spring Boot. El desafio central de este proyecto radica en que no es un simple CRUD, sino que necesitas reflexionar sobre como el comportamiento del usuario afecta los resultados de recomendacion y como hacer que las recomendaciones sean explicables.

Esta es la seccion de practica integral de la Etapa 2. Por primera vez te enfrentarás al desarrollo de un producto de tipo "contenido + comportamiento + recomendacion", un patron muy comun en comercio electronico, plataformas de contenido y feeds personalizados.

Conocimientos previos

Antes de comenzar este proyecto, ya deberias dominar lo siguiente:

Objetivos de aprendizaje

Despues de completar esta practica, podras:

  1. Leer un PRD y extraer la lista de tareas de desarrollo para un sistema de recomendacion
  2. Usar Spring Boot para construir un proyecto backend e implementar API RESTful
  3. Disenar el flujo de datos completo de "comportamiento del usuario a recomendacion"
  4. Implementar logica de recomendacion explicable
  5. Completar la integracion de extremo a extremo, entregando un prototipo de producto demostrable

Introduccion del proyecto

El producto que vas a construir es un sitio web de peliculas con capacidades de recomendacion:

FuncionalidadDescripcion
Navegacion y busquedaLos usuarios pueden navegar y buscar peliculas
Calificacion y favoritosLos usuarios pueden calificar peliculas y agregarlas a favoritos
Recomendacion personalizadaEl sistema genera resultados de recomendacion basados en el comportamiento del usuario
Panel de administracionLos administradores mantienen los datos de peliculas y revisan la efectividad de las recomendaciones

PRD

El documento de requisitos de este proyecto esta en GitHub: Ver PRD

Primera parte: Analisis de requisitos

1.1 Leer el PRD

Abre el documento PRD y responde las siguientes preguntas clave:

  • Cual es la estrategia de recomendacion? La primera version debe usar una version explicable (como similitud de calificaciones)?
  • Que datos de comportamiento del usuario deben almacenarse? (calificaciones, favoritos, historial de navegacion, etc.)
  • Que metricas de efectividad de recomendacion necesita ver el administrador?
  • La lista de paginas esta completa?

WARNING

Si no tienes respuestas claras a las preguntas anteriores, no comiences a escribir codigo. La comprension inadecuada de los requisitos es la causa mas comun de retrabajo.

1.2 Confirmar la arquitectura del sistema

mermaid
flowchart TD
  prd["PRD"] --> web["Paginas frontend"]
  web --> auth["Autenticacion de usuario"]
  web --> movie["Lista / Detalle de peliculas"]
  web --> behavior["Calificacion / Favoritos"]
  behavior --> reco["Logica de recomendacion"]
  reco --> db["Base de datos"]
  admin["Panel de administracion"] --> db

Segunda parte: Construccion del esqueleto del proyecto

2.1 Generar paginas frontend

Referencia de prompts:

text
Basandote en el PRD actual, ayudame a generar el esqueleto frontend de un sistema de recomendacion de peliculas con Spring Boot.

Requisitos:
1. Paginas incluidas: inicio, lista de peliculas, detalle de pelicula, pagina de recomendacion, centro personal, panel de administracion
2. Primero generar solo la estructura de paginas y datos ficticios, sin conectar interfaces reales
3. El estilo debe parecerse a un producto de contenido real, no a un demo de clase

2.2 Verificar la estructura de paginas

Verificar item por item:

  • [ ] La pagina de lista de peliculas soporta busqueda y filtrado
  • [ ] La pagina de detalle de pelicula incluye botones de calificacion y favoritos
  • [ ] La pagina de recomendacion puede mostrar resultados y razones de recomendacion
  • [ ] El panel de administracion puede mostrar datos de peliculas y efectividad de recomendacion

Tercera parte: Desarrollo iterativo

3.1 Avanzar por modulos

  1. Configuracion del proyecto Spring Boot: Estructura del proyecto, configuracion de base de datos, CRUD basico
  2. Gestion de datos de peliculas: Lista de peliculas, detalle, interfaz de busqueda
  3. Comportamiento del usuario: Interfaces de calificacion y favoritos, escritura de datos de comportamiento
  4. Logica de recomendacion: Implementacion del algoritmo de recomendacion basado en comportamiento del usuario
  5. Visualizacion de recomendaciones: Mostrar resultados de recomendacion incluyendo las razones
  6. Panel de administracion: Mantenimiento de datos de peliculas, revision de efectividad de recomendacion

3.2 Autoverificacion de modulos

Item de verificacionMetodo de verificacion
Funcionalidad basicaLista, detalle, calificacion, favoritos forman un ciclo completo
Vinculacion de recomendacionEl comportamiento del usuario afecta los resultados de recomendacion
Explicabilidad de recomendacionEl usuario puede entender por que se le recomiendan estas peliculas
Datos del panelEl administrador puede ver datos de peliculas y efectividad de recomendacion

Cuarta parte: Integracion y despliegue

4.1 Pruebas de extremo a extremo

Verificar al menos los siguientes escenarios:

  • Navegar peliculas -> Calificar -> Agregar a favoritos -> Ver pagina de recomendacion, confirmar que los resultados de recomendacion cambian
  • Iniciar sesion como administrador -> Agregar peliculas -> Ver estadisticas de efectividad de recomendacion

Entregables

Despues de completar este proyecto, necesitas enviar lo siguiente:

  • [ ] Enlace de demostracion en linea accesible
  • [ ] Enlace al repositorio de codigo fuente (incluyendo README)
  • [ ] Documento PRD
  • [ ] Capturas de pantalla de paginas clave (lista de peliculas, detalle de pelicula, pagina de recomendacion, panel de administracion)
  • [ ] Video de demostracion de 60 segundos

Criterios de evaluacion

DimensionRequisitos basicosRequisitos avanzados
Alineacion con PRDPaginas, funcionalidades y estructura de datos basicamente cumplen con el PRDPuede explicar claramente las decisiones de diseno
Ciclo completo del productoNavegar -> Calificar -> Agregar a favoritos -> Recomendar funciona completamenteEl comportamiento de calificacion afecta significativamente los resultados de recomendacion
Calidad de recomendacionResultados de recomendacion razonables, razones de recomendacion explicablesSoporta multiples estrategias de recomendacion
Capacidades del panelDatos de peliculas y efectividad de recomendacion visiblesTiene metricas estadisticas como precision de recomendacion
Completitud de ingenieriaFrontend, backend Spring Boot y base de datos conectadosLas interfaces de recomendacion tienen cache u optimizacion de rendimiento

Referencias