Teknik Proje Planı — Anahtar Teslim

MedicalAI Tech
Dijital Platform

Laravel 11 + React 18 · Multi-tenant SaaS · Hetzner VPS · ElevenLabs AI Çağrı · 16 Hafta MVP · Kaat Bilgi Teknolojileri tarafından geliştirilecek.

Laravel 11 React 18 + TS MySQL 8 Redis 7 ElevenLabs GPT-4o Hetzner VPS Docker Multi-tenant CI/CD
16 Hafta
MVP Süresi
~€23/ay
Altyapı
13 Modül
Toplam
700K TL
Geliştirme
01 — Sistem Mimarisi

Stack & Teknik Kararlar

Laravel 11 backend, React 18 frontend, multi-tenant shared database stratejisi.

Backend
Laravel 11 (PHP 8.3) — REST API + Queue + Scheduler
Frontend
React 18 + TypeScript + TailwindCSS + Vite
Veritabanı
MySQL 8.0 — tenant izolasyonu + MinIO dosya depolama
Cache / Queue
Redis 7 — session, cache, Laravel Horizon job queue
AI / NLP
GPT-4o API — lead skorlama, çeviri, epikriz özeti
Çağrı Sistemi
ElevenLabs Conversational AI — DE/RU/EN/AR sesli bot
Arama
Meilisearch — hasta ve lead hızlı arama/filtreleme
Web Siteleri
Next.js 14 — 3 site, 5 dil, SSR/SSG, SEO optimize
Monitoring
Sentry (hata) + UptimeRobot + Grafana (metrik)
CI/CD
GitHub Actions → SSH deploy → Caddy otomatik SSL
Multi-tenant Stratejisi: Shared DB + Global Scope
Her tablo tenant_id sütunu taşır. Laravel'in Global Scope'u tüm sorguları otomatik filtreler. MVP için ideal — veri sızıntısı riski sıfır, bakımı kolay. URL yapısı: {klinik}.medicalai.com
PHP — Multi-tenant Global Scope
// App\Models\Traits\BelongsToTenant.php
trait BelongsToTenant {
  protected static function booted(): void {
    static::addGlobalScope(new TenantScope());
    static::creating(fn($m) => $m->tenant_id ??= auth()->user()->tenant_id);
  }
}

// Patient modeli örneği — tenant_id otomatik filtreli
class Patient extends Model {
  use BelongsToTenant, SoftDeletes;
  protected $fillable = ['tenant_id', 'full_name', 'country', 'source_id'];
}
Repo Yapısı
medicalai/
├── backend/          Laravel 11 — API + Queue + Scheduler
├── frontend/         React 18 — Klinik Admin Paneli
├── patient-portal/   React 18 — Hasta self-servis (5 dil)
├── mobile/           React Native — Koordinatör uygulaması
├── landing/          Next.js 14 — 3 tanıtım sitesi
│   ├── medicalai-site/
│   ├── denistanbul-site/
│   └── urohealth-site/
├── infra/            Docker Compose + Ansible
└── docs/             API docs, ERD, wireframe
02 — Altyapı

Hetzner VPS — ~€23/ay

3 sunucu, Docker Compose, Caddy otomatik SSL. 5+ klinik için yeterli.

SunucuTip / RAMRolAylıkKurulum
APP-01 CPX21 / 4GB Laravel API + Queue Worker + Redis €7.49 Docker Compose
DB-01 CX32 / 8GB MySQL 8 + MinIO dosya depolama €11.90 Docker + backup
WEB-01 CPX11 / 2GB Caddy + 3x Landing Sitesi €3.89 Caddy + static
TOPLAM — 3 Sunucu MVP ~€23/ay Firewall ücretsiz
Docker Compose — APP-01 Servisleri
services:
  app:         # Laravel PHP-FPM 8.3
  queue:       # Laravel Horizon (job worker)
  scheduler:   # php artisan schedule:run (cron)
  redis:       # Cache + Session + Queue broker
  meilisearch: # Hasta/lead arama motoru
  caddy:       # Reverse proxy + otomatik SSL

# DB-01 ayrı sunucuda — iç ağ bağlantısı
# Hetzner Private Network: 10.0.0.x
GitHub Actions — CI/CD Pipeline
name: Deploy to Production
on:
  push:
    branches: [main]

jobs:
  deploy:
    steps:
      - name: Run Tests
        run: php artisan test --parallel

      - name: Build Frontend
        run: npm ci && npm run build

      - name: Deploy via SSH
        run: |
          rsync -av . $SERVER:/var/www/medicalai/
          ssh $SERVER "php artisan migrate --force \
            && php artisan config:cache \
            && php artisan queue:restart \
            && docker compose restart app"
03 — Modüller

13 Modül — MVP'de 8, Faz 2'de 5

Her modülün özellik listesi. Faza tıklayarak filtrele.

M1 Tenant & Kimlik Yönetimi 1 hafta
Klinik (tenant) kayıt ve onboarding akışı
Roller: Super Admin / Klinik Admin / Koordinatör / Doktor
JWT Auth + Refresh Token + 2FA (TOTP)
Subdomain: {klinik}.medicalai.com
Tenant bazlı logo, renk, dil ayarları
M2 Hasta CRM 2 hafta
Hasta kartı: demografik, sağlık geçmişi, iletişim
Lead → Aday → Onaylı → Ameliyat → Takip pipeline
Çok dilli hasta notu (TR/DE/RU/EN/AR)
Dosya yönetimi: tıbbi belgeler, görseller (MinIO)
Hasta timeline — tüm iletişim kronolojik
M3 Lead Yönetimi & Kaynak Takibi 1 hafta
Kaynaklar: Google Ads, Meta, Organik, ElevenLabs, Referral
UTM parametresi otomatik yakalama
AI lead skoru (0-100): yaş, ülke, hastalık, bütçe
Atama motoru: round-robin veya manuel
Lead dönüşüm raporu: kaynak bazlı ROI
M4 Randevu & Ameliyat Takvimi 1 hafta
Pre-op video görüşme (Jitsi Meet embed)
Ameliyat günü takvimi: doktor + ameliyathane + hasta
Hatırlatma: e-posta + SMS + WhatsApp (T-7, T-3, T-1)
iCal export — Google Calendar, Outlook uyumlu
Denistanbul lojistik bağlantısı
M5 Mesajlaşma & İletişim Merkezi 2 hafta
Unified inbox: e-posta + WhatsApp + SMS + notlar
WhatsApp Business API (Twilio veya Bird)
Şablon mesajlar — çok dilli, tenant özelleştirilebilir
Mesai dışı otomatik yanıt
ElevenLabs çağrı kaydı ve özeti inbox'a düşer
M6 Post-op Takip Modülü 1 hafta
Protokol: T+1, T+7, T+14, T+30, T+90 gün
Hasta anketi: ağrı skoru, memnuniyet, komplikasyon
Doktor epikriz taslağı + iyileşme notu
Komplikasyon alarmı → koordinatöre bildirim
Uzaktan muayene video linki
M7 Ödeme & E-fatura 1 hafta
Paket fiyat oluşturma (ameliyat + otel + transfer)
Branded teklif PDF — çok dilli
Ödeme takibi: kapora, kalan, iade
E-fatura entegrasyonu (GİB uyumlu)
Devlet desteği etiketleme: Md.11 / Md.41 / Md.27
M8 Raporlama & Dashboard 1 hafta
KPI: aylık hasta, dönüşüm, gelir, kaynak dağılımı
Lead huni raporu (başvuru → ameliyat)
Devlet desteği tahakkuk raporu → DYS CSV export
Otomatik aylık PDF raporu (e-posta ile)
Tüm raporlarda CSV / Excel export
M9 AI Lead Motor Faz 2 — H17–18
Google Ads + Meta API entegrasyonu — kampanya verisi CRM'de
GPT-4o ile yurt dışı forum/grup analizi — potansiyel hasta tespiti
UTM → lead → ameliyat tam zincir ROI raporlaması
Otomatik lead segmentasyon: ülke, hastalık, bütçe, aciliyet
M10 ElevenLabs Çağrı Botu (Tam Entegrasyon) Faz 2 — H13–14
Gelen/giden sesli çağrı — DE/RU/EN/AR dil algılama
Webhook → Laravel → GPT-4o özeti → CRM lead otomatik oluşturma
Tenant bazlı system prompt: klinik bilgisi, fiyatlar, SSS
Görüşme transkripsiyonu + sentiment analizi
M11 Hasta Portalı Faz 2 — H19
Magic link ile giriş — şifre yok, SMS/e-posta OTP
Ameliyat bilgisi, belgeler, post-op görevler
Kendi verisini JSON/PDF export edebilir (GDPR)
Mobil uyumlu PWA
Ana Tablolar — MySQL 8.0
tenants       id, slug, name, plan, settings_json, created_at
users         id, tenant_id*, role, name, email, password, lang, 2fa_secret
patients      id, tenant_id*, full_name, dob, country, lang, phone, source_id, status, score
leads         id, tenant_id*, patient_id, source, utm_json, score, assigned_to, stage
appointments  id, tenant_id*, patient_id, type, datetime, doctor_id, room, status
communications id, tenant_id*, patient_id, channel, direction, content, ai_summary
documents     id, tenant_id*, patient_id, type, path(minio), size, uploaded_by
invoices      id, tenant_id*, patient_id, amount_eur, amount_try, status, gov_md
post_op_followups id, tenant_id*, patient_id, day_offset, pain_score, complication_flag
campaigns     id, tenant_id*, platform, budget, spend, leads_count, conversions
call_logs     id, tenant_id*, patient_id, elevenlabs_session_id, transcript, sentiment

