Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Django-Mousechaser tracks the mouse movements of the visitors to your site puts and generates heatmaps accordingly.
JavaScript Python
tree: 2148cbb3b0

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
docs Changes to be committed:
heatmap Changes to be committed:



Django-Mousechaser tracks the mouse movements of the visitors to your site puts and generates heatmaps accordingly. 
This can be useful during the development / testing phase of a new website to test whether people have 
difficulty navigating your site. See for some more background information.

The application consists of two parts:
- The analytics.js script that tracks the mouse and identifies major html blocks (right now <div> and <p> tags)
- The elementmap.js script inserts the heatmap as a background picture in the original webpage

The analytics.js script adds an hidden iframe and sends a POST request, Django-Mousechaser parses all the coordinates
and stores these as HeatMap objects and it stores the major HTML element as Element objects.

The elementmap.js script requests the heatmap which is dynamically generated by the application. 

- Matplotlib (1.0.0)
- Numpy (1.5.0)
- Python Imaging Library (PIL) (1.1.7)
- jQuery (1.4)

*see requirements.txt*

I am pretty sure it should work with older versions of these libraries as well but I cannot guarantee that. 

Add django-mousechaser.heatmap to your INSTALLED_APPS
and make sure that you are able to serve the static js files.

For each webpage that you want to have a heatmap generated, add the following scripts:
- jquery.js (not part of this repos, download from for most recent version)
- analytics.js (this will send the coordinates to your server)
- elementmap.js (this can be on the same page as the original webpage, then it will add the heatmap as a background or add it to a separate webpage


The current status is alpha, it's more a proof-of-concept but it should be quite straightforward to make it more robust. Please clone it!

- Diederik van Liere

- The heatmap does not accurately match the size of webpage, this is quite important but a bit tricky
- Maybe use JSON instead of serialize POST to send data to server 
Something went wrong with that request. Please try again.