Skip to content

hpbil2903/Harbis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📱 HARBİS - Harran Üniversitesi Duyuru Bilgi Sistemi

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.


🛠️ Kullanılan Teknolojiler ve Mimari Yapı

  • 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ı)

🚀 5 Aşamalı Artırımlı Gelişme Süreci (Incremental Lifecycle)

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:

🔹 Artırım 1: Temel Mimari ve SSL Güvenlik Altyapısı

  • Projenin paket hiyerarşisi (model, repository, ui, worker, util) oluşturuldu.
  • Duyuru ve Bolum veri 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ı.

🔹 Artırım 2: Web Kazıma Motoru ve Veri Katmanı Entegrasyonu

  • DuyuruRepository sınıfı altında Jsoup kütüphanesi entegre edilerek üniversite sitelerinden dinamik HTML kazıma mekanizması (tumBolumleriGetir()) kodlandı.
  • MainViewModel katmanı kurularak arayüz ile veri çekme motoru asenkron LiveData sarmalları ile birbirine bağlandı.

🔹 Artırım 3: Tanıtım (Onboarding) ve İlk Kurulum Ekranları

  • ViewPager2 ve TabLayout kullanı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 Spinner ve CheckBox mekanizmaları kuruldu.
  • Seçilen yapılandırmaların cihaz hafızasında kalıcı tutulması için SharedPreferences entegrasyonu sağlandı.

🔹 Artırım 4: Arka Plan Servisleri ve Akıllı Bildirim Motoru

  • 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.

🔹 Artırım 5: Manuel Kontroller, Hata Yönetimi ve İzin Denetimleri

  • 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-catch hata panelleri tasarlandı.
  • AboutActivity (Hakkımızda) ekranı kodlanarak anlık bildirim izin durumları (POST_NOTIFICATIONS) dinamik denetime bağlandı.

📂 Klasör Yapısı (Project Structure)

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.

About

Harran Üniversitesi web sitesindeki duyuruları anlık takip eden, MVVM mimarisi ve 5 aşamalı artırımlı model ile geliştirilmiş akıllı Android mobil uygulaması.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages