2026
Dating App
- C++
- Qt 6
- SQLite
- libsodium
- Ollama
- Claude API
- CMake
- Inno Setup
Genel bakış
C++ ve Qt 6 ile yazılmış masaüstü tanışma uygulaması. Profilleri ortak ilgi alanları, yaş ve şehre göre hesaplanan bir uyum puanıyla sıralar; beğen/geç ile eşleşme yapılır. Eşleşilen 100 hayali karakterin her birinin kendi kişiliği var ve sohbete yapay zekâ ile kendi tarzında cevap veriyor: varsayılan olarak bilgisayarda çalışan Ollama, isteğe bağlı olarak kullanıcının kendi Claude API anahtarı. Şifreler Argon2id ile hash'leniyor, API anahtarı Windows DPAPI ile şifreleniyor, veriler SQLite'ta tutuluyor. Birim testleri ve Windows kurulum dosyası var.
01 · Problem
Masaüstünde, ağ ve gerçek kullanıcı olmadan bir tanışma uygulaması deneyimi sunmak: profilleri anlamlı bir uyuma göre sıralamak ve eşleşilen kişiyle inandırıcı bir sohbet sağlamak. Bunu yaparken şifre, API anahtarı ve fotoğraf gibi kullanıcı verilerini güvende tutmak gerekiyordu.
02 · Çözüm
Ortak ilgi alanı (60), yaş yakınlığı (25) ve aynı şehir (15) ağırlıklı 0–100 arası bir uyum puanı ve iki yönlü tercih kontrolü yazdım. 100 hayali karakterin her birine kişilik tanımı verip sohbeti yapay zekâya bağladım; Ollama ve Claude API ortak bir arayüzün arkasında duruyor ve ayarlardan değiştirilebiliyor. Şifreler Argon2id ile hash'leniyor, API anahtarı Windows DPAPI ile şifreleniyor ve tüm SQL sorguları parametreli.
03 · Sonuç
Uyum puanı, şifre kuralları ve veritabanı Qt Test birim testleriyle doğrulanıyor; Inno Setup ile hazırlanan kurulum dosyası GitHub Releases'tan indirilebiliyor. C++'ta bellek sahipliği, CMake ile proje kurulumu ve Qt'nin signal/slot yapısını bu projede öğrendim.