Cloud-CV / Cloud-CV/EvalAI

Add Prize Money to Challenges

Open
#3,893 11 comments 0 reactions 1 assignee Claimed by @b9aurav View on GitHub
backend frontend good first issue GSoC-2023 hard-to-fix javascript needs-more-work new-feature python
Dominant language
Python
Stars
2k
Forks
984
Avg merge
2h 54m
Merged PRs (30d)
14

Description

### Description

Currently it is difficult to find know which challenges have prizes, and if yes, what are the first/second/thrid prizes, etc. This feature will help us understand which challenges on EvalAI have prizes. The idea is to add a new prize money section here:

Screenshot 2023-03-21 at 2 09 51 AM

There are several components to be designed here:
1. The idea is to create a new model `ChallengePrizes` with the following details:
```
- challenge_pk
- amount
- rank
```
2. The challenge prizes will be a new section in the challenge configuration. Example:
```yaml
prizes:
- rank: 1
amount: "1000USD"
- rank: 2
amount: "500USD"
```
3. This will also require you to add changes to the [challenge validation script](https://github.com/Cloud-CV/EvalAI/blob/19130726790e4cb79b0d2e8603dd6817b16dba69/apps/challenges/challenge_config_utils.py#L223) to ensure people put appropriate values for prizes.
4. Add a new attribute `has_prizes` in the Challenge model.
5. You will also need to modify the `create_or_update_github_challenge` function to update the challenge and the entries.
7. Display the prizes for the challenge if the challenge has prizes. This will require you to modify the frontend.

### Pre-requisites/Learnings
This issue essentially requires background on a few things:
- An understanding of the [challenge configuration](https://evalai.readthedocs.io/en/latest/configuration.html).
- A deep understanding of [EvalAI challenges](https://evalai.readthedocs.io/en/latest/host_challenge.html).
- An understanding of [our frontend](https://github.com/Cloud-CV/EvalAI/tree/master/frontend).
- How the [challenge validation](https://github.com/Cloud-CV/EvalAI/blob/19130726790e4cb79b0d2e8603dd6817b16dba69/apps/challenges/challenge_config_utils.py#L223) works.
- How [GitHub Challenge Creation](https://github.com/Cloud-CV/EvalAI/blob/fbfc7f04cf8570704fd41808c0c5f5cfed518505/apps/challenges/views.py#L3298) works.

### How to Approach
- You can start by setting up EvalAI locally. Set up the dev version locally (preferred) using the steps [here](https://github.com/Cloud-CV/EvalAI/tree/master#installation-instructions).
- Add the new models, the new attribute to the backend.
- Update the challenge configuration, the validation and the create/update method to handle this.
- Play around with the the frontend, and create a PR. Please add screenshots of the changes.
- Reach out to us regarding any issues that you face or if you need any help with understanding any of the above.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.