RapidSMS Developers Guide/Code Structure
Appearance
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