This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

RapidSMS app for web and SMS split test experiments & event tracking

Below you will find basic setup instructions for the rapidsms-xray project. To begin you should have the following applications installed on your local development system:

Installation

Please note: at the time of this writing, Ubuntu installs an older, incompatible version of Redis (prior to the introduction of the BITOP and BITCOUNT commands). You can use the following PPA to install a more recent version:

sudo add-apt-repository ppa:chris-lea/redis
sudo apt-get update
sudo apt-get install redis-server

Install necessary python requirements with pip:

pip install -r requirements/base.txt

In your rapidsms project settings.py, add xray to your INSTALLED_APPS and add xray.context_processors.web_experiments to your TEMPLATE_CONTEXT_PROCESSORS

In your rapidsms project urls.py, add xray’s urls to urlpatterns:

(r'^xray/', include('xray.urls')),

You may need to run django’s collectstatic to ensure xray’s static assests are available:

django-admin.py collectstatic

Experiments

rapidsms-xray uses Cleaver for split testing experiments. Please note that rapidsms-xray currently uses a custom fork of Cleaver pending upstream merging of the RedisBackend (which will be installed properly by python setup.py install or pip install -r requirements/base.txt).

To conduct web split testing experiments, add your experiments to your app’s context_processors.py which makes the experiment choice available in the RequestContext. You don’t have to put your experiments in a context_processor – its just a convenient location so they can all be in one place.

See xray/context_processors.py and thousand/templates/thousand/index.html for example usage.

To conduct sms split testing experiments, add your experiments to your app.py or handler and ensure that the experiments app is listed in your setting.py’s INSTALLED_APPS xray/app.py will deal with identifying experiment participation during the router’s filter phase, so experiments can be conducted in any of the subsequent incoming phases.

Please be aware that experiment participation is handled separately for web and sms split testing (specifically, web participant identity is cookie-based for non-logged-in uses and is user_id-based for logged-in users, whereas sms participant identity is based on mobile number) – that is, a web experiment participant cannot be scored by a SMS conversion event and vice-versa.

See xray/app.py for example usage.

Events

rapidsms-xray uses bitmapist for event tracking and cohort analysis.

To use, import and instantiate xray.events.Tracker and then call my_tracker.web_event or my_tracker.sms_event with an event name and the user’s cleaver identity. xray.rolodex.Rolodex caches identity information for quick user lookup and issues a unique integer for each web and sms user. These unique integer ids are used by bitmapist to track event participation using Redis bitmaps for fast, arbitrary querying. See the bitmapist documentation for additional information. See xray/app.py and xray/views.py for example usage.

When performing custom event analysis, use the Events classes (with separate Web and SMS* classes for each time period) in xray.events rather than the bitmapist classes – rapidsms-xray adds prefixes to namespace the bitmapist keys as well as prefixes to separate sms and web events. xray.events.Tracker’s event methods add the appropriate prefixes, so you will only need to worry about them if you are accessing bitmapist or the stored data in Redis directly.

Dashboard

rapidsms-xray includes a dashboard summarizing experiment and event participation as well as drilldown pages showing experiment details and cohort analysis of event participation.

Release History

Release History

0.5.9b0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.6b0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.3b0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.2b0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.1b0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5b0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
rapidsms-xray-0.5.9b0.tar.gz (25.3 kB) Copy SHA256 Checksum SHA256 Source Dec 18, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting