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.
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
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.