Mobil uygulama ve admin panel
KadroBul
Kamu personel alım ilanlarını adayın profiline göre karşılaştıran Android uygulaması ve ilanları yayınlamak için geliştirdiğim admin panel.
Proje arayüzü

Profilime göre: profille eşleşen ilanlar, son başvuruya kalan gün ve temel kriter.1 / 9
Genel bakış
KadroBul, kamu personel alım ilanlarını adayın profil bilgileriyle karşılaştıran bir Android uygulamasıdır. Aday öğrenim, sınav puanı ve diğer bilgilerini girer; uygulama her kadronun şartlarını bu bilgilerle kontrol ederek hangi kadroları incelemesi gerektiğini gösterir.
Uygulamanın yanında ilanları yayınlamak için ayrı bir admin panel geliştirdim: ilan metni yapıştırılır, yapay zeka (Gemini) taslağı hazırlar; ben kaynakla karşılaştırıp düzelttikten sonra yayınlarım.
Neler yaptım
Üç durumlu eşleştirme
Eşleştirme kadro bazında yapılır. Şart sağlanıyorsa yeşil tik, bilgi girilmediği için kontrol edilemiyorsa sarı soru işareti gösterilir; aday şartı açıkça karşılamıyorsa kadro elenir. Boş bırakılan bilgi ilanı gizlemez. Öğrenim alternatifleri (VEYA) ve ayrı şartlar (VE) ayrı ele alınır.
Admin panel ve yapay zeka taslağı
İlan metni ya da PDF/görsel yüklenir, Gemini ilan ve kadro taslağını çıkarır. Taslak yalnız kaynak metindeki bilgiyi içerir; bulunmayan alanlar boş kalıp uyarı gösterir. Yayından önce taslak kaynakla karşılaştırılıp insan tarafından kontrol edilir; ilan ve kadrolar tek işlemde kaydedilir.
Mimari
Kimlik, kişisel profil ve eşleştirme Supabase'de; herkese açık ilan içeriği Cloudflare Worker ve D1 üzerinden dağıtılır. Mobil uygulama Drift (SQLite) ile yerel önbellek tutar.
Gizlilik ve hesap
Kayıt zorunlu değil: uygulama anonim kimlikle çalışır, isteğe bağlı olarak Google hesabı bağlanabilir. Kişisel profil bilgisi içerik dağıtım katmanına gönderilmez. Hesap ve verileri kalıcı silme uygulamadan ve web üzerinden yapılabilir; kaydedilen ilanlar cihazda saklanır.
Test
Eşleştirme kuralları, admin panel doğrulamaları ve mobil ekranlar otomatik testlerle kontrol edilir (mobilde Flutter testleri, admin panelde birim testleri).
Mimari
- Gemini → Admin panel: ilan taslağı
- Admin panel → Supabase: ilan kaydı
- Admin panel → Cloudflare Worker + D1: herkese açık içerik eşitleme
- Cloudflare Worker + D1 → Mobil uygulama: ilan içeriği
- Mobil uygulama ⇄ Supabase: kimlik, profil, eşleştirme
- Kişisel profil Cloudflare'a gönderilmez.
Teknolojiler
Mobil
- FlutterAndroid uygulaması
- DartUygulama dili
- RiverpodDurum yönetimi
- GoRouterYönlendirme
- Drift + SQLiteYerel önbellek
- Google Sign-Inİsteğe bağlı Google hesabı bağlama
Admin panel
- Next.jsAdmin panel
- ReactArayüz
- TypeScriptTip güvenli kod
- Tailwind CSSStil
- Geminiİlan taslağı çıkarma
Altyapı
- SupabaseKimlik, kişisel profil, ilan verisi, sunucuda eşleştirme, Edge Function
- PostgreSQLSupabase veritabanı ve satır düzeyi güvenlik
- Cloudflare Workers + D1Herkese açık ilan içeriği
- Cloudflare PagesGizlilik ve hesap silme sayfaları







