ECMWFCode4Earth / challenges_2022

Discover the ECMWF Summer of Weather Code 2022 challenges.
12 stars 3 forks source link

Challenge 23 - ECMWF user dashboard #6

Open jwagemann opened 2 years ago

jwagemann commented 2 years ago

Challenge 23 - ECMWF user dashboard

Stream 2 - Web development for weather, climate and atmosphere

Goal

Mentors and skills



Challenge description

Why do we need a solution We provide a large variety of applications, but there is no central dashboard to get a global overview of the information from the user's favourite apps. After a very productive first phase in ESoWC 2021, we would like to move forward the existing user dashboard prototype closer to operations by building on the current functionalities.

What could be the solution The envisioned solution:

For example:

The user dashboard application fetches the data through the widget-api of these web apps and displays it on the dashboard.

References


Adarsh-NP commented 2 years ago

Hello guys, I am Adarsh Narayan Pandey, an undergraduate student at BITS Pilani University, India. I came across ESOWC and saw the idea list for the upcoming summer. I am interested in working on this project. I browsed some code and came to know that the project is in React + Node and I have been working on these technologies for quite some time now. I would like to contribute to this project. Are there any caveats that I should be aware of for the programme or the project? Thank you in anticipation.

EduardRosert commented 2 years ago

Hello guys, I am Adarsh Narayan Pandey, an undergraduate student at BITS Pilani University, India. I came across ESOWC and saw the idea list for the upcoming summer. I am interested in working on this project. I browsed some code and came to know that the project is in React + Node and I have been working on these technologies for quite some time now. I would like to contribute to this project. Are there any caveats that I should be aware of for the programme or the project? Thank you in anticipation.

Hello Adarsh, thank you for your interest. No caveats for this challenge from our side. Your knowledge of React and Node will prove very useful as you will likely have to adapt and build on the current code base.

Please make sure to apply and submit your proposal before 15 April 2022 (check the FAQ here https://esowc.ecmwf.int/FAQ). When preparing your proposal to tackle this challenge, feel free to ask questions specific to this challenge here on github. Also, if you haven't already, you're invited to register for our next ESoWC AMA Webinar on 30 March here https://esowc.ecmwf.int/ama-2022 .

Adarsh-NP commented 2 years ago

Hello guys, so to be clear that I am understanding the project correctly, it is like a user should have option to pin some statistics widgets to a central dashboard. The statistics are from different ECMWF applications and the responsibility to develop add to dashboard is of the application developer for that particular application. Once the user clicks the button to add to the dashboard, in the most simplest terms we will receive a request with the application related data and we'll have to parse and present it. I have a few questions here: a) Is the data for each widget real-time or is it like static but changes in days? This is important to know because then each widget needs to be refreshed in some intervals of time. b) Is there any instance of the project deployed already?

I will be working on setting up the application on my machine today so hopefully I'll have few of the answers by myself at the end. Thanks in anticipation.

EduardRosert commented 2 years ago

Hi Adarsh,

The statistics are from different ECMWF applications and the responsibility to develop add to dashboard is of the application developer for that particular application.

Correct. One of the challenges is to define the interface that allows the dashboard application to display and interact with the application specific widget and the widget data that's provided by the application. Another challenge is to make the process of adding an application's widget to the dashboard as user-friendly as possible.

a) Is the data for each widget real-time or is it like static but changes in days? This is important to know because then each widget needs to be refreshed in some intervals of time.

The data in the widget will not be static but will require regular update intervals which will depend on the application. For HPC usage statistics this might be once a day, for satellite monitoring it could be updates every few minutes.

b) Is there any instance of the project deployed already?

The is no publicly accessible instance of the project available yet. In the meantime you can build and run a fully functional prototype of the dashboard application in your local dev environment as described in the user dashboard readme using docker.

Adarsh-NP commented 2 years ago

Hey Eduard, so I could set up the project on my machine successfully and I went through the website once. Some links appear to be broken so I'll see them today.

Meanwhile, are there any issues you suggest I should start looking at? Also I need some tips for the proposal. Some more pointers would be helpful because a lot of things have been done in the project already, so what are some of the more features that are required? Or what are the issues that I need to solve in my internship period. Getting some pointers on this would be helpful to frame my proposal.

Thanks in anticipation.

EduardRosert commented 2 years ago

Hello Adarsh,

please take another look at the goals, the challenge description and the envisioned solution. Ideally your proposal should address the challenges and help us reach our primary goals:

  1. a new simple and discoverable widget-api
  2. updated user dashboard application

The user dashboard application fetches the data through the widget-api of these web apps and displays it on the dashboard.

Take a look at the references and the existing user-dashboard application for examples on which data might be displayed and how widgets might look like.

Right now the widgets in the dashboard and how they are displayed are managed centrally in the dashboard. We envision to move to a decentralised approach through a

discoverable widget-api (comparable to "GetCapabilites" for OGC Web Services)

as this would allow the dashboard app to connect to a service and retrieve the available widgets and how to display them.

Your proposal should include a comprehensive, open-software based approach to address the described challenges.

Hope this helps.