WildSMS built for Africa's Talking Wildlife & Conservation Hackathon Kaduna Nigeria
# WildSMS πΏ
### Wildlife Awareness Platform β Powered by Africa's Talking SMS API
> Connecting rural Nigerian communities to wildlife conservation through SMS β no smartphone, no data, no barriers.
---
## Quick Start
```bash
# 1. Install dependencies
npm install
# 2. Credentials are already in .env β ready to go for sandbox testing
# 3. Start the server
npm start
# 4. Open the dashboard
open
localhost
```
---
## Project Structure
```
wildsms/
βββ server.js # Express app + cron jobs
βββ .env # Africa's Talking credentials
βββ package.json
βββ data/
β βββ content.js # All SMS stories, facts, and message templates
β βββ store.js # In-memory subscriber + report store
βββ routes/
β βββ sms.js # Inbound SMS webhook β handles all keyword flows
β βββ broadcast.js # Broadcast endpoints (fact, story, custom)
β βββ smsService.js # Africa's Talking SDK wrapper
βββ public/
βββ index.html # Dashboard UI
```
---
## SMS Keywords
| Keyword | Action |
|---------|--------|
| `JOIN` | Subscribe to WildSMS |
| `FACT` | Receive a daily wildlife fact |
| `STORY` | Start a 3-part wildlife story |
| `MORE` | Continue the current story |
| `REPORT POACH` | Report illegal hunting |
| `REPORT FIRE` | Report a forest fire |
| `REPORT TRAP` | Report a snare/trap found |
| `REPORT TRADE` | Report illegal wildlife sale |
| `STOP` | Unsubscribe |
| `HELP` | Show help menu |
---
## API Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| `POST` | `/sms/inbound` | Africa's Talking webhook (inbound SMS) |
| `POST` | `/sms/delivery` | Delivery report callback |
| `POST` | `/broadcast/fact` | Trigger daily fact broadcast |
| `POST` | `/broadcast/story` | Broadcast story start to all subscribers |
| `POST` | `/broadcast/custom` | Send custom message (`{ message, phone? }`) |
| `GET` | `/api/stats` | Dashboard stats (JSON) |
| `GET` | `/api/reports` | All t β¦