Real-time conflict prediction system that would have detected the Ukraine invasion 72 hours before it happened.
Built for SCSP National Security Hackathon 2026 (Wargaming Track)
Demo: https://github.com/user-attachments/assets/72deac0a-56df-4e25-acbd-76c621f63021
Intelligence agencies react to conflicts after they start. The 2022 Ukraine invasion caught the world by surprise โ not because the signals weren't there, but because no one was fusing them together in real-time.
Decision-makers need early warning systems that detect threats before escalation.
SENTINEL fuses 5 independent data sources into a single 0-100 threat score, updated every 30 minutes:
| Signal | Source | What It Detects |
|---|---|---|
| ๐ฐ News | GDELT (65,000 sources) | Media coverage spikes, diplomatic tensions |
| OpenSky Network | Military flights, troop transports, evacuations | |
| ๐ Seismic | USGS | Nuclear tests, artillery barrages, underground activity |
| ๐ Stocks | Yahoo Finance | Defense contractor insider trading patterns |
| โ๏ธ Conflicts | ACLED | Ground truth of battles, explosions, territorial control |
Result: When multiple signals align โ Early warning before escalation
SENTINEL was tested against 4 major conflicts:
| Conflict | Alert Would Fire | Actual Event | Warning Window |
|---|---|---|---|
| ๐บ๐ฆ Ukraine 2022 | Feb 21, 2022 | Feb 24, 2022 | 72 hours |
| ๐ฎ๐ณ Kargil War 1999 | May 1999 | June 1999 | 30 days |
| ๐ฎ๐ถ Gulf War 1990 | Jul 31, 1990 | Aug 2, 1990 | 48 hours |
| ๐ฎ๐ฑ Israel-Iran 2024 | Tracked escalation in real-time | Oct 2024 | Real-time |
- Interactive world map with 10+ monitored regions
- Color-coded threat levels (NORMAL โ ELEVATED โ HIGH โ CRITICAL)
- Real-time updates every 30 minutes
- Conflict Brief Generator โ CIA-style intelligence assessments in <5 seconds (Groq + Llama 3)
- AI Advisor Chatbot โ Ask strategic questions, get answers with live threat context
- Claim Verification Engine โ Fact-check military claims by cross-referencing 5 sources
- Three probabilistic future paths: Escalation / Diplomacy / Standoff
- Percentage likelihoods based on current signals
- Recommended actions for decision-makers
- Visualize how past conflicts escalated signal-by-signal
- 4 scenarios: Ukraine 2022, Kargil 1999, Gulf War 1990, Israel-Iran 2024
- Watch the exact moment SENTINEL would have fired alerts
- Aircraft tracking with heading visualization
- News aggregation from 65,000 sources
- Signal breakdown showing each data source's contribution
| Audience | Use Case |
|---|---|
| ๐๏ธ Defense & Intelligence | Early warning for crisis response teams |
| ๐ค Humanitarian Organizations | Pre-position resources 72 hours before displacement events |
| ๐ฐ Journalists & OSINT | Verify claims in real-time, track conflicts as they develop |
| ๐ Conflict Researchers | Validate prediction models, study escalation patterns |
| ๐ข Corporations | Supply chain disruption forecasting, geopolitical risk assessment |
Backend: Python 3.11 โข Flask โข APScheduler
Frontend: React 18 โข Leaflet.js โข Recharts โข Axios
AI: Groq API (Llama 3 - 70B parameters)
Data: GDELT โข OpenSky โข USGS โข Yahoo Finance โข ACLED
Total Cost: $0.00 (all free APIs)
- Python 3.11+
- Node.js 18+
- Git
# Clone repository
git clone https://github.com/eshanth23/sentinel.git
cd sentinel
# Backend setup
cd backend
python -m venv venv
venv\Scripts\activate # Windows | source venv/bin/activate (Mac/Linux)
pip install -r requirements.txt
# Frontend setup
cd ../frontend
npm installTerminal 1 - Backend:
cd backend
venv\Scripts\activate
python api.pyโ Runs on http://localhost:5000
Terminal 2 - Frontend:
cd frontend
npm startโ Opens http://localhost:3000
Optional - Fresh Data Pull:
cd backend
python scheduler.pyโ Updates cache with live data (2-3 min)
| Region | Score | Level | Top Signals |
|---|---|---|---|
| ๐ด Israel-Gaza-Iran | 80/100 | CRITICAL | News: 28/30, ACLED: 17/20 |
| ๐ด Myanmar | 75/100 | CRITICAL | ACLED: 20/20, Flights: 20/20 |
| ๐ Ukraine-Russia | 72/100 | HIGH | News: 27/30, ACLED: 18/20 |
| ๐ Taiwan-China | 68/100 | HIGH | Flights: 20/20, News: 22/30 |
Updated: May 2026
SENTINEL follows a three-layer design:
Runs every 30 minutes or on-demand. Calls 5 APIs for 10 global regions, calculates threat scores (0-100), and saves results to threat_cache.json.
Purpose: Collect and process raw intelligence signals
Flask server on localhost:5000. Loads cached data and serves it to the frontend. Provides AI endpoints for conflict briefs, chatbot, and claim verification.
Purpose: Expose data and AI features via REST API
React application on localhost:3000. Displays interactive map, visualizations, AI tools, and historical replays. Reads all data from the backend API.
Purpose: User interface for threat monitoring and analysis
Data Flow: External APIs โ Scheduler โ Cache โ Backend โ Frontend
Design Benefits:
- โ Resilient (cache prevents demo failures)
- โ Fast (no live API delays)
- โ Cost-effective (stays in free tiers)
- โ Scalable (deploy layers separately)
Data Flow: External APIs โ Scheduler โ Cache โ Backend โ Frontend
Why This Design?
โ
Resilient โ Cache prevents API failures during demos
โ
Fast โ Zero latency for UI interactions
โ
Cost-effective โ Minimizes API calls, stays in free tiers
โ
Scalable โ Each layer can be deployed independently
| API | Coverage | Update Frequency | Cost |
|---|---|---|---|
| GDELT | 65,000 news sources, 100+ languages | Real-time | Free |
| OpenSky | 4,000+ ADS-B receivers worldwide | Real-time | Free |
| USGS | Global seismic sensors (mag 2.5+) | Real-time | Free |
| Yahoo Finance | Top 5 defense contractors | Daily | Free |
| ACLED | 200+ researchers, 50+ countries | Weekly | Free |
| Groq | Llama 3 (70B params) | On-demand | Free (14.4K/day) |
- Timeline: 7 days (April 17-24, 2026)
- Prior experience: Zero coding knowledge
- Learning: React + Flask from documentation while building
- Team: Solo entry
- Hackathon: SCSP National Security Hackathon 2026 (Wargaming Track)
| Existing Systems | SENTINEL |
|---|---|
| โ Single-signal (news OR satellite) | โ Multi-signal fusion (5 sources) |
| โ Expensive ($millions) | โ Free forever ($0.00) |
| โ Black-box AI | โ Explainable (shows signal breakdown) |
| โ Reactive (post-event) | โ Predictive (72-hour window) |
| โ Proprietary | โ Open source |
- Satellite imagery integration (Sentinel Hub API)
- SMS/email alerts for threshold crossings
- Expand to 50+ monitored regions
- Historical database (20+ years of conflicts)
- Mobile app (iOS/Android)
- Machine learning optimization of weights
- Change detection algorithms (troop buildup visualization)
Contributions welcome! Areas where help is needed:
- Academic validation: Test against more historical conflicts
- Data science: Optimize scoring thresholds via regression analysis
- UI/UX: Improve dashboard design and user experience
- DevOps: Containerization (Docker), CI/CD pipelines
- Documentation: Tutorials, API docs, video guides
Open an issue or PR to get started.
Free to use, modify, and deploy for any purpose.
Eshanth Kumar Lal Das
- GitHub: @eshanth23
- Repository: github.com/eshanth23/sentinel
- Email: [Your email here]
Seeking:
- โ Expert feedback on methodology
- โ Academic validation partnerships
- โ NGO/Think Tank collaboration
- โ Real-world deployment opportunities
Built by one student. Runs for free. Built for everyone.