Web and Machine Learning
PopcornS
A movie discovery product that combines content-based recommendations with a practical watchlist workflow.

- Role
- Machine learning and full-stack developer
- Timeline
- Personal project
Overview
PopcornS makes movie recommendations useful in a real browsing session. Instead of stopping at a model prediction, it combines recommendations with trending titles, trailers, genre filters, and a personal watchlist.
The challenge
A recommendation model is only valuable when the surrounding product helps people act on the result. The project needed to make similarity understandable, keep search responsive, and connect model output to live movie information without making the interface feel like a demo notebook.
The approach
I built a content-based recommendation model over a dataset of 4,800+ films and served it through FastAPI. The Next.js client handles search and browsing, React Query manages server state, and external movie APIs add current metadata, trailers, and trending content around the model output.
Architecture
Recommendation engine
A Python and scikit-learn content-based model ranks similar films.
Backend
FastAPI serves recommendation requests and keeps model logic behind a clean API.
Frontend
Next.js and TypeScript provide search, filters, trending titles, and watchlist interactions.
External data
TMDB and OMDb enrich recommendations with posters, metadata, and trailers.
Client state
React Query keeps asynchronous search and recommendation data predictable.
Outcomes
- Recommendations are generated across a catalog of 4,800+ films.
- Combined a machine learning model with a complete discovery workflow.
- Added practical product features including trailers, genres, trending content, and watchlists.
What I learned
- Model quality is only one part of a recommendation product; discovery context affects usefulness.
- Clear API boundaries make it easier to evolve the model without rewriting the interface.