Skip to content

Spring Boot Movie Recommendation System

Overview

This project requires you to build a movie website with recommendation capabilities using Spring Boot, based on a real PRD. The core challenge is not simple CRUD — it's thinking about "how user behavior affects recommendations" and "how to make recommendations explainable."

This is the comprehensive practical section of Stage 2. You'll encounter the "content + behavior + recommendation" product development pattern for the first time, which is common in e-commerce, content platforms, and personalized feeds.

Prerequisites

Before starting this project, you should already be familiar with:

Learning Objectives

After completing this project, you will be able to:

  1. Read a PRD and extract a development task list for a recommendation system
  2. Set up a Spring Boot project and implement RESTful APIs
  3. Design a complete data pipeline from "user behavior → recommendation"
  4. Implement explainable recommendation logic
  5. Complete end-to-end integration and deliver a demo-ready product prototype

Project Overview

You will build a movie website with recommendation capabilities:

FeatureDescription
Browse & SearchUsers can browse and search for movies
Ratings & FavoritesUsers can rate and favorite movies
Personalized RecommendationsThe system generates recommendations based on user behavior
Admin DashboardAdmins manage movie data and view recommendation performance

PRD

The requirements document for this project is on GitHub: View PRD

Part 1: Requirements Analysis

1.1 Read the PRD

Open the PRD document and answer these key questions:

  • What is the recommendation strategy? Should the first version use an explainable approach (e.g., rating-based similarity)?
  • What user behavior data should be stored? (ratings, favorites, browsing history, etc.)
  • What recommendation performance metrics should admins see?
  • Is the page list complete?

WARNING

If the above questions don't have clear answers, don't start coding. Unclear requirements are the most common cause of rework.

1.2 Confirm System Architecture

mermaid
flowchart TD
  prd["PRD"] --> web["Frontend Pages"]
  web --> auth["User Auth"]
  web --> movie["Movie List / Details"]
  web --> behavior["Rating / Favorite"]
  behavior --> reco["Recommendation Logic"]
  reco --> db["Database"]
  admin["Admin Dashboard"] --> db

Part 2: Project Scaffolding

2.1 Generate Frontend Pages

Prompt reference:

text
Based on the current PRD, help me generate a frontend scaffold for a Spring Boot movie recommendation system.

Requirements:
1. Pages: homepage, movie list, movie detail, recommendation page, user profile, admin dashboard
2. Only generate page structure with mock data first, no real API integration
3. Style should look like a real content product, not a classroom demo

2.2 Verify Page Structure

Check each item:

  • [ ] Movie list page supports search and filtering
  • [ ] Movie detail page includes rating and favorite buttons
  • [ ] Recommendation page shows results with recommendation reasons
  • [ ] Admin dashboard displays movie data and recommendation performance

Part 3: Iterative Development

3.1 Module-by-Module Progress

  1. Spring Boot Setup: Project structure, database configuration, basic CRUD
  2. Movie Data Management: Movie list, detail, search APIs
  3. User Behavior: Rating, favorite APIs, behavior data storage
  4. Recommendation Logic: Implement recommendation algorithm based on user behavior
  5. Recommendation Display: Show recommendation results with explanations
  6. Admin Dashboard: Movie data management, recommendation performance review

3.2 Module Self-Check

Check ItemVerification Method
Basic featuresIs list, detail, rating, favorite a closed loop?
Recommendation linkageDoes user behavior affect recommendation results?
ExplainabilityCan users understand why these movies were recommended?
Admin dataCan admins view movie data and recommendation performance?

Part 4: Integration & Launch

4.1 End-to-End Testing

At minimum, verify these scenarios:

  • Browse movies → Rate → Favorite → View recommendation page, confirm results change
  • Admin login → Add movie → View recommendation performance stats

Deliverables

After completing this project, submit the following:

  • [ ] Accessible live demo link
  • [ ] Source code repository link (with README)
  • [ ] PRD document
  • [ ] Core page screenshots (movie list, movie detail, recommendation page, admin dashboard)
  • [ ] 60-second demo video

Grading Criteria

DimensionBasic RequirementsAdvanced Requirements
PRD AlignmentPages, features, and data structures basically match PRDCan clearly explain design decisions
Product LoopBrowse → Rate → Favorite → Recommend works end-to-endRating behavior visibly affects recommendations
Recommendation QualityResults are reasonable, reasons are explainableSupports multiple recommendation strategies
Admin CapabilityMovie data and recommendation performance viewableHas stats like recommendation accuracy metrics
Engineering CompletenessFrontend, Spring Boot backend, database pipeline connectedRecommendation API has caching or performance optimization

References