Cloud-CV / GSoC-Ideas

CloudCV GSoC Ideas
https://gsoc.cloudcv.org
119 stars 38 forks source link

Implementing python package and REST APIs for EvalAI #15

Closed RishabhJain2018 closed 5 years ago

RishabhJain2018 commented 6 years ago

Project Title: Implementing python package and new features for EvalAI

Description: a) Currently, if someone wants to make a submission to a challenge on EvalAI then he has to login to EvalAI and upload a file. We want to make this process even easier for researchers who really like their terminal screen. The first main goal of this project is to create a python package for EvalAI which lets the participants to import evalai as a python package and then make submissions through their python script instead of logging in to the website and then doing it.

b) EvalAI uses Django REST Framework (DRF) at the backend. We want to add a lot of new features this summer where we want the student to implement RESTful web services using DRF. We expect the student to write simple and clean REST APIs, unit tests and an exhaustive documentation for each feature that he is building. Please see the deliverables section to get more details about the project.

Deliverables:

  1. EvalAI Python Package:

This package should include the following functionalities (but students are strongly encouraged to come up with their ideas/features and should definitely mention in their proposal):

  1. Implementing RESTful web services
  1. Implement webhooks for retrieving challenge submissions and results:
    • The aim of this feature to retrieve the results of a challenge from some forked version of EvalAI to the main EvalAI server. This will help the challenge hosts who are running forked EvalAI on their private servers to show their results on the main Evaluation server (i.e evalai.cloudcv.org).
    • Note that there are a lot things to be taken care of like:
      • How will make sure that the data is authentic?
      • How will you make sure that the results are retrieved in real time?
    • Also have a webhook for bots (slack/ messenger / github etc). Triggered when new submission, leaderboard changes, rank increases or decreases etc.

The above mentioned features should be implemented by the end of the GSoC period. Moreover, we expect students to also have implemented improvements that they have proposed.

Mentors: Rishabh Jain @rishabhjain2018, Shiv Baran Singh @spyshiv

Co-Mentor(s): Deshraj Yadav @deshraj

Skills: AngularJS, Python, Django, Django REST Framework, D3.JS, AWS

Skill Level: Difficult/Ambitious

Getting started:

We expect the students to solve at least one (the more the better) from the following list of issues which are super relevant to the project. Here is the list of getting started issues solve (some of these would already be open issues on Github):

Recommended: Try to fix some issues (note that there are some issues labeled with GSOC).

Important Links:

guyandtheworld commented 6 years ago

@deshraj @RishabhJain2018 This sounds exciting! Wouldn't challenge creation using UI also be a good project for Summer of Code? I also would love to work on the EvalAI Python Package. :smile:

deshraj commented 6 years ago

Hi @isht3, glad to hear that the project sounds exciting. Thanks for your interest in this project. :)

Wouldn't challenge creation using UI also be a good project for Summer of Code?

We already have a Github Pull Request for this feature but this is in review.

meshubhama01 commented 6 years ago

sounds exciting... I have few suggestions though. 1.for participants- they can make their groups too for discussion 2.for host - 1.no. of the wrong submission should be recorded for each participant so that host can send better-personalized email to participants. 2.can we afford to do more analytics(data) in order to have a more personalized feed for each participant.. fo e.g. the type of error they generally do or the type of problem they always complete or the syntax error they tend to repeat....etc..?

p.s- sorry if above sound silly as this is my first time. any guidance or help is welcome

deshraj commented 6 years ago

Thanks @meshubhama01 for the suggestions. I did really like the following two points:

2.for host - 1.no. of the wrong submission should be recorded for each participant so that host can send better-personalized email to participants. 2.can we afford to do more analytics(data) in order to have a more personalized feed for each participant.. fo e.g. the type of error they generally do or the type of problem they always complete or the syntax error they tend to repeat....etc..?

Since the project is still evolving, so there are plenty of things that we can add. If you are planning to apply for this project idea, we would love to have see list of some new features in the GSoC Proposal.

Last, the suggestions are not at all silly and I hope you enjoy working on this project. Let us know if you have questions/doubts.

meshubhama01 commented 6 years ago

as this is my first time and I don't have friends in this area I am quite confused, how to apply for this project. any help?

deshraj commented 6 years ago

I would recommend you to read the GSoC Manual here https://google.github.io/gsocguides/student/. This will give you a better idea how to start.

gcmurillo commented 6 years ago

I'm really interested in this project, in the API Rest especially, in the the coming days I will send my proposal for GSoC. I hope not so late :(

RishabhJain2018 commented 6 years ago

Hi @gcmurillo , Thanks for your interest in this project. :) No, you are not at all late for submitting the proposal. Looking forward to see your proposal soon!

saisusrith commented 6 years ago

Hi @deshraj, I lived the key idea of the project and the way it saves a lot of time. I would love to work on the project as a part of summer of code.

advait-net commented 6 years ago

hi @deshraj, i like the idea as probably this will make a common platform. I would love to work on this project as a part of summer of code. I hope i can submit the proposal by 21:30 today.

RishabhJain2018 commented 5 years ago

Closing this issue since GSOC 2018 is over.