Skip to content

About

This is a content-based movie recommendation system built with Python and Streamlit. It recommends movies by analyzing similarities in genre, cast, director, and descriptions using TF-IDF and cosine similarity. The project follows an end-to-end ML workflow from data scraping to model building. The application is Dockerized for easy deployment.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

🌜 Movie Recommendation System

This project is a content-based movie recommendation system built with Python, using Streamlit for the user interface. It recommends movies to users based on similarities in their content, such as genre, director, cast, and description. The application is containerized using Docker and is ready for deployment.

📝 Project Overview

The project follows a standard machine learning workflow, from data collection to deployment. It involves:

  • Web Scraping: Gathering movie data from IMDb.
  • Data Preprocessing: Cleaning and preparing the scraped data.
  • Model Building: Creating a content-based recommendation engine using machine learning techniques.
  • User Interface: Developing a web application with Streamlit.
  • Deployment: Packaging the application for easy deployment with Docker and Kubernetes.

✨ Features

  • 🎯 Content-Based Filtering: Recommends movies by analyzing and matching the attributes of a movie a user likes.
  • 🖥️ Interactive Web App: Built with Streamlit, users can select a movie and instantly get recommendations.
  • 📦 Scalable Architecture: Dockerized and ready for deployment on cloud platforms or Kubernetes clusters.

⚙️ Technologies Used

  • Python → Core programming language
  • Pandas → Data manipulation & analysis
  • Scikit-learn → TF-IDF vectorization + cosine similarity
  • Streamlit → Building the interactive user interface
  • Requests & BeautifulSoup → Web scraping IMDb movie data
  • Docker → Containerization for consistent deployments
  • Kubernetes (YAML) → Deployment & service management

🚀 How to Run Locally

  1. Clone the repository
git clone https://github.com/CherrySeasons/MovieRecommendationSystem.git
cd https://github.com/CherrySeasons/MovieRecommendationSystem.git
  1. Install dependencies
pip install -r requirements.txt
  1. Run the Streamlit app
streamlit run app.py

➡ The app will automatically open in your default browser.

📦 Deployment

🐳 Docker

Build the Docker image:

docker build -t movierecommendation .

Run the Docker container:

docker run -p 8501:8501 movierecommendation

☸️ Kubernetes (Optional)

Use the provided YAML files to deploy on a Kubernetes cluster:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
  • deployment.yaml → Defines replicas and Docker image.
  • service.yaml → Exposes the application via a LoadBalancer.

📂 Project Structure

├── content_filtering_engine.py    # Content-based recommendation logic
├── movie_data_scraper.py          # Web scraping IMDb movies
├── main_app.py                    # Streamlit web application
├── requirements.txt               # Python dependencies
├── Dockerfile                     # Docker image build file
├── k8s_deployment.yaml            # Kubernetes deployment config
├── k8s_service.yaml               # Kubernetes service config
├── movie_dataset.xlsx             # Movie dataset
├── movies_index.pkl               # Preprocessed movie list
├── similarity_matrix.pkl          # Similarity model
├── README.md                      # Project documentation
└── .gitignore                     # Ignored files & folders

👨‍💻 Author

  • Teja Sai Eswar Reddy Singa Reddy

About

This is a content-based movie recommendation system built with Python and Streamlit. It recommends movies by analyzing similarities in genre, cast, director, and descriptions using TF-IDF and cosine similarity. The project follows an end-to-end ML workflow from data scraping to model building. The application is Dockerized for easy deployment.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages