Lab 8 ‐ PR - bounswe/bounswe2024group8 GitHub Wiki
Checklist
Primary Features
- PF1 - Semantic Search:
We have implemented semantic search feature using Wikidata to enhance browsing results. When a keyword is searched, corresponding child instance is found in Wikidata and other sibling instances from the parent classes are fetched. Then, they are also being searched in the database
- PF2 - Achievements:
Achievements are the main method that is utilized for distinguishing users based on their activity on our app. Users can be awarded in response to several actions, such as receiving likes, liking other posts, commenting, bookmarking etc.
- PF3 - User Management:
We have implemented various user management features to offer a more personalized experience. Users can follow/unfollow other users and categories to create a feed page tailored to their specific interests. Furthermore, they can also upload a custom profile picture to have a more customized, distinguishable account.
- PF4 - Tournaments:
Tournaments are one of the core features that allow users to interact with others in a competitive manner. Every week, fully automated tournaments begin under every category and users can join those via creating their unique designs. Then, they get a ranking according to the received interaction with their posts.
Acceptance Criteria & Examples
PF1:
- Users shall be able to retrieve search post results that contain the searched keyword in their title, tags.
- Users shall be able to retrieve other search post results that contain keywords, which can be fetched using the Wikidata subclass property.
As an example, when "couch" is searched, related seating items should also be returned, such as bench, sofa and chair.
PF2:
- Users shall be able to earn achievements and view them on their profile when required activity is done.
As an example, users should earn "Commenter" achievement and corresponding experience points when they comment on a post.
PF3:
- Users shall be able to update their profile picture
- Users shall be able to follow/unfollow other users
- Users shall be able to follow/unfollow categories
As an example, when users upload ".jpeg" format images to set as their profile picture, it can be viewed by other users in their profile. Furthermore, when a user or a category is followed, its content can be viewed in the feed.
PF4:
- Users shall be able to join tournaments under categories with their own posts.
- Users shall be ranked based on the interaction they received with the entered post.
- Users shall be awarded with the prize when they finish weekly tournaments in top 3.
As an example, when a user joins the tournament and receives the highest interaction, he/she should earn 30 experience points.
Domain-Specific Features
Acceptance Criteria & Examples
API and Documentation
-
AD1 - Swagger Implementation for backend REST API: We have configured the swagger OpenAPI in our backend. Configured endpoints that requires Multimedia upload separately. Added configuration to easily authorize a user after login. (https://github.com/bounswe/bounswe2024group8/issues/377) (https://github.com/bounswe/bounswe2024group8/pull/376)
-
AD2 - Customize and elaborate endpoint examples and descriptions with swagger configurations for documentation: All primary endpoints should have descriptions and correct possible return http statuses. (https://github.com/bounswe/bounswe2024group8/issues/401)
-
AD3 - User Search Endpoint Implementation: Users can search other users by username using the search bar. Should return similar usernames according to given query string. (https://github.com/bounswe/bounswe2024group8/issues/404)
Acceptance Criteria & Examples
AD1:
- Should be available in live environment.
- Should be compatible with Multimedia required endpoints.
- Should be configured to easily authorize.
AD2:
- Primary endpoints should include a description in swagger page.
- Primary endpoints should show correct possible http response statuses with example bodies.
AD3:
- Should return users with username similar to given query string.
- Should match with case insensitive approach.