Workflow builder

Paazaa is a project created with .Net Core and React.js, where users can create workflows with different steps, connect those steps and generate a fully-functional website. Each workflow step can be a UI page or a background process, so each step is configurable. A UI page is simply some HTML code, while background processes are triggered on an event, e.x send email on button click, send notifications etc. Users can also configure conditions and loops for the steps when creating a workflow.

Technologies used:

Figure 1. Workflow Endpoints

Figure 1 illustrates the primary workflow endpoints facilitating the creation, update, and retrieval of specific workflows. Additionally, it showcases endpoints for establishing connections between steps, deleting connections, retrieving workflow step types, and executing steps. This execution triggers background processes registered within the project via a specified URL code.

Figure 2. Workflow Process Endpoints

To create, update, get and execute background processes, or to execute them in the workflow steps, Figure 2 shows the required actions. I have implemented background process logic within workflow creation, offering developers a simplified approach via a custom NuGet package and Visual Studio template. Developers can implement generic interfaces within the package to create background processes efficiently. Upon successful creation, the resulting .dll files are stored in unique server folders. For instance, a "Send-Email" project, created using the "Background process" template, is integrated into the Paazaa project. To avoid project overload, .dll files are loaded dynamically at runtime, and subsequently unloaded after execution. To execute this background process, we can call the POST endpoint WorkflowProcess/Execute/{UrlCode}{AdditionalPath}. The HTTP method depends on what type of process we want to execute. If we wanted to retreive some data back from the server, the HTTP method would be GET.


Figure 3. Building a workflow with steps in the UI

Figure 3 shows the UI page where user is creating a simple workflow with different steps and providing the action/trigger/page for each step.