A simple way for NGOs to create an SMS reminder system and enroll people in it.
Many people have access to text messaging but no access to internet, making texts an important method of communication for NGOs with a wide variety of applications. For example, text message reminders for taking medication on a schedule significantly improves adherence.
However, setting up text message communication systems generally requires an NGO to hire a developer, which is expensive and time-consuming.
Here, we provide an easy graphical interface for setting up text reminders. The interval of recurring reminders is customizable for each reminder "campaign" (e.g. each medication), and you can enroll people in a campaign via SMS. People can respond to SMS reminders to indicate they've completed a task (e.g. taken their medication).
SMS Campaign Manager is an app built on Django, the Twilio API, and a Bootstrap front-end.
Here's how to get going with your version:
- Clone the repository from GitHub - in your terminal/command line, type:
$ git clone https://github.com/kmjennison/sms_campaign.git
$ cd sms_campaign
-
Install dependencies.
pip install -r conf/requirements.txt
-
Set up local database.
- In our settings.py
DATABASES
settings, we've called the databasesms_campaign
with userroot
; change this to whatever database you set up. - Once you've set up a DB, migrate the tables with
python manage.py syncdb
- Set up South migrationgs by running
python manage.py schemamigration sms_main --initial
followed bypython manage.py migrate sms_main
- Configure Twilio settings.
- Sign up for a Twilio account
- Add your
TWILIO_AUTH_TOKEN
in settings.py - Change
TWILIO_ACCOUNT_SID
in settings.py
- To receive text messages, you'll need a web address to which Twilio can post data. We used Ngrok.
- Make reminder scheduling more flexible, beyond just a recurring interval
- Create custom messages per reminder (for example, if the second reminder needs a different message than the first)
- Create a customizable callback function when a user responds to a text reminder
- Make group signup form and handle authentication
- Allow groups to enter phone numbers that are authenticated to enroll recipients in a campaign
- Require Twilio API keys per group (so they can handle payment)
- Style Django admin
- Fork the repository.
- Create a branch (e.g.
my-awesome-feature
) for the work you’re going to do. - Make your awesome changes in your topic branch.
- Send a pull request from your branch to this repository.
- Try the project out yourself!
- File issues about bugs, problems, or inconsistencies you run into.
- File issues with suggestions, feature ideas, or UI mockups for improvements.
- Read through the documentation (just this README for now), and look for ways it could be improved. Click "Edit" on the file and make the changes yourself if you can!
Made with <3 by @lzecon, @oahzit, @secondbreakfast, @kmjennison, Amy King, @alysonla, & @jignab at #hackbrightforgood, May 3-4, 2014