All projects

TMDB: containerized movie recommender platform

Full-stack movie recommender for CSE 532: ~1,000 movies from the TMDB API in a 17-table PostgreSQL 16 schema, served as 3 Docker Compose services.

Status
Coursework
Period
Spring 2026
Role
CSE 532 Data Management, Stony Brook University
Code
Code public
Stack
  • Python
  • Flask
  • PostgreSQL 16
  • Docker Compose
  • TMDB REST API
  • SQL
Movies crawled from the TMDB API
~1,000
PostgreSQL tables
17
People / cast and crew records
~34K / ~40K
Docker Compose services
3
  1. TMDB REST API
  2. Crawler
  3. COPY bulk load (FK order)
  4. PostgreSQL 16
  5. Flask app
  6. Recommendations + admin dashboard
Fig. 2 Data flow, left to right (top to bottom on small screens).

Problem

Build a full-stack database application for CSE 532 (Data Management, Stony Brook): a movie recommender on a real relational schema.

Approach

  • Recommendations. Personalized recommendations from each user's top-rated genres, and similar-movie retrieval from shared keywords.
  • Ingestion. A pipeline crawls ~1,000 movies from the TMDB REST API and bulk-loads a 17-table PostgreSQL schema (~34K people, ~40K cast and crew records) in foreign-key order using COPY.
  • Admin dashboard. Analytics and data-quality reports built with joins, CTEs, and window functions.

Architecture

Three Docker Compose services (Flask app, PostgreSQL, pgAdmin) with health-checked startup, plus a one-shot data-loader container.

Results

The loader container fills the schema on startup; the Flask app then serves recommendations and the admin dashboard.