Bu proje, arka planda Spring Boot (Java, Spring Data JPA, Spring Security) ve ön planda React (Vite) kullanılarak geliştirilmiş kapsamlı bir eğitim yönetim sistemidir. Uygulama; Spring Batch tabanlı asenkron CSV işleme motoru ve JWT güvenliğinin yanı sıra, sisteme yönelik siber tehditleri engellemek amacıyla ağ düzeyinde güvenlik sağlayan bir IP Bloklama (IP Management/IpBlock) modülü içerir.
| Dashboard | Login Page |
|---|---|
![]() |
![]() |
- JWT Kimlik Doğrulama:
AuthControllerveJwtServiceile güçlendirilmiş güvenli oturum açma, kayıt ve rol tabanlı (ADMIN/USER) koruma altyapısı. - Asenkron CSV Toplu İşleme:
csv_uploads/altındaki veri setlerini arka planda işleyenBatchConfigmimarisi. Başarıyla işlenen dosyalar.done, hatalı olanlar.failolarak işaretlenir veJobLogs.jsxüzerinden takip edilir. - IP Yönetimi & Güvenlik: Kötü niyetli veya yetkisiz erişim isteklerini engellemek için geliştirilen
IpAddressUtilveIpBlockRepositorykatmanı. Sistem yöneticileriIpManagement.jsxpaneli üzerinden şüpheli IP adreslerini dinamik olarak engelleyebilir. - Kapsamlı Yönetim Paneli: Kurs kataloğu, öğrenci listesi, rol yönetimi, toplu iş logları ve IP yönetimini içeren modüler arayüz.
Sistem REST mimarisi ApiController ve AuthController üzerinden doğrulanmış; JWT filtreleme mekanizmaları (JwtAuthenticationFilter) ile ağ güvenlik katmanları entegre edilerek istemci-sunucu arasındaki veri güvenliği tescillenmiştir.
controller/: Güvenlik, veri akışı ve IP engelleme isteklerini yöneten denetleyiciler.util/&repository/: IP doğrulama mantığını barındıranIpAddressUtilve veritabanı şemaları (IpBlockRepository,JobLogRepository).config/: Güvenlik yapılandırmaları (SecurityConfig), toplu iş yönetimi (BatchConfig) ve asenkron iş takipçileri (JobTracker).csv_uploads/: Sisteme yüklenen toplu veri setlerinin tutulduğu dizin.frontend/src/:IpManagement.jsx,JobLogs.jsxve modern React bileşenlerinin yer aldığı arayüz dizini.
- Java Development Kit (JDK)
- Node.js & npm
- Maven
- Veritabanı Konfigürasyonu (
application.propertiesbağlantı bilgileri)
Projeyi klonlayın ve kök dizine gidin:
git clone <repo-url># 2. Maven kullanarak projeyi çalıştırın:
./mvnw spring-boot:run# 3. Ön Yüzü (Frontend) Çalıştırma:
Ayrı bir terminal penceresinde frontend dizinine geçiş yapın, bağımlılıkları yükleyin ve geliştirici sunucusunu ayağa kaldırın
cd frontend
npm install
npm run dev👨💻 Geliştirici İletişim Ayberk Arda
Software Developer | Computer Programming, Istanbul Kültür University (İKÜ)

