/l3-web-tech

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

--------- ABOUT ----------
a rating predictor for movies
allows users to login, uses rated movies to inform future predictions
done in the form of a website

---------- TO RUN ----------
`python3 app.py`

runs A FLASK WEB APP
web app will run on http://localhost:80/
please use a (reasonably) modern browser

---------- DEPENDENCIES ----------
pandas, urllib, flask, numpy, requests, scipy

---------- COMMENTS ----------
- movielens dataset is used as source (~ 9742 movies total) (~ 600 users with reviews)
- (the larger movielens dataset is ~250mb, which I deemed too large for this small-scale assignment)
- dataset is automatically updated each time before web app is run
- friendly website user interface, with large, clear tiles showing the movies. 
- HTML,CSS,JS and AJAX (to flask web app) for a dynamic experience
- language selection option on website (english & french)
- login/logout as users (CaSe SeNsItIvE), logging in again restores all previous preferences just as they were left
- personalised message tells users how many ratings they have today, the state of their account (are they logged in or not? are their any recommendations at the moment?)
- user profiling - as users rate movies, suggestions dynamically update - with each rating AJAX request updates the central rating respoitory
- SVD recommendation algorithm realised in pandas, which is normalised before showing to users (ensures there are always matches in the range 0-5 stars, which makes the most sense to users)
- user ratings stored in `users.csv`, which is merged with main ratings when starting server, file is also backed up again with each new rating into the system