Skip to content
This repository has been archived by the owner on Aug 6, 2019. It is now read-only.

Commit

Permalink
mouse wheel data collection app
Browse files Browse the repository at this point in the history
  • Loading branch information
brandonaaron committed Nov 7, 2013
0 parents commit 19d82ac
Show file tree
Hide file tree
Showing 1,845 changed files with 338,079 additions and 0 deletions.
1 change: 1 addition & 0 deletions Procfile
@@ -0,0 +1 @@
web: node app.js
3 changes: 3 additions & 0 deletions README.md
@@ -0,0 +1,3 @@
# Mouse Wheel Data Collector

Node.js app using mongoose on heroku to collect mouse wheel delta data.
90 changes: 90 additions & 0 deletions app.js
@@ -0,0 +1,90 @@
var express = require('express');
var app = express();
var stylus = require('stylus');
var nib = require('nib');
var useragent = require('useragent');
var mongoose = require('mongoose');
mongoose.connect(process.env.mongodburl || 'mongodb://localhost/mousewheeldatacollector');

var Schema = mongoose.Schema;

app.set('port', process.env.PORT || 8080);

app.use(express.favicon('public/favicon.ico'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.compress());
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(stylus.middleware({ src: __dirname + '/public', compile: compile }));
app.use(express.static(__dirname + '/public'));

app.configure('development', function() {
app.use(express.logger('dev'));
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});

app.configure('production', function() {
app.use(express.logger());
app.use(express.errorHandler());
});

function compile(str, path) {
return stylus(str)
.set('filename', path)
.set('compress', true)
.use(nib())
.import('nib');
}

var CollectorSchema = new Schema({
useragent: {
family: String,
major: String,
minor: String,
patch: String,
device: {
family: String
},
os: {
family: String,
major: String,
minor: String,
patch: String
}
},
delta: {
resolution: Number,
normalized: {
min: Number,
max: Number
},
raw: {
min: Number,
max: Number
}
}
});
var Collector = mongoose.model('Collector', CollectorSchema);

app.get('/', function(req, res) {
var agent = useragent.parse(req.headers['user-agent']);
Collector.find().sort('-_id').limit(15).exec(function(err, docs) {
console.log(docs);
if (err) res.send(500);
else res.render('home', { agent: agent, records: docs });
});
});

app.post('/', function(req, res) {
var collector = new Collector(req.body);
collector.save(function(err) {
if (err) res.send(431)
else res.send(204)
});
});

app.listen(8080);
1 change: 1 addition & 0 deletions node_modules/.bin/express

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions node_modules/.bin/jade

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions node_modules/.bin/stylus

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions node_modules/express/.npmignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions node_modules/express/.travis.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 19d82ac

Please sign in to comment.