HARBİS, Harran Üniversitesi web sitesindeki duyuruları anlık olarak takip eden, öğrencilerin ve akademisyenlerin bölümlerine ve ortak derslerine ait güncel gelişmeleri kaçırmamasını sağlayan akıllı bir Android mobil uygulamasıdır.
Bu proje, modern yazılım mühendisliği prensiplerine (SOLID) ve MVVM (Model-View-ViewModel) mimari kalıbına sadık kalınarak, 5 aşamalı çevik (Agile/Incremental) artırım modeli ile geliştirilmiştir.
- Dil: Kotlin
- Mimari Kalıp: MVVM (Model-View-ViewModel) & Repository Pattern
- Web Scrapping (Veri Kazıma): Jsoup (HTML Ayrıştırıcı)
- Arka Plan Zamanlayıcı: Android Jetpack WorkManager
- Yerel Hafıza ve Kalıcılık: SharedPreferences
- Arayüz Bileşenleri: ViewPager2, TabLayout, MaterialCardView, Spinner, Custom Layouts
- Güvenlik: Android Network Security Configuration (SSL/Cleartext Sınırlandırması)
Projenin sürüm geçmişi ve Git entegrasyonu, yazılım yaşam döngüsüne uygun olarak 5 bağımsız artırım dalı (branch) halinde modellenmiştir:
- Projenin paket hiyerarşisi (
model,repository,ui,worker,util) oluşturuldu. DuyuruveBolumveri modelleri (Data Classes) tanımlandı.- Android 9+ cihazlarda güvenli veri akışı için
network_security_config.xmlüzerinden Harran Üniversitesi domainine (harran.edu.tr) özel ağ güvenlik izinleri yapılandırıldı.
DuyuruRepositorysınıfı altında Jsoup kütüphanesi entegre edilerek üniversite sitelerinden dinamik HTML kazıma mekanizması (tumBolumleriGetir()) kodlandı.MainViewModelkatmanı kurularak arayüz ile veri çekme motoru asenkronLiveDatasarmalları ile birbirine bağlandı.
ViewPager2veTabLayoutkullanılarak kullanıcı dostu animasyonlu karşılama ekranları tasarlandı.- Kullanıcının bölümünü ve ortak derslerini seçebilmesi için dinamik
SpinnerveCheckBoxmekanizmaları kuruldu. - Seçilen yapılandırmaların cihaz hafızasında kalıcı tutulması için
SharedPreferencesentegrasyonu sağlandı.
- Uygulama kapalı olsa dahi arka planda 15 dakikada bir siteleri denetleyen
DuyuruWorker(WorkManager) servisi yazıldı. - Cihaz yeniden başladığında servislerin aksamaması için
BootReceiver(BroadcastReceiver) bağlandı. - Yeni bir duyuru algılandığında kullanıcıyı uyaran dinamik Android Bildirim (
NotificationHelper) mekanizması kuruldu.
- Kullanıcının anlık durumu tetiklemesini sağlayan "Şimdi Kontrol Et" (
simdiKontrolEt()) fonksiyonu eklendi. - Sistemi sıfırlayıp ilk kuruluma dönen "Seçimi Sıfırla" butonu entegre edildi.
- İnternet kesintilerinde uygulamanın çökmesini engelleyen asenkron
try-catchhata panelleri tasarlandı. AboutActivity(Hakkımızda) ekranı kodlanarak anlık bildirim izin durumları (POST_NOTIFICATIONS) dinamik denetime bağlandı.
app/src/main/java/com/example/harbis/
│
├── model/ # Veri Modelleri (Duyuru, Bolum, KullaniciAyarlari)
├── repository/ # Jsoup Veri Çekme Katmanı (DuyuruRepository)
├── ui/ # Arayüz ve ViewModel Sınıfları (MainActivity, OnboardingActivity, AboutActivity)
├── worker/ # Arka Plan Zamanlayıcı Servisleri (DuyuruWorker)
└── util/ # Yardımcı Araçlar (NotificationHelper, BootReceiver)
💡 Bu proje, sürüm kontrol kurallarına (Git-Flow) tam uyumlu olarak geliştirilmiş olup; tüm geliştirme geçmişi commit ve branch yapısı üzerinden GitHub üzerinde kronolojik olarak incelenebilir.