HS Osnabrück - 5 Semester - Assessment for the module Programming Project
Implementation of the API interface only, recommendations Dataset, WEB-UI
Netflix streams movies to its users andshared its data to provide improved movie recommendations. You are tasked to create a recommenation system for its users.
To do this exercise, the company provides several files, such as information on the movies, and user ratings, summing up to a total of 480189 unique users and 17770 movies.
Further details can be found here https://www.kaggle.com/datasets/netflix-inc/netflix-prize-data
The project is implemented in three sprints. Management is carried out via GitHub https://github.com/users/ThomasWilmes/projects/1
The frontend of this application is available via https://github.com/ThomasWilmes/Programmierprojekt_Frontend.git
The API is deployed via a ci/cd pipeline using github actions. With the deployment of new changes the python file is tested and later pushed to the heroku app.
Both the linting and code validity is checked before doing so.
Only after the build step is completed the deploy step begins
The two relevant enpoints are as follows:
https://backend-api-gruppe5.herokuapp.com/movies
https://backend-api-gruppe5.herokuapp.com/recommendation?movie_id=3
or for multiple
https://backend-api-gruppe5.herokuapp.com/recommendation?movie_id=3,5,8
- git clone https://github.com/ThomasWilmes/Programmierprojekt.git
- pip3 install virtualenv
- python -m venv env
- .\evn\Scripts\activate
- --> When Activation is failing: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted --> Repeat step four
- --> to run the Jupyter Notebook in virtual Enviroment it is recommended to install all jupyter dependencies --> pip3 install jupyter
- pip3 install -r .\requirements.txt
- In order to run the Jupyter Notebook, all packages in the first Chapter needs to be installed!
- python .\main.py
- Delete everything from the data folder except the testset.json
- Download Data from Netflix prize set https://www.kaggle.com/datasets/netflix-inc/netflix-prize-data
- Add combined_data 1 - 4 .txt to data folder
- Add movie_titles.csv to the data folder
- All headings and passages are located in the Notebook Recommendation System. The data can be processed by adjusting the file paths and installing the requirements beforehand.
- See Notebook
- Load index.html into the root directory of your webserver or local client
- Kopy the style.css file in to the /%root%/cs (/cs) direcotry
- The script ressources in the index.html header can be used or changed if necessary (Lines 8, 11, 12)
- If you are building the API on an new server, please adjust lines 30 and 73 in the index.html accordingly
- Good luck :-)
--> JavaScript should be enabled on the webbrowser!!!