You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Araç ve cihazların gerçek zamanlı takibini sağlayan backend sistemi. Java 17 ve Spring Boot 3.2 ile geliştirilmiş; WebSocket ile canlı konum akışı, GIS modülü, JWT kimlik doğrulama ve event-driven mimari içerir.
Özellikler
JWT Kimlik Doğrulama — Role bazlı yetkilendirme (ADMIN / VIEWER)
Cihaz Yönetimi — Tam CRUD işlemleri
Gerçek Zamanlı Konum Takibi — WebSocket ile canlı veri akışı
GIS Modülü:
Haversine formülü ile iki nokta arası mesafe hesabı
Heading (yön açısı) hesaplama
Belirli yarıçap içindeki cihazları bulma (radius query)
Event-Driven Mimari — Spring Events ile WebSocket broadcast
Simülasyon Sistemi — 5 saniyede bir otomatik konum üretimi (5 araç)
Harita Arayüzü — Leaflet.js ile gerçek zamanlı araç takibi
Global Exception Handling — Tutarlı hata yanıtları
CI/CD — GitHub Actions ile otomatik build ve test
Teknolojiler
Katman
Teknoloji
Dil
Java 17
Framework
Spring Boot 3.2
Güvenlik
Spring Security, JWT
ORM
Spring Data JPA / Hibernate
Veritabanı
PostgreSQL
Gerçek Zamanlı
WebSocket (STOMP)
Frontend
Leaflet.js
Test
JUnit 5, MockMvc
CI/CD
GitHub Actions
Yardımcı
Lombok, Jackson
Mimari
controller/ → REST API endpoint'leri
service/ → İş mantığı katmanı
repository/ → Veritabanı erişimi
entity/ → Veritabanı tablo sınıfları
dto/ → Request / Response nesneleri
mapper/ → Entity ↔ DTO dönüşümleri
event/ → Spring Event sınıfları
listener/ → WebSocket broadcast listener'ları
websocket/ → WebSocket konfigürasyonu
security/ → JWT filter ve konfigürasyon
simulation/ → Araç simülasyon motoru
exception/ → Global exception handling
API Endpoint'leri
Kimlik Doğrulama
Metod
Endpoint
Açıklama
POST
/api/v1/auth/register
Kullanıcı kaydı
POST
/api/v1/auth/login
Giriş, JWT token döner
Cihaz Yönetimi
Metod
Endpoint
Açıklama
POST
/api/v1/devices
Yeni cihaz ekle
GET
/api/v1/devices
Tüm cihazları listele
GET
/api/v1/devices/{id}
ID ile cihaz getir
PUT
/api/v1/devices/{id}
Cihaz güncelle
DELETE
/api/v1/devices/{id}
Cihaz sil
Konum Takibi
Metod
Endpoint
Açıklama
POST
/api/v1/locations
Konum kaydı ekle
GET
/api/v1/locations/device/{id}
Cihazın konum geçmişi
GET
/api/v1/locations/device/{id}/latest
Son konum
Analitik
Metod
Endpoint
Açıklama
GET
/api/v1/analytics/distance
İki nokta arası mesafe
GET
/api/v1/analytics/nearby
Yarıçap içindeki cihazlar
WebSocket
Endpoint
Açıklama
ws://host/ws
WebSocket bağlantı noktası
/topic/locations
Canlı konum güncellemeleri
Testler
JUnit 5 ile yazılmış 19 birim ve entegrasyon testi.
Test Sınıfı
Tür
Ne Test Ediyor
DeviceDaoTest
Repository
Kaydetme, duplicate kod, findByCode, existsByCode, durum güncelleme
LocationDaoTest
Repository
Konum kaydetme, cihaza göre listeleme, son konum bulma
Uygulama başladığında 5 araç otomatik oluşturulur ve her 5 saniyede bir konum günceller. Harita arayüzünden gerçek zamanlı takip edebilirsiniz.
English
Project Description
Real-time vehicle and device tracking backend system built with Java 17 and Spring Boot 3.2. Features live location streaming via WebSocket, GIS module, JWT authentication, and event-driven architecture.