zhiminy/EvalEng huggingface dataset:
Repository: Cloud-CV/EvalAI
Issue: Auth: Need email verification mail resend feature.
Root cause: Unimplemented Feature Gap

Why??
Suppose user loses verification email without verifying the link. Then neither user will verify his account nor create a new account with same email address. 

# Requirements
## Backend 
- [ ] API endpoint to resend verification email (User token based)
@deshraj : Please take care of it.

## Frontend 
I think there should be button/Link ("Resend Verification Email" ) inside rounded (dark red) portion of following screenshot. 
![screenshot from 2017-02-05 11 39 21](https://cloud.githubusercontent.com/assets/7015220/22624135/31d25094-eb98-11e6-882d-26bf2c090d00.png)


@aka-jain : Need your thoughts about it.

can i try this ?


@gauthamzz are you on #607 ?

I'd like to work on this. 

Sure, @utkbansal. You can work on this issue. :) 

@utkbansal I am assuming you are still working on this. Please let us know if you are stuck somewhere. We would be happy to unblock you. :) 

@deshraj can i work on this?

Could i work on this ?I am a student intrested in GSOC. or should i make a pr before?@deshraj

@spyshiv is this issue unassigned? If so , can i work on this one?

@Curious72 since @jiayibupt showed interest first, so I would like to assign this issue to him. Please look for other available issues. 

@deshraj  Sure ! 

@jiayibupt : Are you working on this? Please let me know so that i can assign this to you.

Can I try for this issue, if it is free now ?

@RishabhJain2018 have a look at this issue. Let me know whenever you get started working on it.

@aka-jain yeah sure. Currently, I am working on the feature of creating challenge using zip file. I will put it in my to do list.

@RishabhJain2018 Can I take over?

@isht3 Yes sure! Assigning this to you!

Hi, I looked into this, and we can use two methods. 

- Setting `ACCOUNT_EMAIL_VERIFICATION = 'mandatory'` will send a Email every time they log in and if the user is not verified, where we can set a cool-down time for sending email and can be done in two lines of code. The downside to this is that, the user won't have a control over when the email will come the second time.

-  The second is the above mentioned one, where we declare a new resend endpoint, and write a custom view and use `allauth` API's to resend the E-mail, where the user has control over when the email is send. 

I like the second one, @deshraj @RishabhJain2018 your inputs on this much appreciated. :)

@isht3 thanks for the suggesting the two methods. The second method definitely sounds like a good way to proceed with. Please let me know if you are interested in working on this. 

Yes, the second method is a good way. :+1: 

@deshraj I already started on the issue! :smile: 

Hi @Obtin I worked on this issue and my PR is currently under review but there is an issue with the request throttling, if you're interested you could work on that. :smile:
Repository: Cloud-CV/EvalAI
Issue: Create Team model in `web` django app
GitHub labels: enhancement

GSOC-2019

easy_to_fix

backend

The `Team` model will contain the following fields:

- name 
- email
- headshot (ImageField)
- visible (BooleanField)
- github_url (URL)
- linkedIn_url (URL)
- personal_website (URL)
- type (CharField with choices (core_team, contributor))

Ping me for more details. 

@deshraj on it

@yadavankit I am assigning this issue to you. But, please ask beforehand if you want to work on any issue since it could lead to duplicate effort. 

@deshraj yeah sure 😊 . Can you help me with the defaults for `Team` member variables `visible` and `type` specially?

Add default to `visible` field and set it as `True`. Rest all the fields are required by default. No need to put default for those fields.

#638 please review :)

Fixed in #638
Repository: Cloud-CV/EvalAI
Issue: Host: Status field of ChallengeHost model is initialized by Accepted 
Root cause: Algorithmic Error

**CURRENT STATE -**

The status field is initialized as ACCEPTED by the `invite_host_to_team` view in the host app.

**ISSUE -**

This should be PENDING by default and the invited user should have the option to accept or deny the invitation.

@daas-ankur-shukla I am glad that you have been playing well with the codebase. 

I will share the details about this issue soon. It's not on the priority list as of now and hence you can focus on other issues. 

:+1: 

@deshraj  can I do this?

@Ram81 It is not the part of Version 1 of project. Please pick any other issue for now. 

@deshraj I think #1347 solves this.

Thanks @isht3. Closing this since it is a duplicate issue as #1347
Repository: Cloud-CV/EvalAI
Issue: Modify all the Filefields/Imagefields in the serializers to be hyperlinked
Root cause: Unimplemented Feature Gap

