Skip to content

aanya-2427/moviemash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

moviemash - Movie Recommending Web App

Sign-Up screen

Submission for Microsoft Engage 2022 🌟

TABLE OF CONTENTS

Table of Contents
  1. About The Project
  2. Agile Methodology
  3. Behind the Recommendation Engine
  4. Getting Started
  5. Navigating through the App
  6. Resources Used
  7. Sources of the Datasets
  8. Useful Links
  9. Support and Contact

About The Project

moviemash is a web application developed for Microsoft Engage 2022. As a part of the program, the mentees were assigned the task to choose a track from the three given tracks. moviemash comes under the third track, Algorithms.In this track we were asked to implement a recommendation engine in the app based on any algorithm of our choice.The main aim of the project is to develop a web application which recommends movies to user based on the movie he searched at that time with ease of use and simplicity.

Salient Features

  • User authentication using Firebase
  • Search a movie and get its details like title,genre,runtime,rating,poster
  • Recommending movies based on the searched movie at that time

Built With

Python It is used for data processing for the recommendation engine
Framework It is used in integrating the python code with frontend part.
Frontend These are used for styling the website(frontend).
API It is used for storing the registered user's credentials(email).


(Back to top)

Agile Methodology

What is Agile

Agile is a development methodology adopted today in the software industry. Agile promotes teamwork, flexible procedures, and sle-organizing teams.

How I Incorporated Agile Methodology During The Development Cycle

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 4-May 8): Sprint Planning and Research - Researching about what is recommendation engine, whar its types, how it works, what are the agorithms that streaming platfroms like Netflix,Spotify use for their recommendation engine.

  • Sprint 2( May 8- May 12):Design phase - Various libraries(if needed) for implementing recommendation agorithm. After finalizing the algorithm to be used for recommendation ,I searched for tutorials, designed a wireframe including the functionalities I want and designed the UI.Build a basic prototype of the web application.

  • Sprint 3 (May 12- May 24): Build phase - Started the development process by taking help from medium blogs, Youtube tutorials. Built a web application after the initial prototype using Python, Flask and HTML,CSS and JS for frontend, Firebase for storage of data. Encountered occasional bugs which I debugged timely. Made required changes in the UI and color scheme to make it more eye pleasing.

  • Sprint 4 (May 24-May 27): Testing Phase -Debugging and adding additional features. Decided to build the recommendation engine using content-based filtering by using similarity score and cosine similairty which recommends movie based on the movie that user searched at that time.Made required changes to integrate the frontend part. Added sign in authentication using Firebase. Also added sentiment analysis of the user reviews by scrapping them from IMDB site.


    (Back to top)

Behind the Recommendation Engine

How does the recommendation system behind the application works? What algorithms it uses for the recommendation part.

Content Based Filtering

Content-based Filtering analyses the nature of each item and aims to find the insights of the data to identify the user preferences. Basically content recommenders rely on item features to make recommendations. Examples of this features include User generated tags on movies, Item color, Text description, User review of an item, Genre, Director, Description, Actors of a Movie etc. The general idea behind these recommender systems is that if a person likes a particular item, he or she will also like an item that is similar to it. In other words, these algorithms try to recommend items that are similar to those that a user liked in the past. This can be seen in applications like Netflix, Facebook Watch which recommend the next movie or video based on the Director, Hero etc. In this post I have used Content-based Filtering to find the recommendations of the movies. The recommendation system build with title, cast, director, keywords, genres features in the dataset.

Similarity Score

How does it decide which item is most similar to the item user likes? Here come the similarity scores.

It is a numerical value ranges between zero to one which helps to determine how much two items are similar to each other on a scale of zero to one. This similarity score is obtained measuring the similarity between the text details of both of the items. So, similarity score is the measure of similarity between given text details of two items. This can be done by cosine-similarity.

Cosine Similarity

Cosine similarity is a metric used to measure how similar the documents are irrespective of their size. Mathematically, it measures the cosine of the angle between two vectors projected in a multi-dimensional space. The cosine similarity is advantageous because even if the two similar documents are far apart by the Euclidean distance (due to the size of the document), chances are they may still be oriented closer together. The smaller the angle, higher the cosine similarity.


(Back to top)

Getting Started

To install and run the project on your local system, following are the requirements:

Prerequisites

1.Get your API key for further steps. Do so by following the steps mentioned below.

Create an account in https://www.themoviedb.org/.
Click on the API link from the left hand sidebar in your account settings and fill all the details to apply for API key.
If you are asked for the website URL, just give "NA" if you don't have one. You will see the API key in your API sidebar once your request is approved.

2.Install python in your system , if not installed already by selecting according to your system from https://www.python.org/downloads/ site.

Installation

To use this project, follow the steps below:

  1. Clone this repository. Initialise git on your terminal.
git init
git clone https://github.com/Aanya74282/moviemash-Engage2022.git
  1. Install all the libraries mentioned in the [requirements.txt]file with the command pip install -r requirements.txt

  2. Get your API key from https://www.themoviedb.org/. (Refer the above section on how to get the API key)

  3. Replace YOUR_API_KEY in both the places (line no. 15 and 35) of static/recommend.js file,in line no.8 of api.js and hit save.

  4. Open your terminal/command prompt from your project directory and run the file main.py by executing the command python main.py.

  5. Go to your browser and type http://127.0.0.1:5000/ in the address bar.

  6. Yayy! Your site is deployed now.


(Back to top)

Navigating Through The App

Sign-Up

Sign-Up feature to the web application by providing credentials (name, email and password).

Sign-Up screen

Sign-In

Sign-In using your email and password registered to the web application which are saved in firebase.

Sign-In screen

Home

The Home window appears where the users can search for the desired movies, scroll through their favourite movies sorted according to their genres.

Home screen

Search

After logging in, a search input appears where one can search the desired movie with the autocomplete feature and get all the information like title,genres,release etc about that movie..

Search Window

Movie-info

Get the details of the searched movie like title, genre, runtime,rating,poster,etc which are fetched using an API by TMDB.

Movie details screen

Cast-info

After searching the movie,get the details of the top cast of the searched movie and on clicking the know more button which appears on hovering over them , get information about them.

Cast info screen

Recommendation

Get a list of 10 recommended movies based on the movies searched at that time.This recommendation is done by using the content based filtering on the movies data. Click on those movies to search about them and get their details

Recommended movies screen

Sentiment Analysis

Get the sentiment analysis of the user reviews who have already wathced the movie which are scraped from IMDB site.

SEntiment analysis for user reviews screen

Movies by Genre

Get a list of movies which are displayed by calling API and display them in decraesing order of popularity.

Movies displayed by genre using API screen

LogOut

Click on LOGOUT in navigation bar to log out and it will redirect to the sign-in, sign-up page.

Logout alert screen


(Back to top)

Resources Used

(Back to top)

Sources of the datasets

  1. IMDB 5000 Movie Dataset
  2. The Movies Dataset
  3. List of movies in 2018
  4. List of movies in 2019
  5. List of movies in 2020

(Back to top)

Useful Links

(Back to top)

Support and Contact

Email To: [email protected]
(Back to top)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published