Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Challenge 23 - ECMWF user dashboard #6

Open
jwagemann opened this issue Feb 24, 2022 · 6 comments
Open

Challenge 23 - ECMWF user dashboard #6

jwagemann opened this issue Feb 24, 2022 · 6 comments
Assignees
Labels

Comments

@jwagemann
Copy link
Contributor

jwagemann commented Feb 24, 2022

Challenge 23 - ECMWF user dashboard

Stream 2 - Web development for weather, climate and atmosphere

Goal

  • A new simple and discoverable widget-api
  • Updated user dashboard application

Mentors and skills

  • Mentors: Eduard Rosert, Sylvie Lamy-Thepaut
  • Skills required:
    • JavaScript
    • Web/mobile frontend development


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:

  • Design a new simple and discoverable widget-api (comparable to "GetCapabilites" for OGC Web Services). This api will be rolled out alongside each individual application (the responsibility of the respective application developer) and could provide an "add to dashboard" button.
  • Extend the existing User Dashboard Prototype to support this api.
  • Allows the dashboard application to fetch the data through the api and present all widgets on a single dashboard.

For example:

  • the accounting application would provide a status widget that displays your current HPC usage
  • the satellite monitoring application would provide a widget with the current availability of satellite data
  • the opencharts widget offers the most recent forecast chart

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

References


@Adarsh-NP
Copy link
Member

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
Copy link
Contributor

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
Copy link
Member

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
Copy link
Contributor

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
Copy link
Member

Adarsh-NP commented Apr 5, 2022

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
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants