Architecture

What is RapidSMS comprised of?
The RapidSMS Architecture
Application (“App”)

An application performs one or more of the following functions:

  • Processes messages from the Router
  • Extends the data model
  • Presents UI within the WebUI

Examples:

  • Bednets: Bednet distribution supply management (message processing, model extension, UI)
  • Reporters and Groups (model extension, UI)

Note: If your code does not perform any of the above tasks, it is probably a Library, not an app.

Library

A set of code, probably in the form of a Python Module (containing Class and/or Module functions) to perform any helper, utility or domain specific functionality that can be shared.

The following items make good libraries:

  • Message parsers (keyworder, form processor, etc.)
Backends

Backends receive messages from external sources and deliver messages from RapidSMS to external sources.

External sources include:

  • GSM Handset or Modem (via Spomc backend)
  • HTTP clients: via HTTP backed
Router

A router is core code that distributes messages from Backends to apps and vice versa.

WebUI

WebUI is a Django application that presents a unified WebUI for all the installed and active apps that have UI components. Currently WebUI presents a dashboard overview and tabs for each app with a UI.

RapidSMS Tagline

RapidSMS Google Group

Join Now