Professional Drone Incident Monitoring System for European Airspace
NO SIMULATIONS! DroneWatch is a professional operations center application designed for real-time monitoring and analysis of drone incidents across European airspace. Built with a focus on operational efficiency, the application provides comprehensive incident tracking, proximity-based filtering, and AI-powered news integration.
- Interactive Leaflet map with intelligent marker clustering
- European-wide coverage with detailed incident visualization
- Professional operations center design aesthetic
- Date Range: 1-365 days historical data
- Status Filtering: Active, resolved, unconfirmed incidents
- Evidence Strength: 4-tier evidence classification system
- Proximity Analysis: 10km radius filtering around critical infrastructure
- Text Search: Real-time incident narrative and location search
- 14,217 European harbours for maritime proximity analysis
- 3,632 airports from Wikidata for aviation safety
- Military installations for security assessment
- Automated proximity detection within configurable radius
- OpenRouter API integration with multiple free models
- Real-time drone incident discovery from news sources
- Automated incident classification and geolocation
- Support for Grok-4 Fast, LLaMA 3.1, Phi-3, and more
- NO SIMULATIONS!!!!!!!
- Responsive glassmorphism UI design
- Touch-optimized controls and navigation
- Progressive Web App capabilities
- Cross-platform compatibility
- Modern web browser with JavaScript enabled
- Internet connection for map tiles and API calls
- Optional: OpenRouter API key for AI news integration
# Clone the repository
git clone https://github.com/yourusername/dronewatch.git
cd dronewatch
# Start a local web server
python3 -m http.server 8081
# Or use any static server
npx serve -p 8081Open your browser and navigate to: http://localhost:8081
- Frontend: Vanilla JavaScript (ES6+), HTML5, CSS3
- Mapping: Leaflet.js with marker clustering plugin
- Data Format: GeoJSON for geographic features
- AI Integration: OpenRouter API with multiple model support
- Deployment: Static files - no build process required
dronewatch/
βββ index.html # Single-page application
βββ incidents.json # Sample incident data
βββ data/assets/ # Infrastructure data
β βββ harbours.geojson # European harbours (14K+)
β βββ airports_wikidata.geojson # Airport data (3K+)
β βββ military.geojson # Military installations
βββ tools/ # Data management utilities
β βββ download_manager.py # Infrastructure downloader
β βββ alternative_sources.py # Backup data sources
β βββ cached_downloads.py # Caching system
βββ README.md # This file
βββ CLAUDE.md # Technical documentation
{
"id": "rss-eddf-2025-09-25-vf7h5z",
"first_seen_utc": "2025-09-25T19:35:00.000Z",
"asset": {
"type": "airport",
"name": "Frankfurt Airport",
"iata": "FRA",
"icao": "EDDF",
"lat": 50.0264,
"lon": 8.5431
},
"incident": {
"category": "sighting",
"status": "resolved",
"duration_min": 103,
"narrative": "Detailed incident description"
},
"evidence": {
"strength": 2,
"attribution": "suspected",
"sources": [...]
},
"scores": {
"severity": 3,
"risk_radius_m": 4500
}
}To enable AI-powered news integration, add your OpenRouter API key:
const AI_CONFIG = {
OPENROUTER_API_KEY: 'sk-or-v1-your-api-key-here',
FREE_MODELS: [
'x-ai/grok-4-fast:free',
'microsoft/phi-3-mini-128k-instruct:free',
'meta-llama/llama-3.1-8b-instruct:free'
]
};const DEFAULT_CENTER = [54.5, 15.0]; // Central Europe
const DEFAULT_ZOOM = 6;
const CLUSTER_RADIUS = 80;- Glassmorphism Design: Modern translucent interfaces
- Monospace Typography:
Fira Codefor operational clarity - Dark Theme: Optimized for extended operational use
- Responsive Layout: CSS Grid with mobile-first approach
--primary: #1a1a2e /* Dark navy background */
--accent: #0f3460 /* Blue operational accents */
--focus: #e94560 /* Critical alert red */
--success: #27ae60 /* Operational success */
--text: #eee /* High contrast text */- Open DroneWatch in your browser
- View current incidents on the European map
- Use date range slider to adjust time window
- Filter by incident status and evidence strength
- Enable proximity filters for airports, harbours, or military bases
- View only incidents within 10km of critical infrastructure
- Analyze patterns and potential security implications
- Click the "π€ AI News" button in the header
- System fetches latest drone incidents from news sources
- New incidents are automatically added to the map
- AI-generated incidents are marked with special tags
# No build process required - edit index.html directly
# Use browser dev tools for debugging
# Hot reload with VS Code Live Server extension- UI Components: Add HTML in the appropriate section
- Styling: Use CSS custom properties for consistency
- JavaScript: Follow existing patterns and state management
- Data Sources: Update tools/ scripts for new data integration
- Cross-browser compatibility (Chrome, Firefox, Safari, Edge)
- Mobile responsiveness testing
- Console error monitoring
- Performance validation with large datasets
- Vercel:
vercel --prod - Netlify: Drag & drop deployment
- GitHub Pages: Enable in repository settings
- AWS S3: Static website hosting with CloudFront
- HTTPS recommended for geolocation features
- CORS headers for external API integration
- Gzip compression for optimal performance
No incidents displayed
- Check browser console for errors
- Verify
incidents.jsonis accessible - Adjust date range filter (default: 7 days)
Map not loading
- Ensure internet connection for map tiles
- Check for JavaScript errors
- Verify container dimensions
AI integration failing
- Validate OpenRouter API key
- Check CORS and HTTPS requirements
- Monitor rate limits
- CLAUDE.md: Comprehensive technical documentation
- Tools Documentation: Data management and infrastructure tools
- Browser Dev Tools: Enable console logging for debugging
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- ES6+ JavaScript features
- Consistent 2-space indentation
- Descriptive naming conventions
- Performance-conscious implementations
- Mobile-first responsive design
This project is licensed under the MIT License - see the LICENSE file for details.
- Leaflet.js: Excellent open-source mapping library
- OpenStreetMap: Community-driven map data
- OpenRouter: AI API access for news integration
- Wikidata: Comprehensive airport database
- Natural Earth Data: High-quality geographic datasets
For questions, issues, or feature requests:
- Open an issue on GitHub
- Check existing documentation
- Review console logs for debugging information
DroneWatch - Maintaining situational awareness in European airspace through professional-grade drone incident monitoring.