From Design to Deployment: Connecting All Phases with a Unified Algorithm

Amit Kumar Gupta
4 min read9 hours ago

--

How an algorithm can tightly couple all the phases of Software Development to ensure integrity.

Projects typically begin with designing new requirements or amending existing ones. We gather requirements, create designs, and hand them over to the development team. These designs also guide testing and support teams. These designs are the center of any project. But I’ve found them inconsistent in most of the projects. and the reason is that there is no mechanism to ensure the integrity and raise alarm when something goes wrong.

This is the only reason I’m creating tech stack to ensure that the blueprints are strictly followed. We’ll discuss following published libraries that can help us to achieve this vision.

Text2Chart

The first challenge in design phase is to be in sync with old designs. Many of the API designers insert the images which are not modifiable. Some diagrams are editable, thanks to draw.io and similar libraries, but you can’t track the history and comment.

I designed Text2Chart with the aim of generating diagrams from text which can be version controlled. Currently, it supports flow chart only. But the goal is to cover clouds diagrams, organization or hierarchical charts, UML, and others.

FLOW: Binary Search
LOOP searching for target in array
read low (initial index of array)
read high (last index of array)
IF low <= high
THEN calculate mid ((low + high) / 2)
IF array[mid] = target
found target at mid
END
ELSE
FOLLOW update boundaries
ELSE
ERR Target not found
END

FLOW: update boundaries
IF array[mid] < target
update low to mid + 1
ELSE
update high to mid - 1

Text2Chart is a light weight js library that can be embedded on any web page with single line of code. It generates interactive charts.

You can also install a VS Code plugin to draw this diagram within your IDE or can install browser extension to preview the diagrams on Github directly. You can write plugins for Gitlab, confluence page. It is easy like a piece of cake.

Flowgger

Another challenge in software development is to ensure that

What is designed is What is developed

Algorithm that designed in earlier phase can be consumed by Flowgger. Flowgger is a logging framework that checks your log messages written in code against the steps defined in the algorithm.

Flowgger minimize logs size by 90%.

I know it sounds unbelievable. But this is true. Statements from any traditional logging frameworks are logged immediately and as it is.

[2025-03-03T13:30:32.671] [INFO] default [1740988832670-lyuh6ew] - read low
[2025-03-03T13:30:32.672] [INFO] default [1740988832670-lyuh6ew] - read high
[2025-03-03T13:30:32.672] [INFO] default [1740988832670-lyuh6ew] - calculate mid
[2025-03-03T13:30:32.672] [INFO] default [1740988832670-lyuh6ew] - update boundaries
[2025-03-03T13:30:32.671] [INFO] default [1740988832670-lyuh6ew] - read low
[2025-03-03T13:30:32.672] [INFO] default [1740988832670-lyuh6ew] - read high
[2025-03-03T13:30:32.672] [INFO] default [1740988832670-lyuh6ew] - calculate mid
[2025-03-03T13:30:32.672] [INFO] default [1740988832670-lyuh6ew] - found target at mid

Whereas, Flowgger logs the corresponding step ID matching the algorithm and writes a single log for all those statements, significantly reducing log size.

FLOW [2025-03-10T03:51:17.361Z] 1741578677360-z0ivkoo [Binary Search] 0.0.1 1:0>2:0>4:10>9:01:0>2:0>4:8>6:2 0 1   

Additionally, it logs execution time taken by the complete flow and an individual step. This also tells if the flow was successfully completed. This reduces debugging time significantly as you need not to find the whole chain of logs of a flow.

Flowgger supports many other awesome features like logs grouping, dynamic logging etc. But that is out of scope of this article.

FLOAT

FLOAT (Flowgger LOgs Analysis Terminal)is a CLI tool that helps analyze logs generated by Flowgger.

FLOAT in action

In the above screenshot, steps which are used in particular round are highlighted in green. Execution time of the flow and each step is given in first column.

I’m also working on it UI part where we can monitor the performance of each flow and can dig more into particular flow. We can even control the logging of particular flow or particular step when needed.

Flowgger Monitoring Dashboard

Same as CLI command, you can check the execution time of each step on UI. You can trigger extra logging on the fly or fetch logs related to that particular step for analysis purpose.

As I’m working on this full tech stack from a long time, I’ve currently paused the development of dashboard until I receive some feedback. I believe this will more agile approach.

Your Support

Working alone on this project has its challenges, including the risk of developing a product that may not meet users’ needs. Your feedback is crucial to ensure this tech stack is beneficial. I would greatly appreciate your thoughts on its potential application in your projects, suggestions for additional features, and support through a star on the GitHub repository.

Please share this post with your friends or colleagues in IT.

--

--

Amit Kumar Gupta
Amit Kumar Gupta

Written by Amit Kumar Gupta

Umm.. seeking for some research work. You can find some on SoloThought.com

No responses yet