Skip to content
md ~/projects/dating-app
Project archive

2026

Dating App

  • C++
  • Qt 6
  • SQLite
  • libsodium
  • Ollama
  • Claude API
  • CMake
  • Inno Setup

Overview

A desktop dating app built with C++ and Qt 6. It ranks profiles by a compatibility score based on shared interests, age and city, with like/pass matching. Each of the 100 fictional characters has its own personality and replies to chats in character using AI: Ollama running locally by default, or the user's own Claude API key. Passwords are hashed with Argon2id, the API key is encrypted with Windows DPAPI and data is stored in SQLite. Includes unit tests and a Windows installer.

01 · Problem

Deliver a dating app experience on the desktop without a network or real users: rank profiles by a meaningful compatibility score and make conversations with matches feel believable, while keeping user data such as passwords, API keys and photos safe.

02 · Solution

I wrote a 0–100 compatibility score weighted by shared interests (60), age proximity (25) and same city (15), plus a two-way preference check. Each of the 100 fictional characters has its own persona, and chat is powered by AI: Ollama and the Claude API sit behind a common interface and can be switched in the settings. Passwords are hashed with Argon2id, the API key is encrypted with Windows DPAPI and every SQL query is parameterized.

03 · Outcome

The compatibility score, password rules and database are covered by Qt Test unit tests, and a Windows installer built with Inno Setup is available on GitHub Releases. This project taught me memory ownership in C++, project setup with CMake and Qt's signal/slot system.