Operations Log

Developing Custom Graphs to Monitor Social Media Activity

The client of vteam #577 had a SaaS based data analytics application which siphons through the plethora of data online to provide its users with meaningful and insightful information used in corporate, political, issue advocacy, public infrastructure, and trade association organizations.

They wanted vteams engineer Waheed-ud-din to develop a responsive graph tool that could be customized according to date and time requirements spanning from 6 months to even half hourly marks within a day. They also wanted to show daily and hourly values for different social media accounts as filters in side bar.

The client even had designs of his own as suggestions.  However, the options of Charting Libraries available each had their limitations and the client himself had left the requirements open-ended for his users.

To proceed with the project, the team needed to decide which level of customization would be most suitable to the client’s needs. Too much customization and overheads would increase. Too little customization and the level of functionality required would not be achieved. After analyzing all available solutions, vteams came to know that the client’s requirements were not only subject to change but they are also completely open ended, so anything could be added up.

The team decided to build a custom library out of D3.js. Interestingly, D3.js is not a typical graphs library but rather a library that provides building blocks to create graphs. D3.js is also good at SVG creation and manipulation. Since it’s mostly used for data visualization it can be used to plot any sort of graph. The only con was that, compared to the existing solutions provided by the client, it would be more time consuming.

These findings were shared with the client who agreed that using D3.js (and its basic building blocks for plotting different elements in SVG format) was a more effective solution than the ones already on the table.

The team was not very experienced with D3.js but their background in JavaScript allowed them to pick it up quickly. The client was pleased with the results.