Browsing movies for the past hour but can't find anything to watch? Let AI do the work for you. Presenting our Movie Recommendation Web Application, a website where users can get movie suggestions tailored specifically to their preferences. Our service is based on a freemium model, where guest users can still access the search engine but only registered users can use our website to the fullest. This includes getting suggestions based on their watch history, preferred genre and likes/dislikes. They can also leave reviews if they so wish to help other users.
- Download this repository.
- Setup your own TMDB API key-token pair.
- Run three terminals, one for the frontend, one for the backend and one for the machine learning model.
- In one terminal, go into the backend directory and run
node database.js
- In the other terminal, go into the frontend directory and run
npm start
Due to GitHub's data size limitations, we are unable to push the complete dataset CSV file and the trained model (.pkl file) to the repository. Instead, we have provided a temporary file containing 5000 movies for demonstration purposes.
To train the model, follow these steps:
- Run
export_model.py. This is a one-time process. - This script will generate two files:
tfidf_vectorizer.pklcosine_sim_matrix.pkl
These files are essential for the model training process.
When running the application using training.py, ensure that the generated files (tfidf_vectorizer.pkl and cosine_sim_matrix.pkl) are in the same directory. These files are utilized during the training process.
- In the last terminal, go into the ml_model directory and run
python training.py
- The website is now live and will return results to user queries. Any changes made to the frontend will automatically compile.
For our test cases, we use the built in React testing library and Jest-DOM. To run our unit tests, follow the below instructions:
- Install the necessary testing libraries
npm install react-scripts @testing-library/react @testing-library/jest-dom @testing-library/user-event react-router-dom react-test-renderer --save-dev
-
Make sure you are in the /frontend directory
-
Run the test cases
npm run test
You can view the test cases in
/frontend/src/components/__tests__/components.test.js
The ML model is trained on the TMDB Dataset.
We are using the TMDB API to support results for user queries.
Project Leader
- Stav Kinreich
Team Members
- Bhavik Ransubhe
- Shyam Panigrahi
- Erin Song
- Nikhil Mukherjee
The CONTRIBUTION.md file can be found here.
A big thank you to Prof. Juan and all the TAs of COMPSCI 520 for helping us complete this project.
-
This project can only be hosted on a local machine for the time being, so we plan on setting up a full fledged website that can be accessed by users online. We hope to host the website through AWS utilizing code-pipeline and code-deploy to pull and compile our code from GitHub and deploy our application on a beanstalk environment running on an EC2 instance. This will let us host our application on a website anyone can access. We can also host the website using other web services, such as Azure or .io.
-
We plan on introducing some of the website's functionalities as a Chrome extension, such as reading or writing reviews about a movie on the go.