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.
- 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
- Frontend: React.js, Redux, Material-UI
- Backend: Flask
- Database: MongoDB
- Authentication: JWT
- API Integration: TMDB (The Movie Database), Gemini
- Python 3.9 or later.
- Node.js and npm.
- MongoDB Server.
Before running the application, you must set up your environment variables:
- Navigate to the
backenddirectory. - Copy the
.env.examplefile to create a.envfile:cp .env.example .env
- Open
.envand 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).
- Clone the repository:
git clone https://github.com/dyingpotato890/WatchWise.git cd WatchWise - 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
- Navigate to the backend folder:
- Set up the frontend:
- Navigate to the frontend folder:
cd frontend - Install dependencies:
npm install
- Start the development server:
npm start
- Navigate to the frontend folder:
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Description of changes" - Push to the branch:
git push origin feature-name
- Submit a pull request.
This project is licensed under the GPL-3.0 License. See the LICENSE file for details.

.png)

%20-%20WatchWise.png)
%20-%20WatchWise.png)
