Flight Management System
Uçuş operasyonları ve referans veriler için web uygulaması.
Proje hakkında
Flight Management System; havayolu, havalimanı, uçak ve rota kayıtlarıyla birlikte uçuş operasyonlarının yönetildiği bir web uygulamasıdır. Kullanıcılar uçuş oluşturabilir, kayıtları güncelleyebilir, uçuş durumlarını takip edebilir ve tamamlanan ya da iptal edilen uçuşları arşivden inceleyebilir. Ekranlara ve işlemlere erişim kullanıcı rolüne göre belirlenir.
Backend, Java ve Spring Boot ile geliştirilen üç servisten oluşur. Reference Manager operasyonun referans kayıtlarını, Flight Service kullanıcıları ve aktif uçuşları, Archive Service ise tamamlanan uçuşları yönetir. Servislerin ayrı veritabanları vardır. Doğrudan doğrulamalar REST çağrılarıyla, değişiklik bildirimleri Kafka üzerinden yürütülür.
Vue arayüzü Nginx üzerinden sunulur ve backend servislerine aynı proxy üzerinden erişir. Flight Service uçuş değişikliklerini WebSocket ile arayüze aktarır. Uçuş geçmişi, işlem kayıtları ve izleme bileşenleri sistemin çalışmasını takip etmek için kullanılır.
Her servis kendi veritabanına erişir. Reference Manager ve Flight Service olayları outbox üzerinden Kafka’ya gönderir; Flight Service referans olaylarını, Archive Service uçuş olaylarını tüketir. WebSocket bağlantısı da Nginx proxy üzerinden geçer. Redis ve izleme bileşenleri ortak altyapıdır.
Uygulama akışı
- Kullanıcı arayüzünden gelen istek Nginx tarafından ilgili Spring servisine yönlendirilir; kimlik ve işlem yetkisi backend’de kontrol edilir.
- Flight Service, referans bilgilerini ve uçak takvimini doğrular; uçuş değişikliği ile olay kaydını aynı transaction içinde saklar.
- Outbox yayıncısı olayı Kafka’ya iletir. Referans değişiklikleri uçuş servisine, tamamlanan veya iptal edilen uçuşlar arşiv servisine aktarılır. Arayüz ayrıca WebSocket üzerinden güncellenir.
Özellikler ve teknolojiler
01Operasyon
Uçuş ve referans kayıtları; CSV ile toplu aktarım, saat dilimi ve uçak takvim kontrolleri, otomatik durum geçişleri.
Java 17 · Spring Boot · Spring Data JPA · MySQL · PostgreSQL
02Güvenlik ve kayıtlar
JWT ve rol bazlı erişim, token iptali, uçuş versiyonları ve kullanıcı aktivite kayıtları.
Spring Security · Redis
03Servis iletişimi
Referans değişikliklerinin aktarımı ve uçuş arşivleme; transactional outbox, tekrar deneme ve idempotent işleme.
REST · Kafka
04Web arayüzü
Operasyon ve yönetim ekranları, uçuş değişikliklerinin canlı gösterimi ve ortak proxy üzerinden erişim.
Vue 3 · WebSocket / STOMP · Nginx
05Çalıştırma ve doğrulama
Container ortamı, otomatik build / test, API belgeleri, metrikler ve dağıtık izleme.
Docker Compose · GitHub Actions · Testcontainers · OpenAPI · Prometheus · Grafana · OpenTelemetry · Tempo