BK-System
Code on GitHub → · Blog post on this build →
The problem
Most personal projects start from code and back-fill documentation, if any gets written at all. This one inverts that: a desktop banking system (accounts, deposits, withdrawals, transfers, admin functions) built spec-first, with a full Software Requirements Specification and UML design written before implementation — including explicit security requirements (referencing the OWASP Top Ten) rather than bolted on after the fact.
What it actually is
A C++ desktop application: a Dear ImGui + SDL2 GUI talking to a MariaDB backend over the C client library, built with CMake and Conan for dependency management, with a GitHub Actions CI job building on every push. The Docs/ SRS and UML documents describe the intended full system — accounts, transactions, admin roles, audit logging.
The running application connects to MariaDB directly through the C API in main.cpp. A separate DBHandler module sketches a cleaner interface abstraction (IDBClient, a MariaDB implementation) for a future revision — not yet wired into the CMake build.
Security in practice
Connection parameters are read from environment variables, and the server refuses to start if the password isn’t set — the OWASP Top Ten section of the SRS carried through into how the app actually handles credentials.
Status
Design-complete (SRS + UML). Implementation: working GUI shell and DB connection, with the abstraction layer sketched for the next iteration.