Cloud-CV / GSoC-Ideas

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

Analytics Dashboard for EvalAI Admin, Challenge hosts & Participants #26

Closed Sanji515 closed 3 years ago

Sanji515 commented 4 years ago

Project Title: Analytics Dashboard for EvalAI Admin, Challenge hosts & Participants

Description:

As the number of compute-intensive challenges on EvalAI are increasing, we want to focus on improving the performance of our services. As a first step, we will focus on monitoring and measuring all key metrics of our services. Insights from these will allow us to efficiently utilize our infrastructure, improve uptime and reduce costs. The project will concentrate on writing REST API’s, plotting pretty graphs and building analytics dashboards to cater for all three types of users on EvalAI i.e. admin, challenge hosts and participants. The analytics will help challenge hosts to view the progress of participants in their challenge for instance, comparing the trends of the accuracy from participant submissions over the period of time, etc. The final goal is to provide users with several analytics so as to display their progress on the platform and utilize the resources efficiently to reduce costs.

Deliverable:

  1. EvalAI Admin -

    • [ ] Add backend APIs & graphs on UI for number of daily, monthly, & yearly signups of users, number of challenges on EvalAI & number of submissions on EvalAI.
    • [ ] Integration of the backend with open-source softwares like Grafana so to report metrics for the load on APIs
    • [ ] Integrate the backend with the AWS cloudwatch to get the metrics for server load, CPU utilization, storage, etc.
    • [ ] Write tests for the APIs and frontend
  2. Challenge Host -

    • [ ] Add backend APIs and UI graphs for the performance of a participant in the challenge over a period of time.
    • [ ] Add a plot for showing the number of submissions in a challenge by a participant.
    • [ ] Add plots for showing the number of submissions in a challenge in a day, month, and yearly.
    • [ ] Add a plot to show the ranks of various participants on the leaderboard over time.
    • [ ] Write tests for the APIs and frontend
  3. Participants -

    • [ ] Add backend APIs and graphs for submissions in a challenge and the corresponding rank.
    • [ ] Add a plot for the number of submissions in a challenge over time.
    • [ ] Write tests for the APIs and frontend

Mentor: Shekhar Prasad Rajak @Shekharrajak, Rishabh Jain @RishabhJain2018

Skills: Angular 7, Django, Django Rest Framework, D3.js

Skill Level: Medium

Get started: Try to fix some issues in EvalAI (note that there are some issues labeled with GSOC-2020)

Tutorials:

Important Links:

Shekharrajak commented 4 years ago

Points that can be discussed in front end side (can be added in idea list: https://github.com/Cloud-CV/GSoC-Ideas/issues/28 as per this enhancement ):

First, we can implement Authentication guard, generalizing this issue: https://github.com/Cloud-CV/EvalAI-ngx/issues/271

Then we can have authorization guard which will check the authenticated user role, then the route can be activated. Refer canActivate.

Extending this idea, we should use various router guards as per the requirement:

CanActivate, CanActivateChild, CanDeactivate, CanLoad

It will improve the performance because we don't have to check the roles (reducing number of if , elseconditions in template and services).

Aakash1822 commented 4 years ago

Interested to work on this project. Please guide me where to start

Shekharrajak commented 4 years ago

@Aakash1822 , Go through the contribution & development guidelines. To understand the codebase I would suggest you to start fixing small easy to fix bugs in issue list then continue with task list.

Shekharrajak commented 4 years ago

Hello, Students!

I am continuously getting messages in different platforms(linkedin/gitter, etc) about the application review or discussion. It would be better if student create a mail thread in google group: https://groups.google.com/forum/#!forum/cloudcv and cc all the mentors. It will help to know everyone about the idea, proposal and we can easily correct you or provide the right direction to your approach.

Keep committing! :)

Shekharrajak commented 4 years ago

@adityaketkar, Since I am not able to comment on your PDF application, I am pasting the comments here:

AkashDPA commented 4 years ago

Hello members, I can't able to reach at mailing list so i am writing here. I have some experience with API and also have submitted research paper to optimize it. I want to contribute for Eval Admin, currently doing installation but I have some question regarding feature and technology stack, can anyone guide me?

Shekharrajak commented 4 years ago

Hi @AkashDPA , Feel free to ask questions and let us know your research on the idea.

AkashDPA commented 4 years ago

Research is about optimizing API signature validation, regular API uses the timestamp method to generate a unique signature and to validate it takes more server resources. for this, I have come up with a solution.

AkashDPA commented 4 years ago

Can I have docker image, I am getting following error each time, may be because heavy load (due to lockdown) but it lasts 2 days

root@kali:/evalai# docker-compose up --build
Pulling sqs (pakohan/elasticmq:)...
latest: Pulling from pakohan/elasticmq
Image docker.io/pakohan/elasticmq:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
a3ed95caeb02: Pull complete
798775e4391c: Downloading
3585d15c3f22: Download complete
aa076096cff1: Download complete
5d67e39adf5b: Downloading
b1eb7b91e407: Download complete
4a69946c8688: Download complete
f9c265c6cb17: Download complete
cd3c13c60972: Download complete
e7b3ea95788c: Download complete
ERROR: dial tcp 3.224.11.4:443: i/o timeout