================
Workflow Builder
================
The idea of the Workflow Builder (editor) is to simplify the modification of the template.
To increase the possibility of using HPC by a broader range of users, i.e., users of all categories of knowledge in computer science, 
the graphical interface for editing workflows is crucial.

With the use of the GUI, users can easily compose computational tasks into more or less advanced computational workflows.
Each computational task may have input in the form of passed data or atomic types parameters.
The output of the task is represented in the form of data only.
Moreover, output data can be linked to the input of the subsequent task.
Such abstraction can lead to better variability.
For example, special postprocessing or preprocessing can be attached to the main computational task, or one can vary the core of the computation.

Finally, the builder generates the resulting computational workflow using LWD YAML specification.
As the implementation of the emitter is done with the visitor design pattern, developing another editor on demand is not an issue.

The Workflow Builder is based on `React JS <https://https://react.dev/>`_ with the use of underlying Python's `Flask API framework <https://flask.palletsprojects.com/en/stable/>`_.

The builder is currently being developed and tested on internal use-cases to validate its integration with the platform features.

.. figure:: Images/WorkflowEditor/workflow_builder.gif
    :alt: Workflow Builder example

    The Workflow Builder example.