Airport Automatic Landing System
🚀

Airport Automatic Landing System

notion image

Ten projekt prezentuje rozwiązanie do automatyzacji lądowań samolotów, wykorzystujące architekturę klient‑serwer, wykrywanie kolizji oraz monitorowanie przestrzeni lotniska w czasie rzeczywistym. Dzięki wielowątkowości system obsługuje wiele samolotów równocześnie, zapobiega kolizjom i optymalizuje wykorzystanie pasów startowych.

notion image
Video preview
 

🎯 Funkcjonalności


  • Wykrywanie kolizji: Stałe monitorowanie pozycji samolotów w celu uniknięcia wypadków
  • Przydział pasa startowego: Dynamiczne przydzielanie dostępnych pasów dla lądujących samolotów
  • Komunikacja klient‑serwer: Wymiana danych między samolotami (klientami) a wieżą kontroli (serwer) przy użyciu socketów
  • Integracja z bazą danych: Logowanie wydarzeń, jak rejestracja samolotu w przestrzeni lotniska, lądowania oraz kolizje
  • Wizualizacja 3D: Interfejs JavaFX do zobrazowania ruchu samolotów
  • REST API: Sterowanie lotniskiem i pobieranie danych w czasie rzeczywistym
notion image

🚀 Technologie i biblioteki


  • Java 21
  • PostgreSQL
  • JOOQ
  • JavaFX (3D)
  • JUnit
  • Log4j2
  • Gradle
  • Jetty (embedded HTTP server)
notion image

📂 Struktura projektu


. ├── src │ ├── main/java/com/jakub/bone │ │ ├── api # REST API │ │ ├── application # Zarządzanie procesami │ │ ├── client # Logika klienta │ │ ├── config # Konfiguracja i stałe │ │ ├── core # Symulacja │ │ ├── database # Połączenie z bazą danych │ │ ├── domain # Modele domenowe │ │ ├── repository # Repozytoria bazy danych │ │ ├── server # Logika serwera │ │ ├── service # Logika biznesowa │ │ └── ui # Komponenty wizualizacji │ └── resources └── build.gradle
notion image

🌐 API


Kontrola systemu

Metoda
Endpoint
Opis
POST
/airport/start
Uruchom system
POST
/airport/pause
Wstrzymaj system
POST
/airport/resume
Wznów system
POST
/airport/stop
Zatrzymaj system

Monitorowanie

Metoda
Endpoint
Opis
GET
/airport/uptime
Czas działania systemu
GET
/airport/planes/count
Liczba samolotów w powietrzu
GET
/airport/planes/flightNumbers
Numery lotów w powietrzu
GET
/airport/planes/landed
Lista wylądowanych samolotów
GET
/airport/collisions
Informacje o przeszłych kolizjach

🔗 Repozytorium


Airport-Automatic-Landing-System
jakubBoneUpdated Mar 28, 2025