CineMatch is an interactive movie recommendation app built with Streamlit and Python, powered by the MovieLens datasets. Search a movie, view details, and explore similar titles computed from user–item ratings via cosine similarity (item–item). A user-based kNN (Pearson) path is included for future work.
https://cinematch-movie-finding.streamlit.app/
First load downloads a small dataset and builds a similarity cache.
- Real-time search - case-insensitive, year-aware (“Toy Story (1995)” works).
- Item–item recommendations - cosine over binarized ratings, per-item Top-K.
- Auto bootstrap - fetches MovieLens 100K (default) or 1M (optional).
- Movie panel - title, genres, year, avg rating, #ratings.
- Interactive UI - click recommended titles to drill down.
- Caching - precomputed sparse Top-K similarity matrix on disk.
Note: MovieLens 32M is intentionally disabled to keep startup fast and Cloud-friendly.
CineMatch/
├─ dashboard/
│ └─ app.py
├─ recsys/
│ ├─ __init__.py
│ └─ recsys_core.py
├── requirements.txt
├── README.md
├── LICENSE
└─ streamlit_app.py
| Library | Purpose |
|---|---|
| streamlit | UI and interactivity |
| pandas | Data loading/manipulation |
| numpy | Numerical ops |
| scipy | Sparse matrices + cosine |
| requests | Dataset download |
| dataclasses | Data bundle struct |
| zipfile/io/os/re/json | I/O, parsing, metadata |
git clone https://github.com/zareenrahman/CineMatch.git
cd CineMatchpython -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
# source .venv/bin/activatepip install -r requirements.txtstreamlit run dashboard/app.pyThen open in browser: http://localhost:8501
- Push this repo to GitHub.
- On Streamlit Cloud → New app.
Set:
- Repo: zareenrahman/CineMatch
- Branch: main
- Main file: streamlit_app.py
- (Optional) Python version from runtime.txt (e.g., python-3.11.9).
- Deploy.
Why streamlit_app.py? It guarantees the correct import path for dashboard/app.py and avoids package path issues.
Movie data is automatically fetched from GroupLens MovieLens Datasets:
ml-100korml-1m(auto-detected)- Used for non-commercial academic and demo purposes.
- Click the Live Demo link
- Try searching for “Toy Story” or “Matrix”
- Click a movie → see similar recommendations
- Explore, enjoy, and see your recommender in action
