Inspiration

I was inspired by Netflix and Youtube. I thought it was fascinating how they found content that I'd want to watch and put it on my home page. So I decided to learn how to create a recommendation engine myself and integrated it into a webapp for this hackathon!

What it does

This web app asks users to rate 5 movies they've already watched. The information provided by the user helps my content-based Machine Learning algorithm to create a profile for the user about the types of movies they like. Using the manipulated data, the website returns 15 movies to the user that matches their taste!

How we built it

The content-based ML algorithm that profiles the user and returns movies that match the taste of the user was experimented with on a Jupyter Notebook. After the algorithm was fine-tuned and errors eliminated, the code was adapted into a python function. The frontend of the web app was built using Flask so that the ML algorithm could be integrated into the website since Flask is a python module. The website was designed using HTML, CSS, and Jinja in order to connect Flask. NumPy and Panda modules were also imported in order to conduct the data analysis and interpretation for the algorithm. Database was taken from here: https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%205/data/moviedataset.zip

Challenges we ran into

This was the first time I integrated a ML algorithm to a web app! I had always created them on a Jupyter Notebook so transferring it onto a regular Python project involved lots of bugs which took me forever to fix. Particularly, displaying results on HTML and CSS took quite a bit of experimenting as it wasn't quite the same as displaying results on Matplotlib. This took me several hours to figure out.

Accomplishments that we're proud of

I'm proud that I was able to use several python modules for a single project and it turned out just as I had hoped it would (thanks to hours of bug fixing... It was worth it though!) Personally, this is an app that I will be using extensively myself as well because it eliminates a problem that I face: not being able to find a good movie to watch!

What we learned

Integrating an ML algorithm into a Web Application and some advanced Flask and Jinja functions.

What's next for Movie Recommendation Engine

I hope to expand this app so that users can sign up and their ratings will be stored for the next time they visit the website. I also hope to create functionality that will help users rate more than 5 movies so that the movie recommendation engine becomes even more accurate and useful!

Share this project:

Updates