Process

Zack Steinberg

Movieninja started off as a complaint: that Netflix didn't give good movie recommendations. If I rated a movie one star, to anyone else it would be obvious that I didn't like the movie, but netflix would still recommend the movie to watch. We thought we could do better ratings by making our own movie site.

To make a site, we used Django. Django is a python framework that makes it easy to create webpages, then hook them up to databases. To do this, django uses "models". Models are frameworks of data that we entered in our database, and for our movie site, we initially had 2: the movie model, which held information like the title, actors, genre and director of a movie, and the rating model, which movies would have multiple of. Using the data in the movie model, we could search the database and return the most relevant movies.

To suggest movies, we needed some way of scoring them, so we could sort by the score in the database. We had a few different ideas. The first idea was to rate each movie on a 1 to 100 scale, then returning the highest rated movie. We scrapped that idea because it wouldn't be personalized; it would just be the same movies all the time.

Then we thought about rating the different aspects of the movie, like the music, special effects, and the visuals separately. This would give an increase to movies with a similar score. It would also boost the score for the director and lead actors. The rating system would be on a 1-100 scale, picking the movies with the highest score.

Now, we needed to get data. We started off by surveying people about movies to get ratings, but that was too slow and didn't have enough movies. What if someone searched for a different movie? Instead, we looked online. Thankfully, we found OMDB, an extensive movie database that had its data available for download. We downloaded it, made a simple script to import the movies into the database, and we finally had our data.

Then, we had to make a website to display the data. Since we called our site 'MovieNinja', we wanted to make our site ninja-themed. We used Adobe Flash to create a field with a dojo on it to be used as the background, and put 2 banners to the left and right of the screen. The right banner would be where you chose what movies to watch, the left banner would have popular movies, and the middle of the page would have the movie recommendations.

When we tried it out, we found errors: when we had imported the movie data from OMDB, we hadn't imported the genres correctly, so we couldn't search by genre. We quickly fixed the importing script, and re-imported the movies. It was taking a long time, so we decided to not import any short movies.

Then we booted up the website, and clicked the search by genre, and the website that we had made in a week returned relevant search results.

If we had more time, we could definitely improve our algorithm. Currently, it returns the highest-rated movie with no mention to popularity, leading to unknown movies popping up at the top. We could also add a login feature, and actually let movies be streamed through the site.