RapidSMS Developers Guide/Code Structure

From Wikibooks, open books for an open world
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

RapidSMS is an SMS framework based on Django (Python language). Yet, it is not simply a Django app.

RapidSMS Components

[edit | edit source]

Django

[edit | edit source]

RapidSMS depends on Django. You need to install Django before installing RapidSMS. This is the default Django (1.1) version.

RapidSMS (core)

[edit | edit source]

What is called the core or master branch is the original source code from RapidSMS. You can find it on github and it contains the following:

  • apps/: a collection of bundled apps (webapp, reporters, httptester)
  • lib/: RapidSMS libraries to handle SMS (Message, Connection, etc)
  • lib/backends/: Backends which is an abstraction level to the source of Messages (http for tests, gsm for use with modems, kannel for operators)
  • lib/router.py: Library handling the routing of Messages from backends to apps and return.
  • lib/parsers: libraries to be used in Apps to help message parsing
  • rapidsms: a script which includes Django's manage.py functionality used to start rapidsms router.

Third parties apps

[edit | edit source]

RapidSMS community produces a lot of apps which stays on creator's repositories. A sample setup most of the time includes one or more app from a third party repository.

Those repositories can either be forks of the core (and thus includes libraries and everything) or just repositories of apps.

Sample RapidSMS Installation

[edit | edit source]
~/sms
~/sms/apps
~/sms/apps/myapp

~/sources
~/sources/Django-1.1.1

~/sources/rapidsms
~/sources/pygsm
~/sources/third-party

Installation