# Rwanda MCI Surveillance System v2
## Automated Historical + Real-Time Mass Casualty Incident Monitoring
---
## Quick Start (Windows)
1. Double-click **START.bat** — it installs everything and launches the server
2. Open **
http://localhost:5050** in your browser
3. The system automatically scrapes historical data (2015–present) on first run
4. Every 30 minutes it refreshes with new content
---
## Files
```
mci_system/
├── app.py ← Flask server + API routes
├── database.py ← SQLite schema, dedup, helpers
├── nlp.py ← Keyword detection, severity scoring, geo-tagging
├── scraper.py ← All scraping: RSS, Google News, news sites, Twitter/Nitter
├── analytics.py ← Trends, hotspots, seasonal patterns, predictions
├── index.html ← Full dashboard (map + analytics + predictions)
├── requirements.txt
├── START.bat ← Windows one-click launcher
└── data/
└── mci_rwanda.db ← SQLite database (created automatically)
```
---
## Data Sources
| Source | Type | Notes |
|--------|------|-------|
| Google News RSS | Free | Best historical coverage, goes back years |
| The New Times Rwanda | RSS + scrape | Rwanda's main English paper |
| KT Press | RSS + scrape | Rwanda news |
| Igihe | RSS | Kinyarwanda content |
| Rwanda Broadcasting (RBA) | RSS | State broadcaster |
| ReliefWeb Rwanda | RSS | UN/NGO humanitarian reports |
| Twitter/X via Nitter | Scrape | No API key needed |
| Rwanda Today | Scrape | English news |
---
## How Incremental Scraping Works
- **First run**: Scrapes all historical data (2015–present) using year-by-year Google News queries
- **Every refresh**: Only adds NEW content — all records have a `source_id` hash (URL + title) for deduplication
- **Database never loses old data** — re-running a scrape only adds new incidents
---
## Dashboard Features
### Map
- All historical incidents plotted on Rwanda map
- Marker size scales with death count
- Colour = severity (green → red → purple)
- Filter by severity and inc …