Originally made for my university's Department of Computer Science's course Software, Systems & Applications under the sub-module Web Technologies, as part of the coursework in 2018/2019.
This project aims develop a personalized web application which provides movie recommendations to users based on a suitable recommendation algorithm which makes use of user similarities and a movie ratings database.
The website has 3 main sections: Browse, Profile and Recommendations, in addition to Login/out functionality.
- Browse: presents table of all database movies which user can interact with by submitting ratings.
- Profile: maintains user profile wherein a table containing movies rated by user is presented. User may amend or delete previous ratings.
- Recommendations: provides user with movie recommendations via singular value decomposition of all user ratings. Also provides personalized messages based on username and preferred genres (inferred from ratings).
Database is utilized as this was seen as better suited for reading and writing to tables as it is not done in memory.
Pandas and numpy are instead utilized for data manipulation.
This work is made for Python 3.5 and up.
The following packages should be installed:
These can all be installed via pip with pip3 install --user <package_name>
.
NB underscores should be changed to hyphens when installing.
- In a shell, ensure you are in movie-recommender/.
- Enter
python3 run.py
. - In a browser, navigate to the address shown in the terminal, usually
http://127.0.0.1:5000/
- The website itself has the rest of the instructions
- NB, you need to create an account to access most features.