Z-ENG: General Purpose Rating System
Disclosure for Hungarian students: Hungarian students should apply in e-mail instead of on the portal.
Making way for using a custom-made recommender or general-purpose machine learning algorithm in following semesters, during this project you have to create a full stack web application using ASP.NET Core and Blazor something akin to Metacritic. The application should be able to catalog and inventory generic “items” and categorize these items along different dimensions. The initial focus of the application should be able to catalog different items related to mass media consumption, like movies, TV shows, videogames and books (and not generic recommendations yet). Feel free to use whichever free/public service you want to fill the database with data regarding these items (one kind of these should be enough, for example IMDb’s public list of movies via its bulk data access or VGDB: The Video Game Database for a list of video games).
The purpose of the rating system is to eventually offer insights and recommendations for users and creators. The problem with existing solutions is that rating media offers little benefit for the user, but using advanced techniques like Item-item collaborative filtering can help users find content they should like based on other users’ preferences.
During this semester, the rating (and not recommender) system should be implemented. This means users can log on to the website, browse and search for different kinds of items, and rate those according to their taste. The recommended way is to use a 5 stars based system, which includes half-stars for ratings (0 stars is not a valid option), and the user can choose to ignore items temporarily, add them to their “list” (like Netflix does) or choose they are not interested in a given item. After the rating system is in place, the application should be able to aggregate different lists, like “Top Movies” or “Top Horror Games for Xbox of 2020”. For the latter, you obviously have to include whichever metadata is available for the items (like their genres, platforms and release year), and be able to parameterize these lists. A different administrative access is not needed at this time, the items can be inserted into the database whichever way you prefer.
Basic knowledge of .NET and C#