Pain is always a good motivator. I can attest to the physical and mental pain inflicted to all its users by Michael Bostock: creator of data visualisation library D3.js.

However, being able to make visualisations in JavaScript, especially reasonably nice-looking ones with animations and an enormous amount of flexibility regarding how the data is presented, is the reason we endure it.

With Gorgeous Graphs Mwah, we simplify the data collection and representation in a variety of common formats, so that users can enjoy Mr. Bostock's work, without giving their life away to StackOverflow.

What it does

It provides a way to easily send unstructured data to the service, as well as a way to easily retrieve a visualisation of the data in popular formats (e.g. bar charts, line charts, pie charts).

How we built it

As an API that accepts data, placing it into a MongoDB instance. Then we query it and display with a Python NVD3 wrapper, which is an open-source project modified by us.

Challenges we ran into

Some of the challenges were especially to do with displaying dates and multiple data sets in one chart. For example, each data point has a date field associated with it, so it makes sense to display a data set as the data contained in each point along with each points' date field. However, doing this results in each data set having different dates, which then results in display inconsistencies.

It was necessary to calculate the maximum and minimum dates in the set, and then allow the user to pick a granularity interval. For each interval space, we aggregate the data that belongs in that interval's date range.

Accomplishments that we're proud of

It works!

The front-end is very appealing and user-friendly, and the insertion and retrieval of visualisations works as originally intended. There are some things to iron out though.

What we learned

Wholly unstructured data is not good for aggregation, because it is difficult to aggregate based on more than one field. We learned more about using Flask and MongoDB.

What's next for Gorgeous Graphs Mwah

Improve the displaying of multiple data sets, add more graph types, and simplify the user onboarding process and graph creation process.

Share this project: