Platform Teknik Özeti
Doktora Sor; hastaların doğrulanmış doktorlara KVKK uyumlu, uçtan-uca şifreli sorular sorabildiği, offline-first PWA tabanlı sağlık danışmanlık platformudur.
Platform Katmanları
MİMARİ ÖZETSistem Mimari Akışı ve Bileşen Dağılımı
GÜVENLİ MİMARİPWA Dağıtım & Versiyon Kontrolü
CİHAZ & SÜRÜM DENETİMİturhanarge.xyz
Aşağıdaki buton ile turhanarge.xyz üzerinde yeni bir paket (v1.0.1) yayınlanmış gibi simüle edebilirsiniz. Sistem verilerinizi yedekleyecek, teknik yükleyici arayüzünü çalıştıracak ve sürümü güncelleyecektir.
MVP Öncesi Kritik Eylemler
ACİLKullanıcı Yönetimi
Platforma kayıtlı tüm hasta ve doktorları denetleyin. KVKK/HIPAA uyumluluğu kapsamında uygunsuz içerik paylaşan, sahte beyanda bulunan veya platform kurallarını ihlal eden kullanıcıları engelleyebilir (ban) veya inceleme başlatabilirsiniz.
Kayıtlı Kullanıcı Listesi
| Ad Soyad | E-posta | Rol | Katılım Tarihi | İhlal Puanı | Durum | İşlemler |
|---|
Sistem Mimarisi
Katmanlı, serverless-first mimari. MVP Firebase ekosistemi üzerine kurulur; scale-up aşamasında AWS hibrit yapıya geçiş stratejisi tanımlanmıştır.
Yüksek Seviye Bileşen Diyagramı
İNTERAKTİF SVGMVP → Kurumsal Geçiş Matrisi
MIGRATION PATHUygulama Akışları
Platformun üç kritik akışı detaylı adım adım gösterilmektedir: Soru-Cevap, Offline Senkronizasyon ve Doktor Doğrulama.
🔄 Akış 1 — Soru Sorma & Cevap Alma
KRİTİK AKIŞ🌐 Akış 2 — Offline-First Senkronizasyon
OFFLINE SYNC| Teknoloji | Ne Zaman | Avantaj |
|---|---|---|
| IndexedDB + Dexie.js | MVP PWA | Native, sıfır dep |
| PouchDB | CouchDB sync | Otomatik sync |
| SQLite (WASM) | Kompleks sorgu | SQL syntax |
✅ Akış 3 — Doktor Doğrulama
GÜVENLİK KRİTİKverificationStatus: "pending"Veri Modeli & Şema
Firestore (NoSQL/MVP) ve PostgreSQL (scale-up) şemaları. Şifreli alanlar _enc suffix ile işaretlidir. Tüm şifreli alanlar AES-256-GCM formatındadır.
Firestore Doküman Yapıları
NOSQL · MVPVeri Saklama & Retention Politikası
KVKK ZORUNLU| Veri Tipi | Süre | Şifreleme | Silme Yöntemi | KVKK Maddesi |
|---|---|---|---|---|
| Kullanıcı Profili | Hesap silinceye dek | AES-256 at-rest | Soft delete → 30 gün → Hard delete | m.7 |
| Soru / Cevap İçeriği | 5 yıl (tıbbi kayıt) | AES-256 + TLS in-transit | Anonymization (isim silinir) | m.7, m.11 |
| Audit Logları | 5 yıl — Silinemez | AES-256 at-rest | Immutable; yalnızca arşivlenir | m.12 |
| Medya Dosyaları | Soru ile aynı | Envelope encryption (KMS) | S3 lifecycle + KMS key silme | m.7 |
| KVKK Onay Kayıtları | Süresiz | AES-256 at-rest | Silinmez — hukuki delil | m.5 |
| Session / JWT Token | Access 1s / Refresh 7g | TLS in-transit | Otomatik expiry + revocation | — |
API Referans
RESTful API — JWT RS256 Bearer token tüm endpointlerde zorunlu (public hariç). Tüm veri AES-256-GCM şifreli taşınır. Base URL: https://api.doktorasor.com/v1
Endpoint Listesi
REST API · 17 ENDPOINTHTTP Hata Kodları & Strateji
ERROR HANDLING| HTTP | Kod | Açıklama | İstemci Stratejisi |
|---|---|---|---|
400 | VALIDATION_ERROR | Eksik/hatalı alan | Alan bazlı Türkçe mesaj göster |
400 | INVALID_ENCRYPTED_PAYLOAD | Şifre format hatası | AES256GCM:: pattern yeniden kontrol et |
401 | UNAUTHORIZED | JWT eksik/süresi dolmuş | Refresh dene → başarısızsa login'e yönlendir |
403 | FORBIDDEN | Yetki yetersiz | Genel mesaj (güvenlik: detay sızdırma) |
404 | RESOURCE_NOT_FOUND | Kaynak bulunamadı | Kullanıcıya "bulunamadı" ekranı |
409 | CONFLICT | Sync çakışması | Conflict resolution UI göster |
429 | TOO_MANY_REQUESTS | Rate limit aşıldı | Retry-After header oku, exponential backoff |
500 | INTERNAL_ERROR | Sunucu hatası | CloudWatch log, PagerDuty alert, kullanıcıya genel mesaj |
503 | SERVICE_UNAVAILABLE | Bakım modu | Offline queue'ya ekle, retry on reconnect |
Güvenlik & Uyumluluk
KVKK birincil, HIPAA hazırlık ikincil hedef. Anahtar yönetim mimarisi, threat model ve uyumluluk kontrol listeleri.
Anahtar Yönetim Mimarisi
KMSHiç depolanmaz
Master Key — session memory only
AES-256-GCM ile veri şifreleme
DEK'i şifreler → şifreli DEK Firestore'da saklanır
KVKK Kontrol Listesi
MVP ÖNCESİThreat Model — 10 Senaryo
GÜVENLİK TEHDİT ANALİZİPerformans & Maliyet Analizi
Firebase ve AWS senaryoları için üç trafik seviyesinde aylık maliyet tahmini ve ölçeklenme stratejileri.
Firebase Maliyet Senaryosu
$/AYAWS Maliyet Senaryosu
$/AYBottleneck Tespit & Önlem Listesi
OPTİMİZASYON| Bottleneck | Belirti | Önlem | Aşama |
|---|---|---|---|
| Firestore hot partition | Anlık okuma spike'ları | Shard keys ile okuma dağıtımı | MVP |
| Lambda cold start | İlk istek >2s gecikme | Provisioned concurrency (5 instance) | MVP |
| Büyük medya yükleme | Upload timeout hataları | Presigned URL + S3 direct upload | MVP |
| Audit log yazma yavaşlığı | Log gecikmesi >1s | Async yazma (Pub/Sub queue) | Sprint 3 |
| N+1 sorgu problemi | DB yükü lineer artış | Batch queries, DataLoader pattern | Scale-up |
| Doktor listesi yavaş | Filtreli sorgu yavaşlığı | Redis cache (5 dk TTL) + composite index | Ay 4 |
| Sync çakışma çoğalması | Conflict sayısı artışı | Delta sync + CRDT (ileriki faz) | Ay 7+ |
Ürün Yol Haritası & Sprint Planı
12 aylık, 4 aşamalı roadmap. 2 haftalık sprint döngüsü — toplam 24 sprint. Story point bazlı önceliklendirme.
12 Aylık Gantt Görünümü
ROADMAP• Auth + JWT RS256
• KVKK onay akışı
• Audit Log servisi (kritik!)
• CI/CD pipeline
• PBKDF2 key derivation
• Soru oluşturma API
• contentHash integrity
• Rate limiting
• 4-eye admin onay akışı
• Admin paneli (temel)
• RBAC tam kapsam
• Audit log genişletme
• Disclaimer zorunlu
• FCM push bildirimi
• SendGrid e-posta
• Bildirim queue
• Service Worker + Workbox
• Sync API + pendingQueue
• Conflict resolution
• Background Sync API
• E2E testler (Playwright)
• Unit test kapsamı %80+
• Güvenlik tarama
• Yatırımcı demo akışı
Önceliklendirilmiş Backlog
BACKLOG| Öncelik | Özellik | SP | Sprint | Bağımlılık |
|---|---|---|---|---|
| 🔴 MUST | Auth + KVKK onay akışı | 8 | S1 | — |
| 🔴 MUST | Audit Log servisi (Sprint 1!) | 8 | S1 | Firebase setup |
| 🔴 MUST | AES-256-GCM WebCrypto şifreleme | 8 | S2 | Auth |
| 🔴 MUST | Soru oluşturma + cevaplama API | 13 | S2-S4 | Şifreleme |
| 🔴 MUST | Doktor doğrulama (4-eye) | 13 | S3 | Admin panel |
| 🟠 HIGH | Offline-first (IndexedDB + SW) | 21 | S5 | API hazır |
| 🟠 HIGH | FCM push bildirimi | 8 | S4 | Firebase |
| 🟠 HIGH | Medya yükleme + virüs tarama | 13 | Ay4 | Storage |
| 🟡 MED | Doktor arama (Meilisearch) | 8 | Ay5 | Scale-up |
| 🟡 MED | Puanlama sistemi | 8 | Ay5 | Cevap akışı |
| 🟢 LOW | Dark mode UI | 3 | Ay6+ | — |
| 🟢 LOW | Çoklu dil (TR/EN) | 5 | Ay6+ | — |
Risk Analizi & Mitigasyon
13 risk maddesi; teknik, regülasyon, pazar ve operasyonel kategorilerde olasılık × etki matrisi ve mitigasyon planları.