GSoC 2019 with CloudCV

Sanjeev Singh
6 min readAug 25, 2019

--

I was waiting for 6th May 2019, when the result of students selected for google summer of code were announced. Felt exciting & overwhelmed to see my name on the much awaited list. During the community bonding phase, got introduced to all the mentors, students and other Cloud-CV members and received the timeline for the first phase.

Having started working on the timeline and completed almost all the deliverable for the first phase of project EvalAI, I also completed some of the major features on EvalAI-ngx project during the first phase. Though I’d already talked at length about my first phase in a separate blog.

Time passed & the second phase started, while this time I worked on enhancing and adding new features in both the projects. As the back-end was same for both the projects, hence for all the feature I added the back-end in EvalAI and it’s front-end in EvalAI-ngx. Also gave a presentation covering all the work done up-to second phase which was really an enthralling experience. In the last phase, I worked on the feature challenge creation using templates and some other new features.

A hearty thanks to my mentors Rishabh Jain, prem sagar gali, Mayank Lunayach, Shekhar Prasad Rajak and Shivani Prakash for their guidance and constant support throughout the program, it was a privilege to work with them.

Project Goals

My major goal was to improve the existing UI and build new features in EvalAI to improve the experience of both challenge organisers and participants. Beyond this, the project intends to improve the discover-ability of all the features that are supported on EvalAI.

The goal of the project is to ease the pipeline for challenge creation, enhancing the user experience of the platform, adding plots for displaying the progress of state-of-the-art algorithms, & for displaying the progress of participant team in a challenge over the years and several other critical features.

Contributions on EvalAI

Major Contributions:

  1. PR #2288: Configure Karma, Travis and docker to run unit tests along with written tests for analytics, auth and challenge create controller.
  2. PR #2351: Added feature to close participation in the challenge even when it is ongoing.
  3. PR #2358: Added feature to ban the participants from participating in a challenge.
  4. PR #2148: Added feature to filter submissions by participant team name in my submissions.
  5. PR #2377: Added feature to filter submissions by participant team name in view all submission.
  6. PR #2340: Added a feature to re-run a submission by challenge host using UI.
  7. PR #2393: Added models and API for subscribing to EvalAI.
  8. PR #2398: Displayed leader-board accuracy using variable decimal fields.
  9. PR #2407: Added feature for slack notification on challenge creation or contact message.
  10. PR #2322: Added unit tests for dashboard controller.
  11. PR #2323: Added unit tests for change password and our team controller.
  12. PR #2321: Added unit tests for challenge list controller.
  13. PR #2320: Added unit tests for contact and submission files controller.
  14. PR #2315: Added unit tests for update profile and permission controller.
  15. PR #2327: Added unit tests for featured challenge and hosted challenge controller.
  16. PR #2328: Added unit tests for challenge invite and main controller.
  17. PR #2317: Added unit tests for profile and web controller.
  18. PR #2318: Added unit tests for team controller.
  19. PR #2319: Added unit tests for challenge host team controller.
  20. PR #2316: Added unit tests for challenge controller.
  21. PR #2335: Added Codecov for coverage reports on front-end unit tests.
  22. PR #2421: Added unit tests in analytics controller and fix code coverage.

Still in review:

  1. PR #2432: Added feature to create challenge using UI.
  2. PR #2409: Added feature to make submissions using URL.
  3. PR #2395: Added feature to update the leader-board data when re-running the submission.
  4. PR #2428: Added feature to export field affiliation in the CSV for each of the participant under view all submissions.
  5. PR #2425: Added news page.
  6. PR #2420: Fixed challenge configuration gets created even when challenge creation using zip fails.
  7. PR #2416: Added feature to require participants to complete their profile before participating.
  8. PR #2414: Added google scholar, linked-in, git-hub URL fields in the profile section.
  9. PR #2411: Added new partner organisations logos on homepage.
  10. PR #2348: Added a feature so that participants can’t make their submissions private if challenge host desires.
  11. PR #2346: Added feature to toggle leader-board visibility by challenge host.
  12. PR #2344: Added a feature to change the status of a submission by challenge host.
  13. PR #2339: Added slug field for each challenge to have different URL for each challenge.
  14. PR #2338: Automate the process of sending Emails to challenge hosts.
  15. PR #2334: Create a unique link for each of the entry on the leader-board.

