Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Movie Recommendation System - Web Interface

A simple and elegant web application for movie recommendations using Vue.js and Node.js.

Features

  • 🎬 Search movies from the database
  • 🔍 Three recommendation models:
    • Hybrid (Recommended) - Combines content-based and collaborative filtering
    • Content-Based - Based on movie features (tags, director, etc.)
    • Collaborative Filtering - Based on user behavior patterns
  • 📱 Responsive and modern UI
  • ⚡ Fast and efficient recommendations

Prerequisites

  • Node.js (v14 or higher)
  • Python 3.7+ with the following packages:
    • pandas
    • numpy
    • scikit-learn
    • pickle (built-in)

Installation

1. Install Python Dependencies

pip install -r requirements.txt

2. Install Backend Dependencies

cd backend
npm install
cd ..

3. Install Frontend Dependencies

cd frontend
npm install
cd ..

Running the Application

Option 1: Quick Start (Windows)

Double-click start.bat or run:

start.bat

Option 2: Quick Start (Linux/Mac)

chmod +x start.sh
./start.sh

Option 3: Manual Start

Terminal 1 - Backend:

cd backend
npm start

Terminal 2 - Frontend:

cd frontend
npm run dev

The backend will run on http://localhost:3000
The frontend will run on http://localhost:5173

Usage

  1. Open your browser and navigate to http://localhost:5173
  2. Search for a movie by typing in the search box
  3. Select a movie from the search results
  4. Choose a recommendation model (Hybrid is recommended)
  5. Click "Get Recommendations" to see similar movies

Project Structure

.
├── backend/
│   ├── server.js              # Express API server
│   ├── recommendation_service.py  # Python service for ML recommendations
│   ├── success_prediction_service.py  # Python service for success prediction
│   └── package.json
├── frontend/
│   ├── src/
│   │   ├── App.vue            # Main Vue component
│   │   └── main.js            # Vue app entry point
│   ├── vite.config.js
│   └── package.json
├── ml/
│   ├── models/                # Machine learning models
│   │   ├── *.pkl              # Trained models (cosine similarity, success prediction, etc.)
│   │   └── *.npy              # Model factors (user/item factors)
│   ├── data/                  # Data files
│   │   └── *.csv              # Movie datasets
│   └── notebooks/             # Jupyter notebooks
│       └── *.ipynb            # Data analysis and model training notebooks
└── README.md

API Endpoints

GET /api/movies

Search for movies

  • Query params: search (string), limit (number)

POST /api/recommendations

Get movie recommendations

  • Body: { movieTitle: string, modelType: 'hybrid'|'content'|'collaborative', topN: number }

GET /api/health

Health check endpoint

Notes

  • The backend uses Python scripts to load and run the ML models
  • All ML models and data files are organized in the /ml directory
  • Model files are in /ml/models/, data files in /ml/data/, and notebooks in /ml/notebooks/
  • The system requires Python to be accessible from the command line

Troubleshooting

  • Backend not starting: Make sure port 3000 is not in use
  • Python errors: Verify Python dependencies are installed
  • No recommendations: Check that model files exist in the project root
  • CORS errors: The backend includes CORS middleware, but verify it's enabled

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages