On the 15th of March 2020, I decided to take on my most complex software project till date. I completed my bachelors degree in computer science back in 2015 and my masters degree in computer security back in 2016. Ever since I graduated, I have been working on solo projects. I got into this project not knowing how complex this project would be. I kept on extending the functionalities of the software and it has become the most complex project I have worked on. This is the project below.
The software is called Clubasid. It is a data visualisation software which allows you to create story-telling charts with over 50 different chart types. It is also a data analytics software and data-insight tool. It is also a software that allows you to carry out stochastic infectious disease simulations using different models based on the SIR model; It allows you to tweak parameters such as population count, land area, latency period of disease, incubation period of disease, etc. The software can be used in different disciplines which include info-graphics, data science, data analytics, presentation, business intelligence, epidemiology, etc. Aside from simulation, users are able to import their data, visualise the data using over 50+ charts, get some insight into their data, notice patterns and trends in their data and export out charts. Users can also use the timeline panel at the bottom to play their visualisation like a movie. You could also do predictive analysis with minimal effort using the in-built linear regression graph.
In a previous article I went into details about my first year building this application. It covers how I took this software from being just an infectious disease simulation software to being a data visualisation and data insight software. In this article, I will go over 4 important milestones in the development of this software. It is also important to point out that I built the entire chart system from scratch. I didn’t use any pre-made chart library. This was done so that I could optimise and completely customise the software and the charts as I wish. Every chart was drawn from basic primitives (squares). This also made the process much harder and took much more time. There was also a lot of math involved, and I had to do lots of calculation for many things that one would take for granted when using a chart library like MatPlotLip. The entire software was built using the C# language and a tiny bit of HLSL based on the Unity Engine.
MileStone 1 (March 2021), After 1 year of development
After 1 year (on the 15th of march 2021), I got to this level. One year of solid implementation and I had a software that was pretty functional. The software was now capable of running stochastic simulation of infectious diseases spread using a variation of the SIR model as well as being able to visualise data and give some insight on the imported data. However, it still was not ready for professional use. The charts could not be used in professional publications because they just didn’t look good enough. The user interface needed much improvement and the charts were not flexible/customisable. There were still lots of bugs and relatively poor user experience.
Milestone 2 (25th of June 2021). The Launch of Clubasid Pro.
Milestone 3 (End of 2021), Chart customisation.
Clubasid now had chart customisation features. More geo-maps were added including the map of Germany, Brazil, Nigeria, India and USA.
Milestone 4 (Today)
Today, so much has been improved since milestone 3. The charts look better, chart customisation and optimisation have been improved. New charts have been added, bugs have been fixed, user experience has been greatly improved and the entire software has been better optimised. All charts are now fully customisable, the user workflow has been greatly improved. You can do predictive analysis using linear regression, the 3D graph has been greatly improved and so many more things have changed, the insight tools have been improved as well. Certain chart variations have been added (e.g polar pie chart which is a simple variation of pie chart). Another interesting thing I have managed to accomplish was to allow user the ability to save their work in a “.CLUBASID” format. Some of the technical challenges I faced were encoding images that users have imported into the software and being able to decode it fast enough when loading the file. If a user is creating an animated race-bar chart based on the GDP of different countries, the user would typically have the images of all the country flags imported into the software. For example, I have a “.CLUBASID” file that contains the GDP of all countries from 1960 to 2020 including images of their flags. I was able to save the file in less than 2 seconds and I was able to load the same file in less than 5 seconds. The size of the file is just 2.7 MB.
While working on this project, I have learnt a lot about software architecture, product design, algorithms, managing big code bases and more.
Despite being a much better product, than it was at launch, CLUBASID is currently priced at $199 (lifetime) on the Microsoft store.