Finally, I got time to put together some lines of the code which will serve as a tool to quickly analyze data by hopefully intelligently rolling them up and allowing to dive into categories. I guess, the best way to understand it is to actually run this demo. Once the page loads up, you can see the a bar chart on the top and semi-randomly generated input sales data, resembling a spreadsheet or a SQL table. First columns are categories or properties of an event, last column is a numerical aggregate-able value. SMART-CHART automatically determines most and less frequently changing categories and uses them as initial bread down for X and Y axes while rolling remaining ones up. At that point, user can override initial choice by pressing accordingly labeled buttons for both X and Y axes.
Other feature is an ability to drill into specific Y category, or another words filter our all other data. There are automatically generated buttons to do that as well as “pop” button which pops “the stack”. All of that took a few javelin formulas to make it happen.
The ultimate goal is to make a library out of it, add more options including a choice of charting JS lib as well as make a demo page where users can drop either copy-paste data or cvs files for ease of use.
At that point I have a few technical questions:
1) How to make a clojar out of a holpon
defelem (the plan is to make a reusable piece out of this code)
2) Fix :optimization problem (there is a separate thread here)
3) Fix including JS libraries : This https://github.com/coreasync/SMART-CHART/blob/master/src/index.cljs.hl#L164 works but I think it is not an idiomatic way of including JS libs
I am looking forward for a feedback,