Minor Contributions:

  1. PR #2397: Added feature to change the default leader-board sorting order.
  2. PR #2332: Fixed bug in editing phase details.
  3. PR #2337: Fixed simultaneous highlight of Host Teams and Challenge Create in sidebar.
  4. PR #2345: Fixed loader on submission page and add support for .tsv and .gz file in select file dialog.
  5. PR #2355: Added configuration file to close stale issues/pull-requests.
  6. PR #2356: Added commit message convention in contribution guidelines.
  7. PR #2365: Removed issues to be closed by stale bot automatically.
  8. PR #2374: Added banned email ids field in the challenge serializers.
  9. PR #2379: Removed participate tab when participant has already participated in the challenge.
  10. PR #2382: Fixed URL of the images in the docs.
  11. PR #2386: Fixed stale configuration to not close the issues.
  12. PR #2389: Fixed field error of invalid lookup icontains in challenge admin.
  13. PR #2388: Added flagged field in Submission Serializer to be used by API.
  14. PR #2391: Added flagged field in Challenge Submission Management Serializer.
  15. PR #2394: Added blue colour for the anchor tag present in the text of challenge page.
  16. PR #2390: Integrated all-contributors for recognising contributors.
  17. PR #2399: Type fixed in API and added notification for error in leader-board.
  18. PR #2406: Fixed Travis build due to failing tests in web controller.
  19. PR #2408: Fixed minor typo in displaying the error precision on leader-board.
  20. PR #2403: Enhanced submissions filtering to match the keywords from participant team name.
  21. PR #2380: Removed table header when there are no submissions in all/my submissions.

Contributions on EvalAI-ngx

Major Contributions:

  1. PR #142: Added Challenge Overview Page.
  2. PR #144: Added feature to edit challenge description.
  3. PR #145: Added challenge evaluation page.
  4. PR #146: Added challenge phase page.
  5. PR #147: Added submission page in a challenge.
  6. PR #148: Added submission page in a challenge for docker based challenges.
  7. PR #151: Added my submissions page.
  8. PR #152: Added view all submissions page in a challenge.
  9. PR #172: Added feature for challenge host to toggle the submission visibility.
  10. PR #175: Added feature to re-run submission by challenge host.
  11. PR #179: Added clock timer on the submit page when submission limit is exhausted.
  12. PR #176: Added meta tags for the index page and update it to the current challenge page.
  13. PR #162: Added user profile page.
  14. PR #174: Added feature for challenge host to flag the submissions.
  15. PR #153: Added challenge participant page.
  16. PR #155: Added challenge leader-board page.
  17. PR #166: Added a feature to filter the submissions by team name in my submissions.
  18. PR #167: Added a feature to filter the submissions by team name in view all submissions.
  19. PR #163: Added feature to ban the participants from participating in a challenge.
  20. PR #133: Contact Us page.
  21. PR #134: About Us Page.
  22. PR #135: Privacy Policy Page.
  23. PR #137: Our Team Page.
  24. PR #136: Get Involved Page.
  25. PR #173: Added unit tests for challenge evaluation component.
  26. PR #170: Added unit tests for challenge overview component.
  27. PR #161: Added unit tests for challenge component.

Still in review:

  1. PR #177: Added production configuration for the docker nodejs container.
  2. PR #201: Added feature to require participants to complete their profile before participating.
  3. PR #197: Added new partner organizations logos on homepage.
  4. PR #202: Modified team list and fixed UI issues.

Minor Contributions:

  1. PR #200: Fixed green colour on hover over buttons & alignment in few pages.
  2. PR #198: Reduced font-weight of headings and texts.
  3. PR #199: Redirected user to login page after logout.
  4. PR #194: Fixed organisations logos on small screen.
  5. PR #191: Removed show on leader-board toggle button from view all submissions.
  6. PR #184: Added loader according to our current theme.
  7. PR #164: Added a marker in my submissions for the submissions displayed on leader-board.
  8. PR #178: Added blue colour for the anchor tag present in the text of challenge page.
  9. PR #132: Fixed command to clone the project.

Conclusion:

Learned a lot, got to know newer technologies, diverse knowledge from various experts & yes religiously followed the regime of ‘eat sleep code repeat’.

Though for others this might be the Google summer of code, For me it was no less than the summer of 69 (my all time fav 😄) & proud to tell those were the best days of my life 😛.

--

--