-
Notifications
You must be signed in to change notification settings - Fork 3
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 24 - CliMetLab web application #7
Comments
Hello mentors! 😄 I’m interested in this project. I have a few questions about it.
|
Happy to see you are interested in this challenge, here are a few answers:
Yes. Using the shell command can be cumbersome, therefore the seek for a graphical UI.
Yes. (btw, there are also a few additional files that are cached, and sometimes the files are modified when they are cached (zip files are unzipped for instance)).
Filtering when managing the cache can be done with the command line with --newer --match etc. This filtering can be done more easily in a web form.
There will be no need to scan directories, the js GUI relies on the python API which relies on a cache db. The update on the db is already implemented. This could show how much space is used by the cache files matching a given filter. (yes, the filter could be on the format of the files).
Yes. Most likely using climetlab.plot_map()
Yes.
It is meant to say "easy to maintain".
Yes.
Just helping people to see what is in their cache to help them debugging (with other tools that will not be developed in this project).
The credentials used in climetlab often consists in some files in the $HOME directory where authentication keys are store. We may want to add these in the GUI. Or maybe not, for security reason.
Yes. |
Thank you @floriankrb. Your comments are helpful! :) For the tech-stack, can we choose libraries other than those mentioned above? Specifically, I'd like to use FastAPI instead of web.py because it's fast, has great documentation, big community, and is well maintained. I'd also like to use Tailwind CSS + Styled Components instead of Bootstrap in our React app. This gives us more control over the styling and is easy to understand + extend + modify compared to Bootstrap. Tailwind CSS is also very popular and has a huge community behind it. What do you think? |
Yes, why not using FastAPI, it seems promising too. Notice that a strong requirement is that the end-users will not have to install many dependencies, especially they must not have to install the JavaScript stack (nodesjs, npm, etc.). |
Thank you @floriankrb! 😄 |
Challenge 24 - CliMetLab web application
Goal
Develop a web app for CliMetLab
Mentors and skills
Challenge description
Why do we need a solution
CliMetLab is a Python package aiming at simplifying access to climate and meteorological datasets, allowing users to focus on science instead of technical issues such as data access and data formats. It is mostly intended to be used in Jupyter notebooks, and be interoperable with all popular data analytic packages, such as NumPy, Pandas, Xarray, SciPy, Matplotlib, etc. and well as machine learning frameworks, such as TensorFlow, Keras or PyTorch.
In this challenge, we would like to see a user-friendly dashboard interface to some of the CliMetLab functionalities using a lightweight GUI web app.
What could be the solution
The relevant functionalities are:
As a second step, additional functionalities may include:
Framework and dependencies:
The whole code of this web app must be packaged as a python package plugin for the climetlab CLI. To reiterate and clarify the javascript dependencies: for the end-user, the javascript part needs to be packaged as static content and shipped inside a unique pip package. There should be no dependency on the javascript stack: the end-user will only install a pip package and the end-user will not install npm/nodejs/etc. Installing the python package allows to run “climetlab web” and have a local server on http://localhost:some_port (similar to a local jupyter server).
Emphasis should be put on clean code, reusability, modularity, ease of maintainability. If you master Reactjs and wand a small applied use case from real life, this is a perfect opportunity for you to demonstrate the capabilities of the framework and yours.
References
A draft is available here.
The text was updated successfully, but these errors were encountered: