Giter Site home page Giter Site logo

rapidsms's Introduction

RapidSMS

RapidSMS is a free and open source framework for building interactive SMS applications, which integrates tightly with Django to provide a rich reporting interface. It was created by the Innovation Team at UNICEF, and is under development by the RapidSMS Team.

Build Status

Documentation

Features

  • A framework for processing text messages through a series of phases.
  • Support for sending and receiving messages from pluggable backends, including Kannel.
  • A swappable routing architecture with support for background processing with Celery.
  • Built-in commonly used apps in rapidsms.contrib, including registration.

Installation

RapidSMS is best installed via PyPI. To install the latest version, run:

$ pip install rapidsms

Dependencies

Documentation

Documentation on using RapidSMS is available on Read The Docs.

License

RapidSMS is released under the BSD License. See the LICENSE file for more details.

Contributing

If you think you've found a bug or are interested in contributing to this project, check out RapidSMS on Github. A full contributing guide can be found in the online documentation.

rapidsms's People

Contributors

adammck avatar copelco avatar czue avatar dmyung avatar dodumosu avatar dpoirier avatar ewheeler avatar jdsleppy avatar jthurner avatar jwishnie avatar kevgathuku avatar mejymejy avatar miclovich avatar mikeedwards avatar nicpottier avatar raphaelmerx avatar reginafcompton avatar rgaudin avatar rowenaluk avatar shanx avatar soloz avatar takinbo avatar testfufu avatar thebenedict avatar thedavidmccann avatar tobiasmcnulty avatar tsinkala avatar vkurup avatar w1l50n avatar xkmato avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rapidsms's Issues

HTTP Post

Takes in a SMS and does and http post

You can pass elements from the SMS
For example,

http://yoururl.com/SMS Sender number/param1/param2

This will allow to forward incoming sms to websites like Ushahidi

Libraries are bundled as "apps"

Some apps (forms, patterns, (others?)) provide library-like functionality, but don't have an app.py, nor a webui. Therefore, they're not apps. We should come up with a sensible place to put them.

RapidSMS apps don't have dependencies

At the moment, some apps depend on other apps to function (bednets depends upon forms and patterns), which requires users to add them all to the config. This should be managed automatically, so users don't have to be aware of the internal dependencies of apps to use them.

i18n of SMS

We should have a common/shared way of implementing i18n of SMS interactions with the users.

applying labels to issues

What's the requirement for being able to attach labels to issues? It would be great if contributors are able to label issues as they submit them.

Following Users

Add in functionality in the reporting module to allow users to follow other users. This will tie in to alerts.

i18n of Webui

We should have a common/shared way of implementing internationalization of the webui

SMPP backend

In thinking that there'll be a need to integrate directly with operators, I created an SMPP backend. How useful would this be if included in the main fork?

project lib/ directory

rapidsms manager should look in the project directory, and if a lib/ directory exists, it should be added to sys.path

Shared permissions/authentication scheme

Authentication and limited access to the UI has been implemented in three different projects. We should have a shared way or at least a defined standard that we use for this.

Initial Web UI

Per Tim's suggestion. Create a generic webui framework for the core. Right now you can install the core for the webui dependencies.

Tim's Instructions:

Here's my suggestion:

The main dashboard has different sections and areas content can be rendered into. At the top, there are three columns and below it, two major columns (we might have more than this if needed).

The webui app at the moment handles the display of the dashboard so what could be done is that for each app that needs to display content on the dashboard, that app would implement a template tag probably called dashboard. When the dashboard is requested, webui would iterate through all the apps and look for the dashboard template tag. If it is found, it will be called with the different sections available. If content is returned by the templatetag, it will be rendered in that section.

We should also be looking at standardizing the template for the web interface so that:

  1. The template can be modified with a different look and feel
  2. Apps do not have much work to do with regards to properly positioning content.

email backend

messaging backend for sending and receiving email messages

document differences django vs rapidSMS

Document both the differences and why they exist between the Django way of doing things and rapidSMS. The intent is to ease expereinced Django developers into RapidSMS and reduce confusion.

installation and setup documentation

Are there any documentation how to setup rapidSMS? what is required beside python and django? are there such information? is so can you please point me to that direction cos all I find is outdated information from sourceforge....

Installation Instructions

We need one set of install instructions for RapidSMS with pyGSM on Linux.

These instructions should also be included in an install file (or install file should at least include a link to where instructions can be found).

It would be great to document a windows install too but should not be critical for this release.

scheduling

cron-like event scheduling within rapidsms. handy for things like scheduled message blasts

pygsm

port rubygsm to python

Web UI Library

Creation of library or module for core web ui elements.

This would include things like:

  • reusable tables
  • form elements
  • tool tips

message persistence in the router sucks

commit SHA: e281204 introduces a way of persisting outgoing messages across router crashes that is, while inventive, kind of a total hack. I recommend we yank it out before release and contemplate adding something a bit more carefully engineered.

Group messaging app

  • direct messaging
  • group messaging
  • alerts
  • following
  • sms to email
  • email to sms

local settings.py

RapidSMS should look for a settings.py file in the project directory and evaluate it in the context of the generated settings module.

The router/backend/app inheritance needs refactoring and/or documenting

At the moment, we have something like:

Component(object)
  Receiver(Component)
    Router(Receiver)
    Backend(Receiver)
  App(Component)

The backends use the inherited Receiver methods as a queue of messages to send, and the router uses them to store messages that have already been received. It's confusing and undocumented.

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.