Currently, when the serializers that return the imagefield/filefield links, then it is something like `/media/blah/blah.png` but ideally it should be the full URL with something like this  `http://localhost:8000/media/blah/blah.png`. 

We want to modify the serializers returning the Image URLs or File URLs. 

Please see http://stackoverflow.com/questions/23918619/django-rest-framework-and-filefield-absolute-url for more details. 

Okay. Am taking it up then @deshraj 
Just to make it sure, all serializers returning ImageField or FileField are to be altered?

@yadavankit Sure, you can go ahead. Yep, all the serializers need to be altered which includes the imagefield/filefield. Also, please make sure that things don't break on the client side after making changes. 

@deshraj while working on this issue, I was testing the `POST` request **creating a submission** and that gave me `No exception message supplied` due to `ConnectionClosed` at the endpoint and hence, no response. So, for now, should I leave it as it is ?

@yadavankit the API is working properly. Its just that you have to start rabbitmq worker for that. I haven't added the instructions in README. I will update it soon. Please leave it as it is for now. 

@deshraj yeah, I got to know it should be running on port 5672 and I haven't set it yet.

@deshraj should we mention this as an issue to Update README for starting rabbitmq worker at 5672?

Sure. I can do that and will assign it to myself. 

Fixed in #662
Repository: Cloud-CV/EvalAI
Issue: Integrate the Update Profile API Endpoint with Client Side

The `update profile` option in the left menu doesn't work. I think there is no API for fetching and updating the profile data.

@TroJan @deshraj What are your views about it?

@RishabhJain2018 I think we already have the API to get and update the user profile at this endpoint ` /api/auth/user/` with `GET` and `PUT` request respectively. We just need to integrate the endpoint to update the user profile with the client side. 

@deshraj Can I work on this?

@aka-jain can you please add a list of TODOs at the client side for this Issue? 

@aka-jain Please add a To-Do's, so that I can add this feature.

TODOs:

- [ ] Create a form in the update profile view

- [ ] Use the update user API in the backend and integrate it with the client side

- [ ] Show notification on successful profile updation

- [ ] Add the Update Profile Option in the sidebar
Repository: Cloud-CV/EvalAI
Issue: Enforce unique random file name for files being uploaded
GitHub labels: bug

GSOC-2019

medium-difficulty

backend

critical

Currently, the files being uploaded are having simple name and we don't want them to serve to anyone who knows the pattern. Hence, we should store the files with name as uuid that will to secure it to some extent. 

For reference, see this http://stackoverflow.com/questions/2673647/enforce-unique-upload-file-names-using-django?answertab=active#tab-top


@deshraj Can I work on this?

