Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

284 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WatchWise - Mood Based Movie Recommendation System


WatchWise Logo


Table of Contents

Overview

WatchWise, introduces a novel approach to personalized movie recommendations by integrating mood-based analysis with hybrid recommendation algorithms. This system combines Content-Based Filtering (CB) and Collaborative Filtering (CF) to deliver diverse and tailored suggestions. Users interact with the system by describing their current mood, from which an appropriate emotional state is extracted. Movies aligning with this mood are then recommended, ensuring a more engaging and intuitive user experience.

Features

  • Smart Recommendations: Get personalized movie suggestions based on your viewing history and preferences
  • Advanced Filtering: Search for movies by genre, release year, director, actors, and more
  • User Reviews: Share your thoughts and read what others have to say about films
  • Watchlist Management: Save movies to watch later and track your viewing history
  • Community Ratings: See how other users have rated movies to make informed decisions

Technology Stack

  • Frontend: React.js, Redux, Material-UI
  • Backend: Flask
  • Database: MongoDB
  • Authentication: JWT
  • API Integration: TMDB (The Movie Database), Gemini

UML Diagrams

Architecture Diagram:

ER Diagrams:

Activity Diagram

Installation

Prerequisites

  • Python 3.9 or later.
  • Node.js and npm.
  • MongoDB Server.

Environment Setup

Before running the application, you must set up your environment variables:

  1. Navigate to the backend directory.
  2. Copy the .env.example file to create a .env file:
    cp .env.example .env
  3. Open .env and provide your configuration:
    • GEMINI_API_KEY: Your API key from Google AI Studio.
    • MONGO_URI: Your MongoDB connection string (usually mongodb://localhost:27017/).
    • DATABASE_NAME: The name of your database (e.g., WatchWise).

Steps

  1. Clone the repository:
    git clone https://github.com/dyingpotato890/WatchWise.git
    cd WatchWise
  2. Set up the backend:
    • Navigate to the backend folder:
      cd backend
    • Install required Python dependencies:
      pip install -r requirements.txt
    • Configure Environment Variable:
      GEMINI_API_KEY_CHATBOT=your_gemini_api_key
    • Run the backend:
      python server.py
  3. Set up the frontend:
    • Navigate to the frontend folder:
      cd frontend
    • Install dependencies:
      npm install
    • Start the development server:
      npm start

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature-name
  3. Commit your changes:
    git commit -m "Description of changes"
  4. Push to the branch:
    git push origin feature-name
  5. Submit a pull request.

Contributors

  1. Gayathri K. Binoy
  2. Megha B
  3. Nihar Niranjan
  4. Niranjay Ajayan

License

This project is licensed under the GPL-3.0 License. See the LICENSE file for details.

About

WatchWise is a mood-based movie and TV show recommendation platform designed to help users discover the perfect content based on their current emotional state.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages