Skip to content

arorasimran0309/Movie-Recommendation-Engine

 
 

Repository files navigation

Movie Recommendation Engine

Recliner Lounge

Link to the App · Video Demo

Table of Contents
  1. About The Project
  2. Agile Methodology
  3. Getting Started
  4. Navigating through the App
  5. Comparison and Analysis
  6. Resources Used
  7. Resources used within the Web App

About The Project

  • Movie Recommendation Engine project built during Microsoft Engage 2022 program.
  • It is a movie recommending application through which we can get recommendation on the basis of our favourite genres or our favourite movie.
  • The App is called "Recliner Lounge", as it gives the best recommendation for any occastion to watch a movie at our favoured comfort.

Salient Features

  • User registers through entering name.
  • User can make choice of which type of recommendation they want - Movie based or Genres based.
  • Since the IMDB score adjustment is provided for the recommendations, therefore inhabits the popularity-based filtering as well.
  • Recommendations are redirecting the user to its IMDB page, in order to give better user experience.
  • The user can adjust the number of recommendations and the IMDB scores, to get optimum suggestions.

Compatible Platforms

Laptops, Desktops, Tablet, PCs and Phones (Android and IOS). The only requirement is to sign up on Streamlit.

Built With

Machine Learning in Python:

  • Libraries used - NumPy, Scikit-Learn, Matplotlib, Pandas
  • Code built using - Jupytor, Google colab, Visual Studios

App and Deployment:

  • App building - Streamlit
  • Deployment - Streamlit

Agile Methodology

Agile

Agile refers to a group of software development methodologies based on iterative development and is frequently being adopted in the software industry. Agile promotes teamwork, flexible procedures, and results in delivery of high quality software.

How I Incorporated Agile Methodology During The Development Cycle

Scrum and kanban are the primary agile processes. SCRUM is a subset of Agile, a framework for developing software. SCRUM takes advantage of different techniques to achieve goals in Agile. I implemented scrum, which organizes the work in cadences called sprints, usually is performed on a very short time period.

  • Sprint 1 (May 4 - May 10): Exploring and understanding the different approaches

    • Researched about different algorithms used in recommendation systems - Content-based filtering, Collaborative-based filtering and Hybrid Reccomendation approach. - Understood the requirements for each algorithms and traversed through many datasets for the application.
  • Sprint 2 (May 11 -May 17): Planning the Engine-making process and Determining the languages and softwares to utilise

    • Researching about various Machine Learning libraries and platforms that can be used to make a recommendation system app with a minimum functionality to have content and collaborative filtering.
    • Finalised to use Machine Learning in Python Language using Google Colab and Visual Studios.
    • Eventually utilised the movies_metadata dataset which consists of more than 5000 movies and their information.
  • Sprint 3 (May 18 - May 24): Implementation of the Algorithm and Execution of the System built

    • Started the development process by taking help from YouTube tutorials.
    • Built an web application using Streamlit for the very first time.
  • Sprint 4 (May 25 - May 29): Debugging, Deployment and Final Submission

    • Encountered occasional bugs which I debugged timely. Made required changes in the UI, added images and mode to make it user friendly.
    • Deployemnt was a challenge as it took several debuggings to make the app available on different platforms.

Getting Started

To run this project on your local systems, following are the requirements:

Prerequisites and Accessing the Web Application

  • Sign Up on Streamlit
  • Other than this, there are no prerequisites to run the "Recliner Lounge" - Movie Recommendation Engine on your systems.
  • Just simply click on the link and the engine can be used to your satisfiability.

Navigating Through The Web Application

How the Web App works ?

  • After the link is accesssed and the web app opens, you will come across this view.

First look of the Web App

  • The very first step is required to fill your name in the space provided.

Enter your Name

Click on Submit

  • User can select the mode of recommendation as Movie-based or Genre-based by clicking on the down arrow for 'Select Application'.

Selecting Application

- Movie Based

- If Movie-based application is selcted, then user needs to enter a movie similar to which the user will get the recommendations.

Movie-based - Entering a Movie

- There are tons of options of movies of the user to choose from by clicking on the down arrow.

Movie Options

- Then, for the selected movie, recommendations will be provided. The default number of recommendations is set at 5, but you may increase or decrease the number of recommendations as per your requirement.

Recommendations for Movie-based

- The recommendations provided also enables you to check it's overview and it's trailer by clicking on the Movie you choose from the recommendations and you will be directed to its IMDB page. Here, I clicked on Wreck-it Ralph : 

IMDB page of the Recommended Movie

- Genre Based

  - If Genre-based application is selected, then the user needs to select either one or more genres from the options provided.

Selecting Genres

  - Then you may adjust the IMDB score according to your requirement for the recommendations. Here as well, you may increase or decrease the number of recommendations you require.

Adjusting IMDB Score

  - If you click on any recommended movie, you will be directed to its IMDB page. Here, I've clicked on Sleeper :

IMDB page of the Recommended Movie

- Additional Feature

  - In order to accompany your searching time, music is provided. Optional to vibe.

Play the Audio

Comparison and Analysis

  • On comparison, Content-based filtering will only give partial results for recommendation while collaborative-based filtering will give many possible results for the user seeking recommendation.
  • But when combining the content-based and collaborative-based filtering together as the Hybrid approch, then the user is getting a very pact solution and convincing recommendations. This is the reason that hybrid approach is being used largely in recommendation systems.
  • Popularity-based filtering is another algorithm type which recommends the most seen or liked items to the user. This is inculcated in the 'Recliner Lounge' Web App as the option to adjust the IMDB Scores.

Resources Used

Resources Used within the Web App

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 98.8%
  • Python 1.2%