@deshraj Can I also change the file name for [these](https://github.com/Cloud-CV/EvalAI/blob/master/apps/jobs/models.py#L69) models also?

Yes @RishabhJain2018, that is also a part of the issue. 

@RishabhJain2018 Any updates on this? We need this feature ASAP since we are planning to launch the beta really soon. 

@deshraj I had discussed this with @TroJan & I will fix this asap.

Sounds good. 

Reopening this issues since a fix has to be added in this as discussed with @RishabhJain2018 . 


@deshraj yeah sure. I will fix this asap.


@deshraj @RishabhJain2018 : can you please explain here what fix ?

@TroJan Please refer [this](https://github.com/Cloud-CV/EvalAI/commit/d01d29fa54367e0b8fc55e141672e23dc1539e56#commitcomment-20969490) link.

@RishabhJain2018 : Can we close this if everything is complete?

@TroJan Yeah, this is complete . Please merge the PR #721 .
Repository: Cloud-CV/EvalAI
Issue: Add setInterval to API calls to get realtime data
Root cause: Unimplemented Feature Gap

Currently on leaderboard and my-submissions view, the user has to refresh the page again and again to check the progress of his submission. We want to use $setInterval (https://docs.angularjs.org/api/ng/service/$interval) so that after a delay of lets say `5 seconds`, it makes an API call to get the data and update the view accordingly. 

Changes to be done in the following controllers:
- My Submission View
- Leaderboard View


anyone working on this ?

yes. I am working on this.

@spyshiv let me handle this, you continue work on notification System :)

sure... @aka-jain 

Fixed.
Repository: Cloud-CV/EvalAI
Issue: Add a button of 'Create Participant Team' on Challenge Participation View
GitHub labels: enhancement

GSOC-2019

easy_to_fix

frontend

On Challenge Participate View, 

**Use-case 1**: when no participant team exists for a particular user, then we should show him a button `Create Participate Team` instead of `Participate` which will redirect the user to Participant Team view.  

**Use-case 2**: When some participant team exists for a user, then show him both the buttons `Create Participate Team` and `Participate`. 

Let me know if you have doubts reagarding this issue. 

Just for reference, see the image attached below. 

<img width="1440" alt="screen shot 2017-02-08 at 7 50 46 pm" src="https://cloud.githubusercontent.com/assets/2945708/22764322/f9c34724-ee37-11e6-98d2-f092d3435f71.png">


@deshraj can you assign this to me?

@deshraj Isn't it participate will also create a team? I mean do we have different API's for this feature?

@aka-jain no, the Participate button won't create a team. 
So, we have two options:
1. Lets add a button named `Create Participant Team` next to it and then redirect it to the `My Participant Team` view where the user can create a Team. 
2. Add the create team view here where the user can create a team in this view only. 

Let me know which approach sounds better according to UX point of view? 

@Ram81 Lets wait for a while till we finalize the UX for this. 

@deshraj  Sure

is the UX ready @deshraj ?

@Ram81 Can you add a view similar to the 'My Participant Team View' here so that user can select or create a team on the challenge view only. Also, it would be great if you can integrate with the API of creation. This should be simple since it has already been implemented in the 'My Participant Team View'. Do ask @aka-jain or me for more details. 

@deshraj  sure

Fixed in #688
Repository: Cloud-CV/EvalAI
Issue: Remove gulp lint warnings and errors. 


Steps to follow:
Run `gulp dev:runserver` or `gulp lint` 
Errors will come up in Blue color, need to solve those errors as soon as possible. 
p.s: errors are too simple like add missing semicolon, IIFE wrong definition etc.

@aka-jain @spyshiv Can I work on this?

Sure @RishabhJain2018. 

@RishabhJain2018 Let us know as soon as you finished recovering all the errors, we have to make a restrict entry for these errors in near future.

@aka-jain I will fix these asap.

@RishabhJain2018 Are you working on any other issue?

Actually I was working on issue that is dependent on notification system. So, Currently I am working on this one.

Okay.

Fixed with #665
Repository: Cloud-CV/EvalAI
Issue: New Home Page for EvalAI
GitHub labels: enhancement

GSOC-2019

medium-difficulty

frontend

New Design.
![bigger5](https://cloud.githubusercontent.com/assets/11537940/22772732/67d8b816-eec4-11e6-9274-414031b54ff8.png)


Working on it.

looks nice :+1: 

Fixed in #691
Repository: Cloud-CV/EvalAI
Issue: Create a new app named as `base`
GitHub labels: enhancement

GSOC-2019

easy_to_fix

This app will contain all the models which will be used accross the project. Also it will be the placeholder for many mixins.

This app will not have an entry in urls as this will be the placeholder for many functions, mixins and views(using as a package)

Fixed via #89
Repository: Cloud-CV/EvalAI
Issue: Add pagination to My Submission View
Root cause: Unimplemented Feature Gap

Currently there is no Pagination for the my-submissions view. Please see the screenshot attached below. 
![screencapture-localhost-8888-web-challenges-challenge-page-1-my-submission-1486681002023](https://cloud.githubusercontent.com/assets/2945708/22806669/3c403dbe-eef1-11e6-9374-261569df2cec.png)


@deshraj can I try ?

@anweshknayak assigning this to you.

@anweshknayak are you on this?

@aka-jain. Yes :)

@aka-jain how to get to this view ?

as per route config 
  url: "/submission",
  templateUrl: baseUrl + "/web/challenge/submission.html",

Anyway I found it :)

@anweshknayak Create a challenge from django admin for present challenge. Then go to details of that challenge.

![as](https://cloud.githubusercontent.com/assets/8139783/22853374/ce9b2a54-f07a-11e6-95e3-c46429110d4f.png)

@aka-jain @deshraj is this okay ? 

Na... where is current page and total page count?
Also, align pagination set to left (not center)
Repository: Cloud-CV/EvalAI
Issue: Add News Feed in Dashboard
GitHub labels: enhancement

This news feed will contain all the recent activities and questions regarding all challenges.
This helps user to get more information regarding various challenges.
@deshraj @aka-jain @spyshiv thoughts?

Hmmm... nice idea @jainarunarunjain.
@deshraj we can do this for v2, what say?

This is already part of v2 plan. We were thinking of having a permanent news feed in a column on the right hand side. Very similar to how facebook has it I guess. 

Potential items to show on the newsfeed:
- If somebody sets state-of-the-art on a challenge the user has participated in
- A simple timer if the challenge is about to end
- If somebody other than you in your team submitted an entry to a challenge
- etc
We should may be use this issue to brainstorm and design some mocks for this! 

@jainarunarunjain : Thanks for opening this issue! 

Okay

I want to work on it

i would like to work on it...

Closing this since this feature is not in priority for this quarter.
Repository: Cloud-CV/EvalAI
Issue: Solve blinking of data in my submission view.
Root cause: Algorithmic Error

Problem is mainly due to digest cycle of Angular. Need to apply and watch for the changes in scope of the challenge controller.

@aka-jain can I try ?

Have you done with the Pagination of submission view?

@aka-jain Yes check the PR.

@aka-jain any hint on how to solve the problem ? I understand the need of apply and watch. But to which scope variables to attach to ? Can you give me some pointers to go ahead with.


@anweshknayak  I have to figure it out. So please do it by yourself. Let see if you can find something.

Assigning this to myself.

@aka-jain did we find a solution for this problem? 

@deshraj @aka-jain Does this issue still exists in `My Submissions` view ?

Yeah, it still exists.
Repository: Cloud-CV/EvalAI
Issue: Polling not working as expected in My-Submissions View
Root cause: Algorithmic Error

Cases that are not covered in Polling:

## Problem 1: 
Problem occurs when the data is updated and the user is on some page except the 1st page of Pagination. 

## How to replicate?
1. Open My-submissions in one tab and goto page 2 or 3 using pagination
2. Open submission view in another tab
3. Create a submission
4. Go back to the previous tab of my-submissions
5. When you click on "Page is outdated. Click here to refresh", then you are still on the 3rd page with the updated data but you should be redirected to the first page of pagination with the updated data.

## Problem 2:
When the submission status changes, then the data is not updated on the client side since we are checking the length of the response and not the content of the response. Please see line https://github.com/Cloud-CV/EvalAI/blob/master/frontend/src/js/controllers/challengeCtrl.js#L614


Is. Anyone doing this?

No. @gauthamzz if you are interested in solving this one, I can assign it to you. 

Yeah that would be great

Sure. Please be quick in solving this issue since this is one the critical issue and we want it to get done ASAP. :) 

Let us know if you need any help. 

@gauthamzz any updates on this? 

can i get some hints on the first part 

@gauthamzz, please don't worry about this issue anymore. I have fixed this issue in #708 since this was super urgent. :) You can pick some other issue. 

 close this ?


Sure, will do this after merging the PR.
Repository: Cloud-CV/EvalAI
Issue: Create API Endpoint for Showing the Team Member Details
GitHub labels: enhancement

GSOC-2019

easy_to_fix

backend

Objective:
- Create an API endpoint with URL `/api/web/teams` which shows all team members on `GET` request.

@deshraj Are we going to show team creation form somewhere?

Oh my bad. Only `GET` request is allowed on this API. Updating the description. :) 

@deshraj you can assign this to me :)

