Hekimler için mobil uygulama, yönetim paneli ve hesaplama altyapısı
Referans destekli yapay zekâyı ve TUS / DHY tercih araçlarını birleştiren hekim odaklı platform. Mobil uygulama, admin paneli, backend ve arka plan hesaplama sistemlerinde uçtan uca teknik sorumluluk üstlendim.
Referans destekli yapay zekâPrekura worker’larıOperasyon paneliİzlenebilir veri
01 / Ürün
BTM’de neler geliştirdim?
BTM, hekimlerin adli tıp kaynaklarına başvurmasına ve TUS / DHY dönemlerinde kadroları karşılaştırmasına yardımcı oluyor. Her iki deneyimi de mobil uygulamada geliştirdim; veri modellerini ve erişim kurallarını ihtiyaçlarına göre ayrı ele aldım.
Mobil uygulamanın yanında API’ları, veritabanı modellerini ve belge inceleme, resmî veri aktarımı ve hesaplama yönetimi için admin araçlarını geliştirdim. Mobil ve admin aynı backend’i kullanıyor; kullanıcıların ve yöneticilerin yetkileri ayrı tanımlanıyor.
BTM AI: referans destekli değerlendirme.
Vaka bulgularını, sohbet geçmişini ve referans dokümanı kontrollü bir LLM isteğinde birleştiren mobil sohbeti ve backend akışını geliştirdim. Erişim, sohbet sahipliği ve kullanım limitleri sunucuda kontrol ediliyor.
Gemini · Edge Functions · Mobil sohbet
Prekura: veriye dayalı tercih deneyimi.
Kadro keşfi, filtreler, harita görünümleri, geçmiş sonuçlar ve döneme özel tercih listeleri geliştirdim. TUS kadroları hastane–branş birleşimi olarak modellenirken DHY’nin farklı kura ve tercih kuralları ayrı ele alınıyor.
TUS / DHY · Geçmiş sonuçlar · Tercih yönetimi
Admin: ürünün arkasındaki yönetim araçları.
Belge inceleme, kadro yönetimi, moderasyon ve hesaplama takibi için Next.js panelini geliştirdim. Operatör kararlarını yetki kontrollü backend işlemlerine ve mobil deneyime bağladım.
Next.js · Sunucu tarafı yetkiler · Operasyon
02 / BTM AI
Referans kılavuza dayanan AI sohbeti
Gemini’yi referans dokümana ve sohbet geçmişine bağladım. Kaynağın sınırları içinde kalma, eksik bilgiyi belirtme ve belirsiz bulgularda açıklama isteme talimatları ekledim. Belge hazırlama, yetkilendirme ve kayıt işlemlerini uygulama yönetiyor.
Yanıtları parça parça göstermek için SSE akışını ve mobilde parça birleştirmeyi geliştirdim; kısmi yanıtları ve kesintileri ayrı ele aldım. Yeniden kullanım öncesi referans sürümü ve sağlayıcıdaki dosyanın geçerliliği kontrol ediliyor.
ÖSYM sonuç belgelerinin okunması ve doğrulanması
ÖSYM sonuç belgelerinde metin içeren PDF’ler doğrudan ayrıştırılıyor; taranmış içerikte Gemini ile metin çıkarılabiliyor. Ardından deterministik parser puan alanlarını yorumlayıp doğruluyor. Kaynak OCR gerektirse bile veri kuralları incelenebilir kalıyor.
BTM AI, hekimin değerlendirmesine destek olmak için referans kılavuzdaki bilgileri sunuyor. Yanıtları parça parça gösteren streaming desteğini de geliştirdim; bu özellik uygulamanın yayın ayarlarından açılabiliyor.
03 / Prekura hesaplamaları
TUS ve DHY hesaplamalarını nasıl geliştirdim?
TUS’un puan temelli yerleştirmesi ve DHY’nin kura senaryoları için ayrı motorlar geliştirdim. Yoğun hesaplamalar PostgreSQL iş kuyrukları ve Node.js worker thread’leri kullanan arka plan servislerinde çalışıyor.
Her hesaplamanın girdilerini saklıyor, aynı hesabı tekrarlayabilmek için sabit bir rastgelelik başlangıç değeri kullanıyorum. Girdi ve çıktı hash’leri, kullanılan veriyi takip etmeyi sağlıyor. TUS puanlarını yuvarlama farklarını önlemek için tamsayı olarak temsil ediyorum. Bu kontroller hesabın tekrarlanabilmesini sağlıyor; gerçek yerleştirme sonuçlarını ne kadar doğru tahmin ettiğini ise ayrıca değerlendirmek gerekiyor.
01
Toplu hesaplama
Admin’den başlatılan hesaplamalar aday, tercih ve kadro girdilerini sabitliyor. Node.js worker thread’leri TUS yerleştirmelerini veya DHY senaryolarını hesaplıyor; sonuçları aşamalı hazırlayıp tamamlanan çalışmayı yayımlıyor.
02
Tercih değişikliklerinden sonra yeniden hesaplama
Tercih ve profil değişiklikleri yeni revizyon oluşturuyor. Eski hesaplamanın yeni girdinin sonucunu ezmesini önlemek için iş sahipliği, heartbeat, yeniden deneme ve eski iş yönetimi geliştirdim. Final hesaplamalar öncelikli çalışıyor.
03
DHY senaryo hesaplamaları
Ayrı bir worker DHY’nin kura modelini uyguluyor. Hızlı girdi değişiklikleri hesaplamadan önce birleştiriliyor. Süreli iş sahipliği ve heartbeat mekanizmaları işleri koordine ediyor; final hesaplamalara öncelik veriliyor.
04
Kontrollü sonuç yayını
Shadow, pilot ve açık modlar hesaplama ile kullanıcıya yayını ayırıyor. Bildirim outbox’ı gönderim öncesi aktif dönemi, yayın modunu ve kullanıcı iznini yeniden kontrol ediyor; tekrarlı gönderimleri önlüyor ve geçersiz cihaz token’larını temizliyor.
Yerleştirme tahminleri için ayrı bir test ortamı
Farklı aday dağılımlarını denemek için ayrı bir hesaplama sistemi geliştirdim. Her denemede kullanılan model sürümünü ve sonuçları ayrı kaydettim; gerekli model dosyaları eksik veya geçersizse hesaplamanın başlamasını engelledim.
Araştırma ve test
Olasılık hesaplamalarını kullanıcıya açılmadan da çalıştırılabilecek şekilde tasarladım. Sentetik adaylarla çalışan ulusal model ise araştırma ve test amacıyla ayrı tutuluyor.
04 / Yönetim paneli
Günlük operasyonlar için yönetim paneli
Next.js admin panelini; kullanıcının belge göndermesi, mesaj şikâyet etmesi veya tercih değiştirmesi sonrasında yapılacak işler etrafında geliştirdim. İnceleme kuyrukları, filtreler, kararlar ve hesaplama detayları bu olayları yönetilebilir operasyon akışlarına dönüştürüyor.
01
Doğrulama kuyrukları
Panelde bekleyen belgeler filtrelenebiliyor, yetkili kullanıcılar belgeleri süreli bağlantılarla inceleyip kararlarını kaydedebiliyor. Sunucu, erişim vermeden önce kullanıcının yetkisini kontrol ediyor.
02
Backend’de uygulanan moderasyon
Yöneticiler şikâyet edilen yorum ve mesajları inceleyebiliyor, engellenen kullanıcıları yönetebiliyor. Engelleme kuralları backend’de de uygulanıyor.
03
Kadrolar ve hesaplama çalışmaları
Yöneticiler panelden döneme ait kadroları düzenleyebiliyor, hesaplamaların girdilerini, ilerlemesini ve sonuçlarını inceleyebiliyor. Uzun süren hesaplamalar arka plan servislerinde devam ediyor.
04
İzlenebilir değişiklikler
Önemli değişikliklerde işlemi kimin yaptığını ve ilgili alanların önceki ve sonraki değerlerini kaydediyorum. Yöneticiler bu geçmiş üzerinden alınan kararları inceleyebiliyor.
Sunucu tarafında yetkilendirme
Kullanıcı sahipliği ve satır düzeyinde veri erişimi kontrollerinin yanında rol ve işlem yetkilerini sunucuda uyguladım. Belge inceleme için süreli erişim yalnızca yetkilendirmeden sonra açılıyor; hassas operasyonlar açık kontrollerle korunuyor.
05 / Resmî veriler
Tercihleri koruyarak kadro verilerini güncelleme
Resmî kadro verisini kaynak kaydı, ayrıştırma, hazırlık, inceleme ve yayın aşamalarından geçiren aktarım ve doğrulama araçları geliştirdim. Yeni verinin tercih bağlantılarını bozmaması için mevcut kadro kimlikleri ve tarihçe korunuyor.
Kaynak özetleri, aktarım kayıtları ve doğrulama raporları yayını izlenebilir kılıyor. Onaylanan veri canlıya ulaşmadan önce script’ler ve insan kontrolü birlikte kullanılıyor.
01
Kaynağı kaydet
Resmî kaynak ve kaynağı tanımlayan bilgiler kaydedilir.
02
Ayrıştır ve hazırla
Kayıtlar inceleme için hazırlık alanına alınır.
03
İncele ve doğrula
Kayıt eşleşmeleri, toplamlar ve mevcut tercih bağlantıları kontrol edilir.
04
Yayımla
Onaylanan veriler yayımlanır ve aktarım kaydı saklanır.
3.825kadro kaydı
15.501toplam kontenjan
130. DHY dönemine ait 3.825 kadro kaydını ve toplam 15.501 kontenjan bilgisini sisteme aktardım.
06 / Mimari ve yayın
Üç uygulama. Ortak bir backend.
Mobil uygulamaReact Native / Expo
Operasyon paneliNext.js / Sunucu tarafı yetkiler
Ürün web sitesiNext.js / Hesap bağlantıları
Yetkili veri erişimi + sunucu işlemleri↓
Supabase / PostgreSQLOrtak veri, kimlik ve servis katmanı
Auth / RLS
Dosya depolama
Gerçek zamanlı veri
Edge Functions
İş kuyrukları
Uygulamanın yönettiği entegrasyonlar + arka plan hesaplamaları↓
Özet sistem mimarisi. Sentry mobil hataları raporlar; servis süreleri ve worker heartbeat kayıtları backend etkinliğini takip etmeye yardımcı olur.
Tekrarlanan ve sırası değişen abonelik bildirimleri
Tekrarlanan veya sırası değişmiş RevenueCat webhook olayları için abonelik hakkı yönetimini geliştirdim. Böylece erişim ve kullanım limitleri teslim sırası sorunlarından korunuyor. Push akışında tekilleştirme kayıtları ve cihaz token’ı temizliği kullanılıyor.
Uygulama yayınları ve bakım
EAS build’leri, OTA yapılandırması, sürüm bakımı ve Sentry entegrasyonu üzerinde çalıştım. Parser, yerleştirme motoru ve abonelik olayı testleri iş kurallarını destekliyor; worker durumları ve heartbeat kayıtları uzun süren işleri görünür kılıyor.
Node.js worker thread’leri, PostgreSQL iş kuyrukları, TUS yerleştirme, DHY Monte Carlo
Yapay zekâ ve belgeler
Gemini, referans doküman bağlamı, SSE, PDF ayrıştırma / OCR
Ürün operasyonları
RevenueCat, Expo Push, Sentry, veri aktarımı ve doğrulama araçları
BTM’de mobil uygulamayı, admin panelini, yapay zekâ entegrasyonunu ve arka plan hesaplama servislerini geliştirdim. Veri modellerini, abonelik entegrasyonunu ve sürüm bakımını da üstlendim.