Vibebox is a web application developed for Microsoft Engage 2022. As a part of this program, the mentees were provided with three tracks to choose from: Face Recognition, Data Analysis and Algorithms. I chose the algorithms track and developed a movie recommendation system, Vibebox which uses content based filtering algorithm.
- Technology Stack
- Incorporating Agile Methodology
- What, How of Recommendation System
- Prerequisites
- Getting started - Installation
- Navigating through Web Application
- Useful links
- Resources used
- Sources of Datasets
- Need help?
- HTML, CSS and JavaScript were used for designing the frontend of the application.
- Python was used to perform data processing and develop the machine learning model.
- Firebase was used for the database and authentication feature.
- Flask was used for integrating the frontend and ML model, serving as backend.
(Back to top)
Agile methodology is a development strategy being adopted in the software industry. It promotes flexibility and teamwork.
SCRUM is a subset of Agile, a framework for developing software. SCRUM takes advantage of different techniques to achieve goals in Agile. SCRUM promotes an iterative model where the planning is performed on a very short term. The basic time working unit is the sprint. SCRUM teams always reason in sprints and their planning is limited to sprints.
-
Sprint 1 (May 04 - May 08): Sprint Planning and Research - Started researching about what exactly the recommendation system is, how does it work and what are the different types of recommendation engines. Also, checked which recommendation engine is suitable for suggesting movies.
-
Sprint 2 (May 08 - May 12): Design phase - Started with building a basic prototype which was a simple machine learning recommendation system. Planned the UI of the website, tech stack for the project and tried incorporating the tips given by mentor.
-
Sprint 3 (May 12 - May 25): Build phase - Developed the final web application, Vibebox which also had some extra features apart from recommending movies mentioned in Navigating through App.
-
Sprint 4 (May 25 - May 28): Testing phase - Started with doing the UI fixes, did some manual testing and also uploaded the project on Github in this phase.
(Back to top)
The idea behind Content-based recommendation system is to recommend an item based on a comparison between the content of the items and a user profile. In simple words,one may get recommendation for a movie based on the description of other movies.
Similarity scoring is equivalent to seeking out points in the multidimensional space that are near enough to each other to potentially represent the same true location. It is a numerical value ranging between zero to one which helps to determine how much two items are similar to each other on a scale of zero to one.
Cosine Similarity is a measurement that quantifies the similarity between two or more vectors. The cosine similarity is the cosine of the angle between vectors. The vectors are typically non-zero and are within an inner product space. Smaller angle indicates higher cosine similarity.
(Back to top)
- Install python from your system if not already installed from https://www.python.org/downloads/ and select it according to your system specifications.
- TMDB API Key
(Back to top)
- Clone or download this repository to your local machine.
git clone https://github.com/TechGeek3/Vibebox.git
-
Install all the libraries mentioned in the
requirements.txt
file with the commandpip install -r requirements.txt
-
Get your API key from https://www.themoviedb.org/ by:
- Create an account
- Click on API from left sidebar
- Fill the required details to apply for API Key
- In website URL write "NA"
- You'll see the API Key once approved
-
Replace YOUR_API_KEY in both the places (line no. 16 and 32) of
static/recommend.js
file, in line no.8 ofapi.js
and hit save. -
In order to run the preprocessing files download
movies_metadata.csv
andcredits.csv
from Kaggle. -
Open your terminal/command prompt from your project directory and run the file
main.py
by executing the commandpython main.py
. -
Go to your browser and type
http://127.0.0.1:5000/
in the address bar. -
Finally, it's done! Enjoy the website.
(Back to top)
User should first register by providing the required credentials and then after successful registration, he/she can login with the previously entered details.
After logging in, user will be redirected to the home page of the application where they can explore the movie banners and watch their trailer.
User can search movie details by entering the movie name which also has an autocomplete functionality and the respective movie poster along with overview, genres and other information will be displayed.
One can also see the cast of the movie searched and it can be expanded to get detailed information by clicking on Know More button.
After scrolling the person will see the recommended movies based on the entered movie which is done with the help of ML model.
Reviews of different users can also be found for the given movie.
In the home page, there are various categories based on genres of the movie.
Trending movies are also updated in the home page by using TMDB API.
Finally the user can logout with the option given in the navbar after exploring the website.
- Recommendation System
- TMDB API
- Getting started with Firebase Authentication
- Web Development using Flask
(Back to top)
- The Movies Dataset
- IMDB 5000 Movie Dataset
- Movies in 2018
- Movies in 2019
- Movies in 2020
(Back to top)
Feel free to drop a mail on [email protected]
(Back to top)