![screen shot 2017-02-17 at 12 00 11 am](https://cloud.githubusercontent.com/assets/8945824/23034920/6fa132b4-f4a3-11e6-966c-d30198f23cb8.png)
@aka-jain does this solve the issue?

@yadavankit it would be great if you can integrate this with the `our-team` view. Let me know if you  cannot do this then we can open another issue for that. :-) 

@deshraj ok will do 👍 

Thanks :) 

Also @yadavankit member title is for short description which will use text editor in admin. 
@deshraj I think this response will be better, what say?
```
{
  "core": [
    {
      "name": "Akash",
      "desc": "I Love <i class='fa fa-coffee'></i>" // text editor field,
      ...
    }
  ],
  "contributors": [
    {
      "name": "Akash",
      "desc": "I Love <i class='fa fa-coffee'></i>" // text editor field,
      ...
    }
  ]
}
```

Yes, you are correct. @yadavankit can you please take care of this situation? 

@aka-jain can we take care of this grouping of contributors and the core team at the client side using the `ng-if`? 

@deshraj yeah...I was about to ask for it too

Ok cool then. @yadavankit lets do it this way. :) 


@deshraj No need to use ng-if here, as we can store data in 2 different object, one is for core and other for contributors. 

Yeah @aka-jain, I agree with this approach. But I was more concerned about the fact that if the # of Types increases in future, then we should take care of that already. 

