Skip to content

Senescyt/rapidsms-polls

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rapidsms-polls

The RapidSMS polling application provides a mechanism for collecting an individual piece of data at a time, via SMS, from a potentially large, untrained set of end users. The goal here is to provide the opposite end of the spectrum to smaller-scale, structure data gathering via SMS, which typically requires a high training budget. Polling offers the ability to ask a single question, phrased carefully, to which the complete contents of the response message can be used as meaningful data.

poll types

There are 5 types of polls:
  • Free-form: the simplest form, all answers are considered to be free-form text, responses to a completely open-ended question.
  • Yes/No: the content of the message is expected to begin with a 'yes' or a 'no'
  • Numeric Response: the entire content of the message should be a number
  • Registration Based: the question should be phrased as something similar to 'what is your name?' responses will have the option of being tagged to the responding contact's name.
  • Location Based: the responses will be fuzzy matched to existing location names, or new locations will be created. The locations can also be optionally registered as the reporting location of the contact who submitted the response (for use in mapping other poll responses).

features

In addition to the basic poll types, any text-based poll can also add categories: responses fitting a particular category's rules will automatically be applied to this category (and custom responses can be returned based on categorization). This allows for more complicated keywording for free-form and yes/no polls.

extensions to existing models

The polling app extends the Contact model by adding the column 'reporting_location', a foreign key to an Area object

dependencies

The polling app depends on:
  • eav: (github.com:/mvpdev/django-eav.git)
  • rapidsms: (github.com/rapidsms/rapidsms.git)

enhancements

Currently, to keep the polling app light, the more complicated visualizations are not inside the poll application itself, only the admin functionality is. The visualizations currently sit in the ureport application (github.com/daveycrockett/rapidsms-ureport). These include a tag cloud, pie charts (by category), histograms (for numeric polls), and maps.

usage

Then to use polls, edit your settings.py to add poll and uni_form:

INSTALLED_APPS = ( "rapidsms",
             .. other apps ..
           "uni_form",
           "poll" )

You will probably also want to add Polls as one of the main RapidSMS tabs:

TABS = [
  ('rapidsms.views.dashboard', 'Dashboard'),  
      .. other tabs ..
  ('polls', 'Polls'),
]

Finally sync your database with:

% python manage.py syncdb

About

The 'P' in CPBL, a rapid app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 80.6%
  • CSS 11.9%
  • JavaScript 7.5%