spine-tools / Spine-Toolbox

Spine Toolbox is an open source Python package to manage data, scenarios and workflows for modelling and simulation. You can have your local workflow, but work as a team through version control and SQL databases.
https://www.tools-for-energy-system-modelling.org/
GNU Lesser General Public License v3.0
73 stars 18 forks source link

Database editor user interface development #2492

Open nelliputkonen opened 10 months ago

nelliputkonen commented 10 months ago

This is a parent issue for all DB editor UI development issues. The parent issue lists all current functionalities (bullets) in DB editor (Toolbox 0.8) and lists suggested improvements (checkboxes) under functionalities. The suggestions can be easily opened as new issues hierarchically under the parent issue. The list is not yet comprehensive and the suggested improvements as well as their order of priority has to be discussed (e.g. starting in Leuven sessions Jan 2024). The listing also needs cross-checking with existing issues and planned improvements - therefore this is a live listing that should be edited as the UI development process moves along.

Spine Toolbox database editor

User function categories:

  1. Create a modelling tool specific database format (Populate database with modelling tool specific entity classes and parameter definitions)
  2. Create a model specific database with data (Populate database with model specific entities and parameters)
  3. Edit data and create scenarios based on alternative parameter values
  4. Check model run results for checking if model works
  5. ~Analyze full set of results~

General UX suggestions:

Top menu and Toolbar

Hamburger menu (in Toolbar)

Entity tree (used for creating/editing entity classes and entities)

Parameter value (used for assigning parameters and parameter values to entities)

Parameter definition (used for viewing the list of all parameters or adding/editing parameter definitions)

Entity alternative (used for selecting which entities are active in which alternative)

Alternative (used to give alternative parameters/parameter values for entities for scenario creation)

Scenario tree (used to build scenarios based on alternatives)

Parameter value list (used for defining a list of possible values for a parameter)

Entity graph (used for visualizing entities and their relationships)

Not covered in this list (yet)

OleMussmann commented 10 months ago

Impressive what you put together in so little time @nelliputkonen . I only have time for a brief review right now. Below are my initial thoughts. I hope I find the time to go through your points again with the user interface in front of me later. When I quote your bullet points, they are in bold.

nelliputkonen commented 10 months ago

Thank you for the excellent comments @OleMussmann! My answers and comments in bold.