WatchFav : Movie Recommendation Webapp

WatchFav is a web application which consist of different Algorithms and API calls that recommend movies, build as a solution of 3rd challenge to the Microsoft Engage 2022 program

landing

📌 Table of Contents

🚀 Main Features

  • Get Recommended Movies based on different algorithms and approaches.
  • Latest Trending Movies
  • Top Rated Movies
  • Popular Movies
  • Get Direct Access to OTT Links having that particular movie

landing

🚀 Essential Features

  • Dynamic interactive simple and attractive UI.
  • Real time posters and banner fatched corresponding to each movie using TMDB API
  • 3 Carousel at home page showing top 3 movies trending today in real time using TMDB API.
  • Watch latest trending movies Today.
  • Watch latest trending movies This.
  • Popular movies and top rated movies
  • View real time movies rating, release day, duration.
  • Get to see overview about movie on movie player page.
  • View and watch movies popular in every genre sorted using sorting algorithms.
  • Get list of movies based on it's genre by clicking movie more
  • Get direct link to the page where shows movies availability at different OTT platforms.
  • Get Recommended movies based on what you are watching now
  • Separate page to check different algorithms and get number of recommended movies with what you fill in form.
  • Add more features...

💻 Tech Stack Used/ Dependencies

⚡️ WatchFav Timeline

I'm being student from mechanical engineering having knowledge of basic DSA and enthusiasm for software development. It has been first ever project for me that is build end-to-end right from scratch. It wasn't possible without consistent & punctual daily routines. It has been one of the best learning experiences I encounter till now where I have learned so many tech stacks and not only learned but implemented as well.

Here is 4-week consisted timeline what is followed to build this project.

landing

📦 Getting Started/ Setup

  1. Clone this repository.
  git clone https://github.com/Yadavbalbir/WatchFav_microsoft_engage.git
  1. Head over to project directory and install dependencies by running the following in terminal.
   pip install -r requirements.txt
  1. To start this app run the following command in terminal in project directory
  python app.py
  1. If requirements.txt throws error then run the following commands in the terminal
  pip install flask
  pip install pandas
  pip install requests
  pip install sklearn
  1. Now run the app again
  python app.py
  1. App will run on http://127.0.0.1:5000/, so click it and head over to browser to view web app.

📖 Usage guide/ Application flow

Visit the hosted web application at "link"

Landing Page

This page consists details about the project like features, timeline, algorithms and approaches. This is not our home page of the project.

Click Get Started to enter in our main project

landing page

Home Page

Once we click Get Started, we will enter into the home page of our project. which consists the following things

  • Carousel having trending movies today

    carousel
  • Popular Movies

    carousel
  • Top Rated Movies

    carousel
  • Today's Trending Movies

    carousel
  • This week Trending Movies

    carousel
  • popular in action Movies

    carousel
  • popular in Drama Movies

    carousel

Similarily we have popular movies corressponding to each and every genre. If you want to see more movies than the limited movies shown on home page then click to see more. You will land the website which have same category movies which you wanted to see.

Let's see more Horror Movies carousel

Results of see more Horror Movies carousel

Movie Page

Now let's click watch now at one of the movies shown on our website carousel

Once you click watch now, you'll land on movie page consisting the dummy video player but real title, overview, OTT Link, rating, vote count, release_date or duration in mins, language. This is how it look like carousel

Annotated img carousel

Now scroll down on this page you will see Recommended for you section which consists of movies recommended based on watch you are watching now.

carousel

separate pages for testing different models

  • Test page for Model-1

    this is how our model-1 webpage looklike. You can enter any number of movies you want, It will give the results based on weighted Avag and sorted with sorting algorithms to get the movies with highest weighted avag movie at the top

    carousel

    Now Let's enter 10 in the form input and hit Recommend button These are results of top movies in our database sorted with sorting algorithms

    carousel
  • Test Webpage for our model-2

    this is how our model-2 webpage look like. You have to enter the title of movie watching or watched and number of movies you want in recommendation. It is based on TF*TDF and Cosine_similarity algorithms. in model-2 we consider overview of movies to apply our algorithms and then sort the results

    carousel

    Now let's enter title : "Avengers: Age of Ultron" Number : 5 these are the top 5 recommended movies for Avengers look like

    carousel
  • Test webpage for our model-3

    same approach as above. more details are available on webpage

  • Test webpage for our hybrid-4

    same as above. more details are available on webpage

🚧 Future Scope/ What's next?

  • Adding user authentication.
  • User Dashboard showing users activity
  • Add to favourite button on movies which will add movies in users dashboard
  • Watch Later
  • Collobrate filtering with the different users available on our website

📚 Resources