* tenant_id: Global Scope ile otomatik filtreli
04 — AI Entegrasyonu

ElevenLabs + GPT-4o

Çağrı botu → webhook → CRM zinciri. Çok dilli sesli hasta koordinasyonu.

Akış: ElevenLabs Agent → Webhook → Laravel → CRM
Web sitesinde "Şimdi Ara" butonu → ElevenLabs widget → dil algılama (DE/RU/EN/AR) → uygun ajan → görüşme biter → webhook → Laravel → GPT-4o özeti → CRM'de otomatik lead → koordinatöre anlık bildirim.
Laravel — ElevenLabs Webhook Handler
// routes/api.php
Route::post('/call-completed', CallWebhookController::class);

// CallWebhookController.php
public function __invoke(Request $request): JsonResponse
{
    $transcript = $request->input('transcript');
    $metadata   = $request->input('metadata');

    // GPT-4o ile özet çıkar
    $summary = OpenAI::chat()->create([
        'model'    => 'gpt-4o',
        'messages' => [
            ['role' => 'system', 'content' => 'Transkriptten anahtar bilgileri çıkar: hastalık, ülke, tarih tercihi, bütçe'],
            ['role' => 'user',   'content' => $transcript],
        ],
    ]);

    // CRM'e lead oluştur
    $lead = Lead::create([
        'source'     => 'elevenlabs',
        'ai_summary' => $summary,
        'score'      => LeadScorer::calculate($summary),
    ]);

    // Koordinatöre anlık bildirim
    $lead->coordinator->notify(new NewLeadNotification($lead));
}
GPT 5 Kullanım Senaryosu
Lead Skorlama — yaş, ülke, hastalık, bütçe → 0-100 skor
Otomatik Çeviri — hasta notu, teklif, e-posta → TR/DE/RU/EN/AR
Epikriz Özeti — doktor notunu hasta dostu kısa metne çevir
Kampanya Metni — ülke + branş → Google Ads başlığı + Meta metin
Çağrı Özeti — ElevenLabs transkript → anahtar bilgiler
BOT ElevenLabs Konfigürasyonu
Diller — DE, RU, EN, AR, TR otomatik algılama
System Prompt — klinik bilgisi, fiyatlar, SSS, yasak konular
Randevu — görüşme sırasında slot seç → Laravel API → takvim
Maliyet — Starter $22/ay (30 saat), Growth $99/ay (100 saat)
Tenant — her klinik kendi system prompt'u ile özelleştirilebilir
05 — Sprint Planı

16 Hafta — MVP

2 kişi: Senior Dev + Atıl. Haftalık sprint. GitHub Projects ile takip.

SprintModülGörevlerSüreKim
FAZ 1 — Temel Altyapı (Haftalar 1–4)
S1 H1–2 Altyapı Kurulum Hetzner sunucular, Docker Compose, Caddy SSL, GitHub repo + Actions CI/CD, domain DNS 2 hafta Atıl
S1 H3–4 Auth & Tenant Multi-tenant Global Scope, JWT auth, roller, onboarding flow, subdomain yönlendirme 2 hafta Senior Dev
FAZ 1 — Core CRM (Haftalar 5–8)
S2 H5–6 Hasta CRM Hasta CRUD, MinIO dosya yükleme, lead pipeline (kanban), kaynak takibi, Meilisearch 2 hafta Senior Dev
S2 H7–8 İletişim Merkezi WhatsApp Business API, e-posta (Resend), SMS (Twilio), unified inbox, şablon sistemi 2 hafta Atıl + Junior
FAZ 1 — Takvim, Ödeme, Post-op (Haftalar 9–12)
S3 H9–10 Takvim & Randevu Ameliyat takvimi, Jitsi video görüşme, hatırlatma job'ları, iCal export 2 hafta Junior Dev
S3 H11–12 Ödeme & E-fatura Teklif PDF, ödeme takibi, GİB e-fatura, Md.11/27/41 etiketleme, DYS CSV export 2 hafta Atıl
FAZ 1 — AI, Web Siteleri, Launch (Haftalar 13–16)
S4 H13–14 ElevenLabs + GPT ElevenLabs webhook entegrasyonu, GPT-4o lead skorlama, otomatik çeviri, çağrı özeti 2 hafta Senior Dev
S4 H15 Web Siteleri 3 Next.js site: medai + denistanbul + urohealth. Çok dilli, SEO, ElevenLabs widget, form → CRM 1 hafta Atıl + Junior
S4 H16 🚀 Launch E2E testler, Sentry kurulum, UptimeRobot, performans optimizasyonu, ilk klinik onboarding 1 hafta Tüm Ekip
06 — Maliyet

