Skip to content

Commit 7a55a9f

Browse files
committed
Initial commit.
0 parents  commit 7a55a9f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+16949
-0
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.idea
2+
node_modules/
3+
build/

.jshintignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
src/js/Backshift.Class.js

.jshintrc

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"funcscope": true,
3+
"lastsemic": true,
4+
"loopfunc": true,
5+
"eqnull": true,
6+
"expr": true,
7+
"undef": true,
8+
"browser": true,
9+
"node": true,
10+
"predef": ["Backshift", "Rickshaw", "d3", "jQuery", "console", "io", "describe", "it", "expect", "spyOn", "beforeEach", "afterEach"]
11+
}

Gruntfile.js

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
module.exports = function(grunt) {
2+
3+
var srcFiles = [
4+
'src/Compat.js',
5+
'src/Backshift.js',
6+
'src/Backshift.Class.js',
7+
'src/Backshift.Class.Configurable.js',
8+
'src/Backshift.Math.js',
9+
'src/Backshift.Utilities.Url.js',
10+
'src/Backshift.Graph.js',
11+
'src/Backshift.Data.js',
12+
'src/Backshift.Data.Mock.js',
13+
'src/Backshift.Data.Mock.TrigFnFactory.js',
14+
'src/Backshift.Data.Mock.Trig.js',
15+
'src/Backshift.Data.Newts.js',
16+
'src/Backshift.Data.Factory.js',
17+
'src/Backshift.Graph.js',
18+
'src/Backshift.Graph.Matrix.js',
19+
'src/Backshift.Graph.Rickshaw.js'
20+
];
21+
22+
// Project configuration.
23+
grunt.initConfig({
24+
pkg: grunt.file.readJSON('package.json'),
25+
uglify: {
26+
options: {
27+
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
28+
},
29+
build: {
30+
src: srcFiles,
31+
dest: 'build/<%= pkg.name %>.min.js'
32+
}
33+
},
34+
concat: {
35+
dist: {
36+
src: srcFiles,
37+
dest: 'build/<%= pkg.name %>.js'
38+
}
39+
},
40+
jsdoc : {
41+
dist : {
42+
src: ['src/*.js'],
43+
options: {
44+
destination: 'build/doc'
45+
}
46+
}
47+
}
48+
});
49+
50+
grunt.loadNpmTasks('grunt-contrib-uglify');
51+
52+
grunt.loadNpmTasks('grunt-contrib-concat');
53+
54+
grunt.loadNpmTasks('grunt-jsdoc');
55+
56+
// Default task(s).
57+
grunt.registerTask('default', ['uglify', 'concat', 'jsdoc']);
58+
59+
};

docs/NOTES.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
Notes
3+
=====
4+
5+
* Backshift will maintain a view of the series that can be used for plotting
6+
* The resolution of the data will be scaled dynamically to fit the size of the plot
7+
* Support for sliding intervals (i.e. the last 5 minutes)
8+
* Support for (near) real-time data via web sockets
9+
* Support for server side rendering (nested svg elements?)

examples/newtsGraphs.html

