An end-to-end AI-powered movie recommendation system built using FastAPI, React, and Machine Learning.
The system provides personalized movie recommendations using Content-Based Filtering with TF-IDF and Cosine Similarity, deployed on modern cloud platforms.
-
Frontend (Vercel):
https://movie-recommendation-system-six-tawny.vercel.app/ -
Backend API (Render):
https://movie-recommendation-system-6gt8.onrender.com/docs
- 🔐 JWT-based Authentication (Login & Register)
- 🎥 Browse top movies from TMDB dataset
- ⭐ Movie rating system
- 🤖 AI-powered movie recommendations
- 🧊 Cold-start handling (popular movies)
- ⏳ Lazy-loaded ML model (memory efficient)
- 🌐 Fully deployed (Frontend + Backend)
- 📱 Responsive UI (Desktop & Mobile)
- React.js (Vite)
- Tailwind CSS
- Axios
- React Router
- Deployed on Vercel
- FastAPI
- REST APIs
- JWT Authentication
- MongoDB (users & history)
- Deployed on Render
- Python
- Pandas, NumPy
- Scikit-learn
- TF-IDF Vectorization
- Cosine Similarity
- Lazy model loading for production
- Top 10K TMDB Movies Dataset
- Fields:
- title
- genre
- overview
- popularity
- vote_average
- vote_count
- Movie overviews are converted into TF-IDF vectors
- Cosine Similarity finds similar movies
- Top-N similar movies are returned
- Model loads only when
/recommendendpoint is called (lazy loading)
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/register |
Register user |
| POST | /auth/login |
Login user |
| GET | /movies |
Get movies |
| GET | /recommend/{movie} |
Get AI recommendations |
| POST | /rate-movie |
Rate movie |
| GET | /user/history |
Watch history |
Backend uses environment variables for security.
MONGO_URI=your_mongodb_uri SECRET_KEY=your_secret_key
- Backend deployed on Render
- Frontend deployed on Vercel
- CORS configured for cross-domain access
- Optimized for free-tier hosting (single worker, lazy ML load)
- Cold-start latency on ML endpoints
- CORS issues between Vercel & Render
- Dataset path resolution in production
- Memory optimization for ML models
- Collaborative Filtering
- Hybrid Recommendation System
- Movie posters using TMDB API
- User-specific recommendations
- Admin dashboard
Amit Chaurasia
B.Tech | Full-Stack & AI Enthusiast