Add Prize Money to Challenges
- 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:

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
Assessment
This issue has not been assessed yet.