SkyFence
Monitoriza aeronaves reales sobre España con datos de adsb.fi, calcula con la fórmula de Haversine si alguna entra en una zona sensible (aeropuertos, bases militares, centrales nucleares) y envía la alerta al instante al mapa por WebSocket.
- Estado
- Terminado
- Áreas
- Backend, Frontend, DevSecOps
- Tecnologías
- Java 17
- Spring Boot 3
- PostgreSQL 16
- WebSocket / STOMP
- React 18
- Leaflet
- Resilience4j
- Bucket4j
- Prometheus + Grafana + Loki
- Docker
- GitHub Actions
- CodeQL
- SonarCloud
Demo interactiva
Capturas del proyecto real
Qué hace
- Consulta adsb.fi cada 10 segundos y evalúa cada aeronave contra todas las zonas activas
- Severidad HIGH si la aeronave está en la mitad interior del radio y MEDIUM en el resto
- Gestor de zonas en la interfaz: crear y borrar zonas con efecto inmediato
- Simulador de intrusiones con drones de prueba para validar alertas de punta a punta
- Histórico de alertas paginado y filtrable, persistido en PostgreSQL
- Rate limiting con Bucket4j, retry y circuit breaker con Resilience4j
Qué aprendí
- Pipeline de CI con tests, CodeQL, escaneo de secretos y quality gate de SonarCloud
- Observabilidad completa: métricas con Micrometer y Prometheus, logs con Loki, dashboards en Grafana
- Diseñar un servicio que no se cae cuando la API externa falla
- Tests unitarios con Mockito e integración con MockMvc
El despliegue público en Render y Vercel está parado. En esta página la demo reproduce el comportamiento con aeronaves simuladas, usando las zonas reales que el proyecto carga en su migración inicial.
Cómo está montado
- adsb.fiposiciones cada 10 s
- FlightDataServiceWebClient + Resilience4j
- GeofenceServiceHaversine por zona
- AlertServicePostgreSQL + /topic/alerts
- React + Leafletmapa y panel de alertas

