Open
Description
Skipping some stages since we are rushing
BUSINESS
Actors
- Normal User
- Staff, Admin
Problems
- Staff have difficults to organize contests by Topic, since there is no way to group problems with the same topic together.
- Users who need to improve on certain Topic has no way to look for problems of certain kinds.
- Users and Staffs have no way to tag Problems.
Background
- Codeforces and other OJ are implementing their own taggings systems, we may look into them for references.
Goals
- Each problems need to have a list of tags, keywords so that they are better organized, searchable, easier to be identified.
- Staffs can manually tag, untag problems
- Users can see tags of problems if they are viewable, can search problem by tags
Value
- Problem tags will FURTHER improve problem management
- With Problem Tags, more features will be enable, such as Problem Recommendation, User Strength Analyzer,...
- Better managing
USER EXPERIENCE
Below lists User Stories, User Journeys. From which screen, with which action, users get taken to where and what will be achieved?
Normal User Stories
View tags of problems
- At Problem List view, each problem should have their tags list along their title
Search Problems by Tags
- At Problem List view, there should be a filter or form, for user to search Problems by tags
View tags of Problem in Problem Detail
- At Problem Detail screen, user should be able to view its tags too.
Staff Stories
Can set tags of Problem
- Staff can set or unset tags for their own Problems
Admin Stories
Can see/edit Problem Tags on system
- Can CRUD tags object on system
ARCHITECTURE DESIGN
Convert to Urgent, we'll skip some TDD and UI design here
BREAK TASK | 2023-06-05
API:
DB:
App:
Problems View:
- [EPIC-56] Update API: Problem List now should return Problem Tags bkdnOJ-reborn-backend#36
- [EPIC-56] Update API: Problem Details now should return Problem Tags bkdnOJ-reborn-backend#37
- [EPIC-56] Update API: Allow filtering problems by Problem tags bkdnOJ-reborn-backend#38
- [EPIC-56] Update API: Allow STAFF to update their problems tags bkdnOJ-reborn-backend#45
Problem Tags View:
- [EPIC-56] New API: Get all Problem Tags available on the system bkdnOJ-reborn-backend#40
- [EPIC-56] New API: Allow ADMIN to create new Problem Tag bkdnOJ-reborn-backend#41
- [EPIC-56] New API: Get details of certain tag bkdnOJ-reborn-backend#42
- [EPIC-56] New API: Allow ADMIN to update details of certain tag bkdnOJ-reborn-backend#43
- [EPIC-56] New API: Allow ADMIN to DELETE certain tag bkdnOJ-reborn-backend#44
Frontend Task:
Normal User screens:
- [EPIC-56] Problem List screen: Update to show Problem Tags bkdnOJ-reborn-frontend#31
- [EPIC-56] Problem List screen: Adding Problem Filter, allow filter by Problem Tags bkdnOJ-reborn-frontend#32
- [EPIC-56] Problem Details screen: Showing Problem Tags bkdnOJ-reborn-frontend#33
Staff screens:
Admin screens:
- [EPIC-56] Admin Problem Tags screen: Admin can list all tags, and delete unwanted ones here bkdnOJ-reborn-frontend#35
- [EPIC-56] Admin Problem Tags screen > Create/Edit Tag: Admin can create/edit problem tags bkdnOJ-reborn-frontend#36
CODING | 2023-06-05
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Coding