Git Product home page Git Product logo

sms_campaign's Introduction

SMS Campaign Manager

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).

screen shot 2014-05-04 at 11 06 27 am

SMS Campaign Manager is an app built on Django, the Twilio API, and a Bootstrap front-end.

Set Up

Here's how to get going with your version:

  1. Clone the repository from GitHub - in your terminal/command line, type:

$ git clone https://github.com/kmjennison/sms_campaign.git

$ cd sms_campaign

  1. Install dependencies. pip install -r conf/requirements.txt

  2. Set up local database.

  • In our settings.py DATABASES settings, we've called the database sms_campaign with user root; 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 by python manage.py migrate sms_main
  1. Configure Twilio settings.
  • Sign up for a Twilio account
  • Add your TWILIO_AUTH_TOKEN in settings.py
  • Change TWILIO_ACCOUNT_SID in settings.py
  1. To receive text messages, you'll need a web address to which Twilio can post data. We used Ngrok.

TODO

  • 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

Contributing

Contributing code

  • 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.

Other ways to contribute

  • 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!

Authors

Made with <3 by @lzecon, @oahzit, @secondbreakfast, @kmjennison, Amy King, @alysonla, & @jignab at #hackbrightforgood, May 3-4, 2014

sms_campaign's People

Contributors

alysonla avatar jignab avatar kmjennison avatar lzecon avatar oahzit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

sms_campaign's Issues

Django Setup

Set up django and write code to schedule reminders

Enrollment via Txt

Allow a care worker to enroll their sms campaign via text message

TODO:

  • Figure out the Twilio API
  • Add to code base

Mockup

Make a front-end mock up in Bootstrap

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.