Skip to content

MovieMeter is a full-stack web application where users can discover, rate, review, and discuss movies. Authenticated users receive personalized movie recommendations via a content-based recommendation system built with Flask and Python, integrated into a MERN (MongoDB, Express, React, Node.js) .

Notifications You must be signed in to change notification settings

sushil-sagar05/Movie-Meter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 Moviemeter – Personalized Movie Recommendation Web App

Moviemeter is a full-stack web application that lets users discover, review, and discuss movies β€” while also receiving personalized recommendations based on their preferences. It’s powered by a custom-built content-based recommender system using Python, scikit-learn, and MongoDB.


πŸš€ Features

πŸ‘€ Authentication

Secure user signup & login system

Authenticated access to personalized content

❀ User Interactions

Like & favorite movies

Write reviews and view others’ opinions

Engage in threaded movie discussions

🧠 Personalized Recommendations

Content-based recommender using:

Movie vectors (genres, metadata)

Cosine similarity with user profile vector

Built with Python, pandas, and scikit-learn

🌐 Tech Stack

Frontend: React, Tailwind CSS

Backend: Express.js for app APIs, Flask for ML API

Database: MongoDB (with Mongoose ODM)

AI/ML: Python, Pandas, Scikit-learn

Deployment: Deployed on [Railway/Render/Vercel/etc.]


πŸ“‚ Folder Structure

moviemeter/ β”‚ β”œβ”€β”€ frontend/ # React.js frontend β”œβ”€β”€ backend/ # Express.js API backend β”œβ”€β”€ recommender/ # Flask-based ML microservice β”‚ β”œβ”€β”€ final_df_data.pkl.gz β”‚ β”œβ”€β”€ movies_data.pkl β”‚ └── recommender.py β”œβ”€β”€ .env # Environment variables └── README.md


βš™ Setup Instructions

  1. Clone the Repository

git clone https://github.com/sushil-sagar05/moviemeter.git cd moviemeter

  1. Setup Frontend (React.js)

cd frontend npm install npm run dev

  1. Setup Backend (Express.js)

cd ../backend npm install npm run dev

  1. Setup ML Recommender (Flask)

cd ../recommender pip install -r requirements.txt python recommender.py

Ensure .env files are present in backend and recommender directories with MongoDB credentials.


🧠 How Recommendations Work

  1. User likes/favorites some movies

  2. Flask service fetches their liked movie vectors

  3. A user profile vector is created by averaging the liked vectors

  4. Cosine similarity compares this profile with all other movies

  5. Top results (excluding already liked) are returned


βœ… Current Status

[x] Frontend UI with user interactions

[x] Backend APIs with authentication & review handling

[x] ML model deployed via Flask API

[x] Hosted and live

[ ] (Coming Soon): Docker + CI/CD DevOps integration


πŸ‘¨β€πŸ’» Author

Sushil Sagar B.Tech | AI/ML + Full Stack Developer | Passionate about building end-to-end intelligent applications πŸ“« Connect on LinkedIn: https://www.linkedin.com/in/sushil-sagar-0b4538290/ 🌐 Portfolio: Coming soon...


⭐ If you like this project

Give this repo a star ⭐ and share your thoughts. Contributions, suggestions, or feedback are always welcome!

About

MovieMeter is a full-stack web application where users can discover, rate, review, and discuss movies. Authenticated users receive personalized movie recommendations via a content-based recommendation system built with Flask and Python, integrated into a MERN (MongoDB, Express, React, Node.js) .

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published