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
- TMDB REST API
- Crawler
- COPY bulk load (FK order)
- PostgreSQL 16
- Flask app
- Recommendations + admin dashboard
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.