Geliştirme + Altyapı + API'ler

Geliştirme maliyeti TÜSEB hibesiyle karşılanır. Altyapı ~€23/ay'dan başlar.

Geliştirme (Tek Seferlik) ~700.000 TL
Altyapı kurulum + DevOps~50K TL
Auth + Tenant sistemi~50K TL
Hasta CRM + Lead yönetimi~100K TL
İletişim merkezi~100K TL
Takvim + Randevu~50K TL
Ödeme + E-fatura~50K TL
ElevenLabs + GPT~100K TL
3x Web Sitesi~50K TL
Faz 2 Modülleri~100K TL
TOPLAM ~700.000 TL
TÜSEB 5–7.9M TL hibe → geliştirme maliyeti sıfırlanır
Aylık Operasyonel ~€155 + ~$92
Hetzner APP-01€7.49
Hetzner DB-01€11.90
Hetzner WEB-01€3.89
Cloudflare CDN€0
ElevenLabs Starter$22
OpenAI GPT-4o API~$50
Twilio / WhatsApp~$20
Yıllık Toplam ~270.000 TL/yıl
// İnteraktif Maliyet Simülatörü
5 klinik
Starter — 30 saat ($22)
~500 çağrı
~500 mesaj
Altyapı
€23/ay
API & Servisler
~$72/ay
SaaS Geliri
€11.500/ay
07 — Güvenlik & Uyum

KVKK + GDPR + Teknik Önlemler

Sağlık verisi özel kategori. Her katmanda güvenlik.

🔐
TLS 1.3 Zorunlu
Caddy otomatik SSL. Eski protokol yok. HSTS header aktif.
🏠
DB İç Ağ
MySQL yalnızca Hetzner Private Network üzerinden erişilebilir. İnternet'e kapalı.
🔗
Presigned URL
MinIO dosya erişimi sadece imzalı URL ile (1 saat geçerli). Direkt erişim yok.
Rate Limiting
/api/leads → 10 istek/dk/IP. Login → 5 deneme/dk. Laravel throttle middleware.
🛡️
2FA Zorunlu
Doktor ve admin rolleri için TOTP 2FA zorunlu. Koordinatörler opsiyonel.
📋
Audit Log
Her hasta kaydı değişikliği loglanır: kim, ne, ne zaman. Değiştirilemez.
🇩🇪
GDPR (Almanya)
Cookie banner, opt-in pazarlama, veri saklama max 2 yıl, silme hakkı API endpoint.
🇹🇷
KVKK Uyum
VERBİS kaydı, çift onay formu, veri işleme kaydı, 72 saat ihlal bildirim planı.

Risk Matrisi

RiskOlasılıkEtkiAzaltma Stratejisi
Devlet destek oranları düşerOrtaOrtaİş modeli desteğsiz de kârlı. Danışman ile oranları takip et.
AI lead motor dönüşümü düşükOrtaYüksekManuel + Google Ads ile başla. AI kanıtlandıkça devreye al.
UroHealth hukuki yapısı gecikmesiYüksekYüksekNisan toplantısında netleştir. Avukat hazır olsun.
GDPR — Almanya veri ihlaliDüşükYüksekHukuki danışman, veri işleme açık rıza, şifreli saklama.
Kur riski (€/TL)YüksekDüşükGelir € — gider TL. TL zayıflaması avantaj.
08 — Canlıya Alış

İlk Klinik Onboarding Checklist

Tamamlananları işaretle. İlerlemeyi takip et.

Tenant oluşturuldu ve subdomain yönlendirildi ({klinik}.medicalai.com)
Klinik logosu, renk paleti ve dil ayarları yapıldı
Kullanıcılar oluşturuldu (admin + koordinatör + doktor), 2FA aktif edildi
WhatsApp Business hattı bağlandı ve test mesajı gönderildi
ElevenLabs agent klinik bilgileriyle güncellendi ve test görüşmesi yapıldı
Web sitesi başvuru formu → CRM lead düşüşü test edildi
İlk hasta kaydı canlıda manuel girildi
E-fatura entegrasyonu test faturasıyla doğrulandı
DYS export raporu test verisiyle kontrol edildi
Koordinatör eğitimi tamamlandı
İlerleme 0 / 10
◆ MedicalAITech
Ana Site Dijital Plan Lead Simülatörü
Kaat Bilgi Teknolojileri · Nisan 2026 · Gizli