A simple and elegant web application for movie recommendations using Vue.js and Node.js.
- 🎬 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
- Node.js (v14 or higher)
- Python 3.7+ with the following packages:
- pandas
- numpy
- scikit-learn
- pickle (built-in)
pip install -r requirements.txtcd backend
npm install
cd ..cd frontend
npm install
cd ..Double-click start.bat or run:
start.batchmod +x start.sh
./start.shTerminal 1 - Backend:
cd backend
npm startTerminal 2 - Frontend:
cd frontend
npm run devThe backend will run on http://localhost:3000
The frontend will run on http://localhost:5173
- Open your browser and navigate to
http://localhost:5173 - Search for a movie by typing in the search box
- Select a movie from the search results
- Choose a recommendation model (Hybrid is recommended)
- Click "Get Recommendations" to see similar movies
.
├── 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
Search for movies
- Query params:
search(string),limit(number)
Get movie recommendations
- Body:
{ movieTitle: string, modelType: 'hybrid'|'content'|'collaborative', topN: number }
Health check endpoint
- The backend uses Python scripts to load and run the ML models
- All ML models and data files are organized in the
/mldirectory - 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
- 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