COMP3381 – SSA3 Web Technology
Summative Assignment
This coursework gives you an opportunity to experience the development of a
personalized web application. There are a lot of aspects for providing personalized
contents to web users, including item recommendation, internationalization, website
construction, etc. Under each aspect, a variety of techniques could be incorporated. You
are expected to implement a good selection of aspects as above with python,
demonstrating your competence in developing application with personalization features.
The deadline for submission is the 13th December 2019 (2pm).
References:
Lecture notes
Generating recommendations with Pandas: https://stackabuse.com/creating-asimple-recommender-system-in-python-using-pandas/
Matrix factorization with Pandas: https://beckernick.github.io/matrix-factorizationrecommender/
Wes McKinney, Python for Data Analysis, O'Reilly, 2018.
Flask: https://www.makeuseof.com/tag/python-javascript-communicate-json/
System requirements:
1. Incorporate a dataset of books ratings. The dataset should maintain two tables. One
table comprises data of user ID, book ID, and book rating. Another table comprises
data of book ID, book title and book genres. [15 marks]
2. Maintain user profile to store user preference of books. [15 marks]
3. Apply user profile to provide book recommendation based on a suitable
recommendation algorithm. [50 marks]
4. Provide a suitable interface for a user to interact with the system, supporting user
profile creation and/or update and receiving book recommendations. [20 marks]
Deliverables:
Develop a system to offer books recommendation according to the system requirements.
You are expected to use the Pandas Python Library for implementation. For the dataset,
you can either build your own one or make use of a public dataset. For user interface,
basic textual user interface with Python is sufficient. If you attempt to gain more marks,
you can implement a web-based system using Flask to support advanced user interaction.
For submission, you should pack all python scripts and required files into a single .zip file
for uploading to DUO. You should also include a readme file in the submission, showing
essential instructions to run your system and providing a 200-word description to highlight
the system features you have provided.