cinematch
- 4 Devlogs
- 27 Total hours
A movie recommendation engine (CineMatch) using collaborative filtering on MovieLens — with model comparison, cold-start handling, and a Streamlit web app.
A movie recommendation engine (CineMatch) using collaborative filtering on MovieLens — with model comparison, cold-start handling, and a Streamlit web app.
Feedback
Hello!
Awesome project, but it seems like your project uses a excessive amount of AI. Please rewrite the CSS by hand and add some human made features, make it something you want to be proud off and something that is yours!
Dm @Rohan for any questions : D
Shipwright walkthrough
Feedback
Hello,
Your README appears to be AI-generated, please rewrite it by hand,
If you have any questions, DM @kaboom or create a ticket in #ask-the-shipwrights.
Shipwright walkthrough
Feedback
Hi rushabh69! Your website is awesome but it seem to have been vibecoded/made with AI, Please rewrite some of the code yourself, up to 30% is Ok!
If you have any questions, ask them in #ask-the-shipwrights
Shipwright walkthrough
Feedback
Hey rushabh69,
You seem to have used a lot of AI in your readme. Please rewrite it yourself, as we would like to see how you worked on the project!
For any other questions, DM @emptiedfull or create a ticket in Slack—#ask-the-shipwrights.
Shipwright walkthrough
got feedback that streamlit sleeps, so i moved cinematch off it. instead of a live server i precomputed all the recommendations, similar movies and posters into json (build_static.py), and wrote a small static frontend — index.html, style.css, app.js — that just loads those and shows the cards. now it’s a plain static site i can throw on netlify/pages for free with no sleeping. bonus: posters get baked in at build time so the whole tmdb ssl mess on windows goes away.
Feedback
Hey rushabh69!
Cool project however there are a few problems:
- We do not allow websites hosted on streamlit as its a sleeping service, please host it on another service
- Your readme seems to be fully AI generated please handwrite it
- There are signs of AI usage in the codebase itself, please declare AI honestly
Dm @Rohan for any questions : D
Shipwright walkthrough
wrapped up cinematch today. spent way too long fighting the movie posters lol - added tmdb api to show poster art instead of plain tables, worked instantly on my main machine but the vm kept throwing ssl cert errors and then random connection resets (10054). turned out the vm’s python couldnt verify https certs so fixed that with certifi, and then some antivirus/firewall thing was resetting python’s tls connections while curl worked fine, so i made it fall back to curl when urllib fails. finally got posters loading. also cleaned up so it gracefully shows placeholder cards if theres no api key. then deployed the whole thing to streamlit community cloud (free) so theres an actual live demo link now, added the tmdb key as a secret so its not exposed. so cinematch is officially done - 5 recommendation models compared, cited “because you liked x,y,z” explanations, cold start handling, similar movies, model comparison dashboard, poster art, tests passing, readme + report written, and deployed live. pretty happy with how it turned out.
back on cinematch today, mostly turning the models into something you can actually use. wrapped everything behind a facade class so theres one clean api (get_recommendations, get_similar_movies, cold start fold-in, explanations) instead of poking at each model directly. then built a cli with subcommands - recommend, similar, search, newuser, compare etc - which made testing way faster. after that did the streamlit app, four tabs: personalized recs with the “because you liked x,y,z” reasons, a similar-movies search, a new-user cold start page, and a model comparison page with the rmse/precision charts. kinda satisfying seeing the numbers from the terminal turn into an actual clickable ui. small stuff slowed me down (forgot to activate the venv once, a typo’d argparse arg) but nothing major. everything pushed to github. next up is tests + cleaning the readme, then trying to deploy the streamlit app.
spent basically the whole day on cinematch, my movie recommender built on the movielens data. got the data pipeline done first (cleaning, filtering out users/movies with under 5 ratings, per-user 80/20 split) then built 5 models to actually compare instead of just picking one - popularity baseline, user-based CF, item-based CF, SVD with the surprise library, and a hybrid mixing collaborative + content. most annoying part was my neighborhood models kept recommending random obscure movies that one person happened to rate 5 stars, precision was like 0.01. added some shrinkage so thinly-backed picks get pushed down and it jumped to ~0.13. also kind of learned the hard way that best RMSE doesnt mean best recommendations - SVD won on RMSE but the hybrid actually ranks better. threw in cold-start handling, a similar-movies feature and “because you liked x, y, z” explanations, then wrapped it all in a streamlit app. also fixed a dumb 248mb cache bug (dense matrices that shouldve been sparse, now ~34mb). 11 tests passing. pretty happy with it, gonna clean up the readme and try deploying tomorrow.