+168
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
2+
<!DOCTYPE html>
3+
<meta charset="utf-8">
4+
5+
<head>
6+
<link rel="stylesheet" type="text/css" href="../vendor/rickshaw.min.css">
7+
<link rel="stylesheet" type="text/css" href="../vendor/jquery.datetimepicker.css">
8+
<link rel="stylesheet" type="text/css" href="../vendor/bootstrap/css/bootstrap.min.css">
9+
<link rel="stylesheet" type="text/css" href="../vendor/bootstrap/css/bootstrap-theme.min.css">
10+
11+
<script src="../vendor/d3.min.js"></script>
12+
<script src="../vendor/jquery.min.js"></script>
13+
<script src="../vendor/jquery-ui.min.js"></script>
14+
<script src="../vendor/jquery.datetimepicker.js"></script>
15+
<script src="../vendor/bootstrap/js/bootstrap.min.js"></script>
16+
<script src="../vendor/rickshaw.js"></script>
17+
<script src="../src/Compat.js"></script>
18+
<script src="../src/Backshift.js"></script>
19+
<script src="../src/Backshift.Class.js"></script>
20+
<script src="../src/Backshift.Class.Configurable.js"></script>
21+
<script src="../src/Backshift.Math.js"></script>
22+
<script src="../src/Backshift.Utilities.Url.js"></script>
23+
<script src="../src/Backshift.Data.js"></script>
24+
<script src="../src/Backshift.Data.Newts.js"></script>
25+
<script src="../src/Backshift.Data.Mock.js"></script>
26+
<script src="../src/Backshift.Data.Mock.TrigFnFactory.js"></script>
27+
<script src="../src/Backshift.Data.Mock.Trig.js"></script>
28+
<script src="../src/Backshift.Data.Factory.js"></script>
29+
<script src="../src/Backshift.Graph.js"></script>
30+
<script src="../src/Backshift.Graph.Matrix.js"></script>
31+
<script src="../src/Backshift.Graph.Rickshaw.js"></script>
32+
</head>
33+
34+
<body>
35+
36+
<div class="container">
37+
<div class="row" style="padding-top: 25px"></div>
38+
<div class="row" style="padding-left: 10px">
39+
Start: <input id="dtpStart" type="text" > End: <input id="dtpEnd" type="text">
40+
</div>
41+
<div class="row" style="padding-top: 25px"></div>
42+
<div class="row">
43+
<div class="col-xs-4">
44+
<div id="graph1"></div>
45+
</div>
46+
<div class="col-xs-8">
47+
<div id="graph2"></div>
48+
</div>
49+
</div>
50+
</div>
51+
52+
<script type="text/javascript">
53+
var step = 60, heartbeat = 240, resource = "bitstamp";
54+
55+
var model1 = {
56+
dataProcessor: {
57+
type: "newts",
58+
url: "http://nms.jessewhite.ca:8080/"
59+
},
60+
sources: [
61+
{
62+
name: "bid",
63+
resource: resource,
64+
dsName: "bid",
65+
csFunc: "AVERAGE",
66+
step: step,
67+
heartbeat: heartbeat
68+
},
69+
{
70+
name: "ask",
71+
resource: resource,
72+
dsName: "ask",
73+
csFunc: "AVERAGE",
74+
step: step,
75+
heartbeat: heartbeat
76+
},
77+
{
78+
name: "high",
79+
resource: resource,
80+
dsName: "high",
81+
csFunc: "AVERAGE",
82+
step: step,
83+
heartbeat: heartbeat
84+
},
85+
{
86+
name: "low",
87+
resource: resource,
88+
dsName: "low",
89+
csFunc: "AVERAGE",
90+
step: step,
91+
heartbeat: heartbeat
92+
}
93+
],
94+
series: [
95+
{
96+
name: "Bid",
97+
source: "bid",
98+
type: "line"
99+
},
100+
{
101+
name: "Ask",
102+
source: "ask",
103+
type: "line"
104+
},
105+
{
106+
name: "High",
107+
source: "high",
108+
type: "line"
109+
},
110+
{
111+
name: "Low",
112+
source: "low",
113+
type: "line"
114+
}
115+
],
116+
preview: false
117+
};
118+
119+
var end = Math.floor(Date.now() / 1000);
120+
var start = end - 24*60*60;
121+
122+
var graph1 = new Backshift.Graph.Rickshaw({
123+
model: model1,
124+
element: document.querySelector("#graph1"),
125+
width: 250,
126+
height: 200,
127+
start: start,
128+
end: end,
129+
refreshRate: step * 1000
130+
});
131+
132+
graph1.render();
133+
134+
var graph2 = new Backshift.Graph.Matrix({
135+
model: model1,
136+
element: document.querySelector("#graph2"),
137+
start: start,
138+
end: end,
139+
resolution: 10
140+
});
141+
142+
graph2.render();
143+
144+
jQuery('#dtpStart').datetimepicker({
145+
format: 'unixtime',
146+
value: start,
147+
step: 15,
148+
closeOnDateSelect: true,
149+
onChangeDateTime:function(dp,$input) {
150+
graph1.setStart( $input.val() );
151+
graph2.setStart( $input.val() );
152+
}
153+
});
154+
155+
jQuery('#dtpEnd').datetimepicker({
156+
format: 'unixtime',
157+
value: end,
158+
step: 15,
159+
closeOnDateSelect: true,
160+
onChangeDateTime:function(dp,$input) {
161+
graph1.setEnd( $input.val() );
162+
graph2.setEnd( $input.val() );
163+
}
164+
});
165+
166+
</script>
167+
168+
</body>

0 commit comments

Comments
 (0)