Javascript Chart Wrapper

CLOSED
Bids
9
Avg Bid (AUD)
$1231
Project Budget (AUD)
$750 - $1500

Project Description:
metaVis: a Visualization Wrapper

The Google visualisation api is well thought out, and has much to recommend it - there are however many other great plotting and visualization libraries available (all of which can be used without a connection to Google). Since Google has good abstraction and documentation I would like to produce a javascript library that wraps the google visualization api and allows different backend adapters (one of which is the Google visualization api). To summarise the adaptor will:

- Have a 1:1 api correspondence with the google api as far as possible
- Map calls for a given adapter to translate google api syntax into jqplot, or D3
- Allow for extension so that new visualizations not provided by google can be enabled
- Write this as a jquery plugin

I'm calling this project metaVis.

an example will make this clearer

/**** Original Visualization Playground example ***/

function drawVisualization() {
// Create and populate the data table.
var data = google.visualization.arrayToDataTable([
['ID', 'Life Expectancy', 'Fertility Rate', 'Region', 'Population'],
['CAN', 80.66, 1.67, 'North America', 33739900],
['DEU', 79.84, 1.36, 'Europe', 81902307],
]);

var options = {
title: 'Correlation between life expectancy, fertility rate and population of some world countries (2010)',
hAxis: {title: 'Life Expectancy'},
vAxis: {title: 'Fertility Rate'},
bubble: {textStyle: {fontSize: 11}}
};

// Create and draw the visualization.
var chart = new google.visualization.BubbleChart(
document.getElementById('visualization'));
chart.draw(data, options);
}

/**** Proposed wrapper example ***/

function drawVisualization() {
// Create and populate the data table.
var data = metaVis.arrayToDataTable([
['ID', 'Life Expectancy', 'Fertility Rate', 'Region', 'Population'],
['CAN', 80.66, 1.67, 'North America', 33739900],
['DEU', 79.84, 1.36, 'Europe', 81902307],
]);

var options = {
adaptor:"Google", // set the adapter
// adaptor:"jqPlot", // or might be jqPlot or D3
title: 'Correlation between life expectancy, fertility rate and population of some world countries (2010)',
hAxis: {title: 'Life Expectancy'},
vAxis: {title: 'Fertility Rate'},
bubble: {textStyle: {fontSize: 11}}
};


// Create and draw the visualization.
var chart = $('#visualization').metaVis("BubbleChart");
chart.draw(data, options);
}

/************** END ************/

The final project must ensure
1) it is a well specified and documented jquery plugin - must use similar patterns as from http://coding.smashingmagazine.com/2011/10/11/essential-jquery-plugin-patterns/
2) Make sure it propagate and handles events (such as mouse click) correctly and transparently regardless of the backend
3) Development of adaptors is documented
4) Works with substantial subset of Jqplot as initial adaptor
5) Is coded on github (so that I can watch development).

Skills required:
HTML5, Javascript, jQuery / Prototype
Hire biometix
Project posted by:
biometix Australia
Verified
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.


$ 1298
in 18 days
$ 1499
in 30 days
$ 1546
in 15 days
$ 1263
in 30 days
Hire pallavibk
$ 1250
in 15 days
Hire umadevisathesh
$ 1250
in 3 days
$ 1250
in 15 days
Hire worker500
$ 888
in 3 days
Hire coffescript
$ 833
in 5 days