Vaka çalışması · Web uygulaması

Moodica

Danışanı doğru psikolog ya da psikiyatristle eşleştiren online terapi platformu.

Terapi arayan biri, uzun bir uzman listesiyle karşılaşır ve hangisinin sorununa uygun olduğunu bilemez; randevu, ödeme ve görüşme de genelde üç ayrı yerde yapılır.

Moodica anketi, eşleştirmeyi, randevuyu, ödemeyi ve görüntülü seansı veri korumasını merkeze alan tek bir platformda topluyor. Hâlâ geliştirme aşamasında ve henüz herkese açık değil.

  • 700+ otomatik birim, entegrasyon ve arayüz testi
  • 3 kullanıcı rolü: danışan, uzman, yönetici
Yıl
2026
Rol
Geliştirici, bitirme projesi
Kullanılanlar
  • C#
  • ASP.NET Core MVC
  • Entity Framework Core
  • PostgreSQL
  • SignalR
  • Docker
Bağlantılar

01

Zorluk

Veri, var olan en hassas veriler arasında: bir danışanın ruh sağlığına dair yanıtları. Platformun bunu tasarım gereği koruması, uzmanların belgelerinin doğrulanmış olması ve anket sonucunun asla teşhis gibi sunulmaması gerekiyor.

Üstüne parçalar birbirine bağlı: bir randevu bir uzmanı asla çift rezerve etmemeli, ödeme bir randevuyla eşleşmeli ve görüntülü görüşme yalnızca doğru iki kişiye, doğru zamanda açılmalı.

Kısıtlar

  • Kişisel veriler KVKK’ya uygun olmalı
  • Online terapinin yayın öncesinde hâlâ netleştirilen yasal koşulları var

02

Benim payım

  1. ASP.NET Core MVC uygulamasını PostgreSQL üzerinde Entity Framework Core ile geliştirdim; Docker ile paketledim.

  2. İki aşamalı doğrulamayı, rol bazlı yetkilendirmeyi ve anket yanıtlarının şifreli saklanmasını yazdım.

  3. Kısa bir ankete dayalı eşleştirmeyi ve sekiz örnek uzman ile beş danışan senaryosu olan demo modunu geliştirdim.

  4. Randevu takvimini, online ödemeyi ve SignalR ile canlı görüntülü seansları geliştirdim.

  5. Docker’daki gerçek bir PostgreSQL’e karşı çalışan entegrasyon testleri dahil 700’den fazla otomatik test yazdım ve GitHub Actions ile CI kurdum.

03

Temel kararlar

  1. Platform asla teşhis koymaz

    Seçim
    Anket yalnızca tarar ve yönlendirir; değerlendirme ve tedavi her zaman uzmanda kalır.
    Neden
    Ürünü dürüst tutuyor, yazılımın iddia edebileceği sınırın içinde bırakıyor ve her ekranın dilini belirliyor.
  2. Çift rezervasyonu veritabanına engellet

    Seçim
    Randevu saatleri UTC olarak tutuluyor ve bir veritabanı kuralı çakışan randevuları reddediyor.
    Neden
    Uygulama kodu yük altında ya da saat dilimlerinde yarışabilir; veritabanındaki bir kural aşılamaz.
  3. Gerçek veritabanına karşı test

    Seçim
    Entegrasyon testleri Docker’da PostgreSQL başlatıp uygulamayı HTTP ile çağırıyor.
    Neden
    Yetkilendirme, iki aşamalı doğrulama ve rıza akışları ancak uçtan uca kanıtlanır; sahte nesneler veritabanı davranışını gizlerdi.

04

Sonuçlar

Platformun büyük kısmı uçtan uca çalışıyor: anket ve eşleştirme, randevu ve iptal kuralları, e-posta hatırlatmaları, seans sonrası geri bildirim ve iadeli deneme (sandbox) ödemesi. İki kişi internet üzerinden canlı görüntülü görüşmeye de katıldı.

Henüz herkese açık değil. Yayın öncesinde kalan işler yasal (online terapi hizmetinin hangi izinle sunulacağı) ve operasyonel (barındırma ve zor ağlar için bir TURN sunucusu). Kaynak kod GitHub’da, şimdilik özel bir depoda.