Ever spend more time scrolling through Netflix than actually watching something? There are just too many shows out there to know what's good to watch, and honestly, we always end up putting on old episodes of the office anyways.
It would be nice to find a critic who shares the same tastes in movies, but it's just not feasible to read through decades of movie reviews to find that one person.
What it does
Our algorithm takes in just a handful of your movie ratings and pairs you with a respected movie critic who you can follow to make sure every movie you watch is 5 out of 5 stars.
How we built it
We wanted to get creative with our development stack and handle events asynchronously with API calls. Our frontend was developed in React with our Python API rouletting between that and our CockroachDB and matching algorithm. Our API, one of our databases, and our computational tasks were hosted with the help of Google App Engine and Google Cloud SQL.
Most popular tv and film review sites like IMDb, Rotten Tomatoes, and Metacritic use naïve algorithms to aggregate critic reviews. We evaluated the variety of rating scales used by critics to determine a more accurate average critic opinion and normalized it to audience opinion. In the end, this means that even if you're not a movie snob, you won't have to rate many movies for us to figure out what movies you like.
All of our critic ratings come from rotten tomatoes and movie metadata is served with the TMDb API.
Challenges we ran into
Importing a CSV to the database wouldn't work.
Accomplishments that we're proud of
David: I'm really happy with how well each part talks to each other!
Charlie: I'm proud of our user credential and login system!
Josh C: We followed security best practices keeping all communication between our different platforms encrypted and properly storing user passwords using a modern hash function and salt.
Josh M: I found some new critics with our recommendation algorithm!!
What's next for Cinetrics
There's more than enough movie data to go around for ML applications. We created a model to predict a critic's rating for a movie they don't have a review for and with a few improvements and more training time, we will be able to generate a realistic movie rating based on an individual's review history. Filling in reviews would allow us to get a more accurate rating delta, and mean that we can pair the user with a critic by only having them rate a handful of movies.