Digital Surveillance System for Pandemic Outbreak Monitoring (Calabar Metropolis) This is a full, working production-ready web application for real-time disease outbreak detection and monitoring.
# DSS-Calabar
Digital Surveillance System for Pandemic Outbreak Monitoring (Calabar Metropolis)
This is a full, working production-ready web application for real-time disease outbreak detection and monitoring.
## Features
- **Role-Based Access Control**: Health Workers and Administrators.
- **Real-Time Outbreak Detection**: Processes case submissions instantly. Checks both facility-level and metropolis-wide thresholds.
- **SMS & Email Alerting**: Real-time notifications via Twilio (SMS) and NodeMailer (Email).
- **Dashboard & Trends**: Live chart (Chart.js) and active alerts summary.
- **Reporting**: Advanced filtering and CSV export.
## Prerequisites
- Docker and Docker Compose
- Node.js 18+ (for local uncontainerized testing)
## Setup Instructions
1. **Clone & Configure**
Copy `.env.example` to `.env` and fill in your credentials.
```bash
cp .env.example .env
```
2. **Run with Docker**
```bash
docker-compose up --build -d
```
*Note: This spins up a MySQL container (`db`) and the Node.js application (`app`). The `init.sql` automatically creates the schema.*
3. **Seed Demo Data**
After the database is healthy (takes a few seconds), run the seed script inside the app container (or locally if you mapped localhost ports):
```bash
docker-compose exec app node seed.js
```
4. **Access the System**
Navigate to `
localhost`
- **Admin credentials**: `admin@dss.gov.ng` / `admin123`
- **Health Worker credentials**: `hw1@dss.gov.ng` / `worker123`
## SMS Notification Modes (`SMS_MODE`)
In your `.env` file, the `SMS_MODE` variable controls Twilio behavior:
- `SMS_MODE=simulate`: (Default for dev). Logs the exact SMS payload and recipient to the server console and the `Notifications` database table without calling the Twilio API. Use this to verify the outbreak detection flow.
- `SMS_MODE=live`: Calls the real Twilio API. Requires valid `TWILIO_ACCOUNT_SID`, `TWILIO_AUTH_TOKEN`, and `TWILIO_PHONE_NUMBER`.
## Email Configuration
Configure `SMTP_HOST`, `SMTP_POR …