Agree, let's go with @yadavankit design.

Fixed in #682
Repository: Cloud-CV/EvalAI
Issue: Create a ModelAdmin class in base app to exclude created and modified fields
GitHub labels: enhancement

GSOC-2019

medium-difficulty

The admin class should live in base apps. It will be derived from ModelAdmin class and will use [exclude](https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#django.contrib.admin.ModelAdmin.exclude) to exclude `created` and `modified` fields.

This is so that anyone adding an object from the admin panel should not be shown in these fields as these are handled internally by Django before saving an object.

Name of the class should be `TimeStampedAdmin` and it should live in `base/admin.py`

@deshraj @TroJan Can I work on this?

Fixed in #132
Repository: Cloud-CV/EvalAI
Issue: Frontend: Remove comparison operator in case of 'true' and 'false'.
GitHub labels: enhancement

easy_to_fix

frontend

- [ ] Case1: if somewhere code is written like this
`if(variable_name === 'true') { //code }` or `if(variable_name == 'true') { //code }`
then change this to 
`if(variable_name){
//code
}`

- [ ] Case2: if somewhere code is written like this
`if(variable_name === 'false') {
       //code
}`
then change this to 
`if(!variable_name){
//code
}`

PS: It's not only for `if` but also same for `else`, `else if`, `whether` etc.




@spyshiv Can I work on this?

@jainarunarunjain I don't think anyone has picked up this issue. So, you can work on it. :-) 

Fixed with #686
Repository: Cloud-CV/EvalAI
Issue: Pagination showing count of page as 0 initially even if a Team Exists in Participate View
Root cause: Algorithmic Error

![pagination](https://cloud.githubusercontent.com/assets/16323427/23094967/4d02bada-f628-11e6-82ff-0b7b21e6c1c3.png)


@Ram81 issue has already opened, plesae refer #462 .
BTW thanks for the info.
Repository: Cloud-CV/EvalAI
Issue: Setup ModelAdmin class for each model in Team app
GitHub labels: enhancement

GSOC-2019

easy_to_fix

This class should be derived from TimeStampedAdmin of base app. 

Notable attributes should be
* list_display
* search_fields
* list_filter

Note that this issue depends on [#68](https://github.com/Cloud-CV/EvalAI/issues/68) which involves the creation of `TimeStampedAdmin` class.

@deshraj @TroJan Can I work on this??

Fixed in #170
Repository: Cloud-CV/EvalAI
Issue: Frontend: Merge 'gulp lint' task with 'gulp watch'.
GitHub labels: GSOC-2019

medium-difficulty

frontend

@spyshiv assigning it to you.

Cool..

@spyshiv you working on this ? can I try ? 

Yes. I am working on this. Will update it soon.
Thank you for reminding me.

@RishabhJain2018 : Do you want to work on this issue? Let me know if you are interested.

@spyshiv yeah sure.

I am assuming that you are familiar with the tasks `lint` and `watch`. So what you have to do is whenever any js file is changed you have to make run `gulp lint`.
Let me know if you stuck somewhere. 

@RishabhJain2018 Just going through your PR, yes the code is right but we have to do some additional changes too. Like server should not run until you solve all the errors of lint. So integrate lint with watch such that if we get any error than server should stop. Getting?
@spyshiv want to add something else?

@aka-jain Yeah I got this point. :+1:  @spyshiv Please tell anything else that should be added ? I will update the PR accordingly.


@aka-jain @spyshiv Please reopen this issue as some task is still left on this issue . Please refer to above conversation.

I didn't close this issue intentionally it is done automatically. :smile: 
Reopening again.
@aka-jain @RishabhJain2018 : For the reference please have a look at comment in `gulpfile.js` line 233. 
PS: Since it should not be a blocker so once the linting errors and warnings are fixed (issue #805) then start doing work on this.


@aka-jain @spyshiv  By this ` So integrate lint with watch such that if we get any error than server should stop`, you want to say that `gulp watch task` should break when any lint error is present or server should not start until all lint errors are solved ?? 

@RishabhJain2018 
Keep 'gulp watch' always active.
Order of running tasks
1. Watch 2. Lint 3. Connect
- `Watch` should always be running
- If `Lint` gives an error then break the `connect` (should stop the server)
- If `Lint` is fine then run `connect`
Getting??
Let me know if you have any doubt.


@spyshiv Okay sure.

@RishabhJain2018 : `lint` errors are removed. Now you can start work on this issue with additional feature as discussed above. 

@spyshiv okay sure.