Skip to content

Unobtrusive realtime mouse-tracking analytics for node.js

Notifications You must be signed in to change notification settings

jasonbarry/snipes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snipes.js

Unobtrusive Realtime Mouse-Tracking Analytics for Node.js

Features

  • Realtime mousemove, click, scroll, resize, connect, and disconnect observers
  • Only broadcast cursor positions to admin, not to other clients. This way visitors won't be bothered with cursor positions they don't care about.
  • Works in Safari 3+, Google Chrome 4+, Firefox 3+, Opera 10.61+, Internet Explorer 5.5+

Demo

Run server.js in node (see step 4 of How to Use, below) and then open index.html in one browser window and admin.html in another. Try with multiple index.html windows open to test concurrent connections.

How to Install

npm install snipes

or

git clone git://github.com/jasonbarry/snipes.git

How to Use

  • Paste the following right before your </body> tag on the page you'd like to observe:
<script src="./js/snipes-client.js"></script>
  • Edit the last line of snipes-admin.js and snipes-client.js from 'localhost' to the URI of your server.
  • Change the src attribute of the iframe in admin.html to the path of the page you're observing.
  • Then just node server.js and you're good to go! (or nohup node server.js & if you want it to run in the background)

Dependencies

  • Node.js - an event-driven I/O server-side JavaScript environment based on V8.
  • Socket.io - client/server communication leveraging HTML5 WebSockets with a Flash-based fallback.
  • jQuery - JavaScript library, only needed on admin side.

Known Issues

Please report issues on the GitHub page.

  • Admin view can only view one page at a time
  • Cursor positions are not accurate with fluid widths or when the window width is less than the body width

Planned Features

  • Filter cursors by user agent, referral page, country, language, etc
  • Live heatmaps ala heatmap.js
  • Hosting...?