Skip to content

[EPIC] Adding Tags to Problems #56

Open
@nvatuan

Description

@nvatuan

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

  • TDD: Link Here
  • DB
    image

Convert to Urgent, we'll skip some TDD and UI design here

BREAK TASK | 2023-06-05

API:

DB:

App:

Problems View:

Problem Tags View:

Frontend Task:

Normal User screens:

Staff screens:

Admin screens:

CODING | 2023-06-05

Metadata

Metadata

Assignees

Labels

epicThis issue is EPIC-scale

Type

No type

Projects

Status

Coding

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions