QContest is an online coding platform with the following features:
-
User Features
- Users can sign up to create contests or participate in contests hosted by other registered users.
-
Contest Details
- Each contest must have a specified level of difficulty:
- LOW
- MEDIUM
- HIGH
- Contests will include a set of unique questions (a question cannot be part of more than one contest).
- Each contest must have a specified level of difficulty:
-
Question Details
- Each question has:
- A specific difficulty level: LOW, MEDIUM, or HIGH
- An associated score
- Each question has:
-
Contest Rules
- The contest's level of difficulty determines the set of questions it includes:
- LOW difficulty contests include only LOW difficulty questions.
- MEDIUM difficulty contests include MEDIUM difficulty questions, and so on.
- The final score for a contest is calculated based on:
- The chosen difficulty level
- The number of questions included
- The contest's level of difficulty determines the set of questions it includes:
-
Scoring System
- Users earn points based on the difficulty of the problems they solve during a contest.
- After the contest ends, user scores are updated accordingly.
Let’s visualize the relationship between the classes as given below