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.

🎯 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
🚀 Technologie i biblioteki
- Java 21
- PostgreSQL
- JOOQ
- JavaFX (3D)
- JUnit
- Log4j2
- Gradle
- Jetty (embedded HTTP server)
📂 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
🌐 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
jakubBone • Updated Mar 28, 2025