Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Read about daru-view here , before reading this.
New Ideas (To be reviewed)
Currently daru-view depends on gems like google_visualr, lazy_high_charts. Another dependencies were Nyaplot (SciRuby gem), daru-data_tables (created during GSoC'18 daru-view project). I(Shekhar) personally think that daru-view mustbe independent from google_visualr, lazy_high_charts gems.
Optimise loading of js files in IRuby notebook and Web application (Using proper design pattern like proxy design pattern).
Number of js files are increasing in adpater/js folder. It can make gem bulky. It will be better if user is having net connectiviy then load the js online (or during the installation of the gem download the js, css files in vendor/assets folder).
Strategy design pattern , to change the behaviour of plot and table object runtime?
Custom exception handling in daru-view
We are extending google_visualr, lazy_high_charts gems in daru-view, so why not to have our own gems, named daru-view-googlecharts, daru-view-highcharts and there we keep updating our code. Also we are not tracking the new commits on google_visualr, lazy_high_charts gems.
I(Shekhar) personally feel that we need more modular code such that people who understand the googlecharts, highcharts official tutorials can use the our gem. (i.e. if in future some new features is added then our gem must be able to generate the js code for the same and work smoothly).
GSoC 2018 accepted Ideas :
One of the good feature
daru-view provide is, we can use all the function/methods, that plotting tool already have; by accessing
chart/table class using
#table. But we are using
lazy_highcharts gem to actually access the
features present in Google charts JS, HighCharts.
Google charts tool
Since google charts have more features now and developers are keep updating it. It is important for us to extend
google_visualrgems code in
daru-view, i.e. adding more methods in
daru/view/adapter/googlechartand use the features from the google chart js directly. (I am searching new features that can be used in daru-view)
Export the chart in various format: In google chart we can get the image url using
chart.getImageURI(), then we can download the chart in different format. refer: https://stackoverflow.com/questions/46417248/how-to-export-google-chart-in-pdf
Similarly Highcharts js are updated in official site and more features are added. So we must keep updating our daru-view gem adapter/highcharts; i.e. extend the lazy_high_charts code in daru-view. (need to see new features that can be used in daru-view)
daru-viewis just using Highcharts JS but we can use more features using HighMap and HighStock. Implementation of these features in daru/view/adapter/highcharts will be very useful. Also it will be usable offline. (Since in daru-view Highcharts adapter can be used fully offline)
There are many examples present on the Highcharts -> HighStock site and some advance examples in blog as well (like this).
Custom styling CSS in HighCharts. Refer : https://www.highcharts.com/docs/chart-design-and-style/style-by-css
We can export the chart in various format (like jpg, png, svg, pdf) when we see it in browser (using iruby notebook or web app, we can see the download button at the right corner). So there must be an api(like
chart.export_png) using which we can directly download the chart from the code.
daru-data_tables is created only to use it in daru-view gem. But
daru-data_tables gem is not fully completed. Currently it can display table in web applications but not iruby notebook (refer https://github.com/Shekharrajak/daru-data_tables/issues/2).
We want to load large set of data piece by piece as I discussed it here : https://datatables.net/forums/discussion/43379 But it is still not implemented.
Refer blog post for more info : http://shekharrajak.github.io/blog/GSoC-2017/Coding-Period-Week-7
There are many features we can add in daru-view/DataTables.
Updating js files
Google chart JS and highcharts js must be updated whenever user want. These dependent js files are updated in the official links. Refer : https://github.com/SciRuby/daru-view/issues/47
daru-viewworkable offline, it is loading the JS files in iruby notebook and web application. But when yousee the html source code, you see bunch of lines at the page because of js. We must have something like this
//= require daru-view/highcharts/highcharts //= require daru-view/highcharts/highcharts-more //= require daru-view/highcharts/highstock //= require daru-view/googlecharts
to load js files. Refer : https://github.com/SciRuby/daru-view/issues/24#issuecomment-319287696
Contributor may need to understand the codebase of
daru-data_tables to extend the feature. May be in near future we will remove these dependent gem(by adding all our required code into daru-view only) and use only daru-view code.
I am not expecting changes in dependent gems, since our requirement is to make it usable with
daru gem and in iruby notebook as well as ruby web applications.
- These are good to start with:
- There are many examples present in GoogleCharts and HighCharts site, that need to be present in spec/dummy_iruby examples. More examples will lead us to know more features and bugs present if any. refer: https://github.com/SciRuby/daru-view/issues/72
Can we create advance charts like this by extending the daru-view/highcharts code (i.e. creating methods. How will the data will be send? How those options will be set to modify the charts?)
Is it good idea to have some plugin (plugin in the sense, user can add more available adapters for plotting, using some command like
daru-view add_adapter abc_charts)? Then user will be able to use it. I don't think it is good idea to have many adapters in daru-view itself. It must be easy to extend, when required.
Apart from these, if you have any kind of idea or suggestion; that can make
daru-view better, feel free to add it here.