Project Overview FilmFlix is a personalized movie recommendation system that leverages the Alternating Least Squares (ALS) algorithm. Users can rate movies, and based on their ratings, the system provides customized movie recommendations.
React - used to build a responsive and interactive UI for users to browse movies, submit ratings, and view recommendations. Back end:
Flask - serves as the API layer, handling client requests, user authentication, and communication with the recommendation system. Message Queue:
Kafka - used as the messaging queue for sending user rating data from the front end to the recommendation engine. Streaming & Recommendation Engine:
Spark Streaming - processes the data
Spark MLlib - generates movie recommendations using the ALS algorithm. Database: MongoDB stores user data, movie information, and ratings.
- Frontend: React, JavaScript, Material-UI
- Backend: Flask, Python, Flask-CORS, Flask-JWT
- Queue: Kafka
- Data Processing: Apache Spark, Spark Streaming
- Database: MongoDB
- Containerization: Docker
Set up Frontend without docker:
cd frontend
npm install
npm startSet up Backend without docker:
cd backend
python -m venv venv
source venv/bin/activate # For Linux/macOS
venv\Scripts\activate # For Windows
pip install -r requirements.txt
python app.pyRun all in docker:
docker-compose up