StreamSMS is a Django-based project designed to receive SMS messages sent to specific phone numbers and manage those messages via a moderation interface. Approved messages are then published via an RSS feed which can be used in OBS or vMix scrollers. This is a hobby project that could potentially scale to production if successful.
- Receive SMS: Integrates with Africa's Talking API to receive SMS messages.
- Moderation Interface: Provides a web interface to moderate incoming messages.
- RSS Feed: Generates an RSS feed for approved messages.
- User Authentication: Includes user login for secure access to the moderation interface.
- Python 3.x
- Django
- MySQL
- Africa's Talking API credentials
-
Clone the Repository
git clone https://github.com/yourusername/StreamSMS.git cd StreamSMS
-
Create a Virtual Environment and Activate It
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the Required Packages
pip install -r requirements.txt
-
Set Up Environment Variables
Copy and rename
.env.default
to.env
file in the project root directory. -
Set Up the Database
python manage.py migrate
-
Create a Superuser
python manage.py createsuperuser
-
Run the Development Server
python manage.py runserver
-
Set Up ngrok for Local Testing
ngrok http 8000
Copy the ngrok URL and add it to your
ALLOWED_HOSTS
andCSRF_TRUSTED_ORIGINS
in the.env
file. -
Configure Africa's Talking Webhook
- Set the webhook URL in the Africa's Talking dashboard to your ngrok URL (e.g.,
http://your-ngrok-url.ngrok-free.app/africastalking-webhook/
).
- Set the webhook URL in the Africa's Talking dashboard to your ngrok URL (e.g.,
To populate the database with dummy data for testing purposes, run the following script:
python manage.py populate_db
The project integrates with Africa's Talking API to receive SMS messages. Ensure you have your Africa's Talking credentials set in the .env file and the webhook URL configured in the Africa's Talking dashboard.
Access the moderation interface at /messages/moderate/
to view, approve, or decline messages. Approved messages will be available in the RSS feed.
Access the RSS feed of approved messages at /messages/rss/
.
StreamSMS is designed to streamline the process of receiving, moderating, and displaying SMS messages in a convenient and efficient manner. Contributions and feedback are welcome.