Repository: Cloud-CV/EvalAI
Issue: Display error bars on leaderboard
Root cause: Unimplemented Feature Gap

## Current Scenario

We display only the accuracies on the leaderboard.

## Expected Scenario

Display error bar values along with the accuracies on the leaderboard.

## Deliverables 

### Model file changes
- [ ] Create a new JSON field in LeaderboardDatas table with `null=True` and `blank=True`.

### API Changes
- [ ] Add the new field as a key while filtering leaderboard data in leaderboard API.
- [ ] Create a list of the errors for all the metrics only if the error is not blank.

### Submission worker changes

The format of submission data received from the worker will be modified to -
```
        A submission will be marked successful only if it is of the format
            {
               "result":[
                  {
                     "split_codename_1":{
                        "key1":30,
                        "key2":50,
                     }
                  },
                  {
                     "split_codename_2":{
                        "key1":90,
                        "key2":10,
                     }
                  },
                  {
                     "split_codename_3":{
                        "key1":100,
                        "key2":45,
                     }
                  }
               ],
               "submission_metadata": {'foo': 'bar'},
               "submission_result": ['foo', 'bar'],
			   "error": [
                  {
                     "split_codename_1":{
                        "error_key1":30,
                        "error_key2":50,
                     }
                  },
                  {
                     "split_codename_2":{
                        "error_key1":90,
                        "error_key2":10,
                     }
                  },
                  {
                     "split_codename_3":{
                        "error_key1":100,
                        "error_key2":45,
                     }
                  }
				]
            }
```
- [ ] Create the error data in the Leaderboard Data table at the time of creating the leaderboard data object.


### Frontend Changes -
- [ ] Catch the error list in the controller
- [ ] Iterate and display the error list near to each of the metric
as shown below -
![Screenshot 2019-03-12 at 1 37 26 AM](https://user-images.githubusercontent.com/12206047/54177078-69de3000-4467-11e9-97a4-7ff717df8b9e.png)

Please feel free to discuss if you've any doubts.


Can I take this?

Sure, but please make sure that this is a `high-priority` task which needs to be completed soon.

@Ayukha Since you're doing #2160 currently as well, I'll do this one? @RishabhJain2018

Can I work on this issue @RishabhJain2018 as there has been not much progress in few days?

I'm not sure if @Ayukha is still working on this? @Ayukha Can you please let us know the progress on this or are you blocked by anything?

I am working on it and will open a PR for it by tonight. @RishabhJain2018 @kurianbenoy 

Thanks @Ayukha for update.

Hey @Ayukha, any updates on this? As the label suggests, this is high priority. So if you currently do not have the cycles to push this out (which is perfectly fine), it would be good to let others take this on.

I agree with @abhshkdz. @vkartik97 Do you have some time to implement this feature. We need it.

@RishabhJain2018  
Sure!

Please try to implement it asap and feel free to ping me if you get stuck somewhere.