[Standards]: SVG and graphing support libraries
kapilgrover opened this issue · 13 comments
Description
We need to decide if we are going to use a library for out of the box functionality (librarires like D3) for graphs and visualizations, or do custom graphs?
Proposal
@christyhermansen @joshbruce @ykhadilkar-rei @carlosvalle
@joshbruce Can you please add jihadmotii-reisys to this repo? thanks...
@kapilgrover - I'm not sure I'm following this issue in its entirety. Maybe you and I can do a call?
@JihadMotii-REISys has been added to all three repositories, I think. Are y'all running into problems.
@kapilgrover, @christyhermansen
I would say for something as complex as SVG manipulation - using a library, like D3 makes a lot of sense. Having said that, most of the graphs are charts are being generated by a solution already.
Therefore, I think there is another question here, which is whether to use the reports tool for all graphs and charts; a hybrid; or, something like D3?
Hey @joshbruce,
We had a quick discussion me, @kapilgrover and @carlosvalle and here are our thoughts regarding this issue:
We believe D3 is a great choice when it comes to rendering data into different levels of visualizations/charts. However, having one library that renders all type of components that we might need for future functionalities, We believe it might not work, because each component has specific ingredients that the right library will use them to render it. For instance, D3 is a way to go with data visualization/Chart, angular-datatable for rendering tables, jQuery for HTML document traversal and manipulation, event handling, animation ....
In addition, there will be always cases when we need external libraries to achieve a fully functional end user experience.
Again, this is not a final decision but, sharing thoughts in order to come up with the best library to go with.
What do you think @joshbruce ?
and @joshbruce we are happy to talk, if need be! just let us know...
@JihadMotii-REISys and @kapilgrover - Would definitely be interested in talking.
Should we limit this to just graphing and SVG; or, is this, essentially, what we are recommending for package.json
? Do y'all have time in your Sprint (or the next) to stub out a demo of what you're thinking?
I would also have reservations on jQuery - see #39. As to the animation question, would recommend CSS over JS - as JS is not hardware accelerated (only string manipulation updating a position style attribute within the element itself); therefore, not as smooth, requires JS with an undisclosed fallback (CSS defaults to the end position - disable JS and see Apple computer selection menu (http://www.apple.com/mac/).
See also #98 submitted by @anuragmundada-reisys - There was a version that used jQuery; however, this solution does not have that dependency, and appears to be easier to reason about.
@joshbruce @JihadMotii-REISys @carlosvalle Are you guys available to chat tomorrow? let me know what tome works for everyone...
thanks,
@kapilgrover - I might be able to see everyone in the FEVR. But, I need to prepare some personal things that may see me stepping away from the computer for most of the day. That's not a "no" - more of a, "anything we might be able to do via text first?"
Hey everyone, were you able to chat about SVG and graphing libraries? Maybe it is best to see the demo and then decide?
@pammiller0 - Not yet. Think we're still ironing out particulars and coordinating with POs.
Adding @shanvenkat - As this deals with some reporting-related thoughts and concepts and may lead to deeper discussions on that score.
yeah... that is what I was thinking. Makes sense
@kapilgrover, @pammiller0, @JihadMotii-REISys, @carlosvalle, @diego-ruiz-rei - To recap and capture from our post-Sprint-Planning meeting.
For infographics - those charts and graphics not generated by Microstrategy - D3 will be used: https://d3js.org
We will be looking to create an abstraction layer that should allow other Federal Agencies to more easily incorporate D3 for their sites. For prototyping purposes we will use C3, and Angular-based D3 wrapper.
We should then be able to abstract further; thereby, making a framework-agnostic tool to be used by other Federal Agencies.
We are hoping to have something demonstrable by the end of this sprint (?? - this I don't remember us stating explicitly...I apologize for that one).
I'm going to close this issue, for now. If you believe I've missed anything, please let me know, and whether you believe the "question" is still on the table or needs further discussion.