This project simulates a traditional banking system combined with modern online banking features (similar to PayPal or Apple Pay). It was developed to practice and deepen knowledge in C++ and will later be extended with a GUI using Qt.
- C++ as the main programming language
- Python for validation and auxiliary processing
- JSON for data exchange between C++ and Python
- SQLite as the database system
- libsodium – password hashing and encryption
- datetime / date (Python) – date validation
- pycountry – automatic country code lookup
Used to install:
- libsodium
json(built-in)datetime,date(built-in)pycountry(pip install pycountry)
- SQL connector for C/C++
Main Profile
└── User Account
└── Card Information
└── Card Movements & Changes
System Profile
└── Account
└── Card Data
└── Card Movement (Transactions)
main.cpp
└── windowsBuild.bat (build script)
└── /build (compiled .exe, Python scripts, JSON files)
└── ApplicationController.cpp (controls the entire system)
└── Login / Registration
└── Two-Factor Authentication
└── menu.cpp (central controller for all classes and functions)
main.cpp
windowsBuild.bat
/build
├── main.exe
├── Python files
└── JSON files
/include
└── header files (.h)
/src
└── source files (.cpp)
- Account creation
- Profile creation
- Basic main menu
- Login / Logout
- Full 2FA integration
- Database connection
- Extended main menu
- Create bank cards (Debit, Giro, Credit)
- Deposit, withdraw, transfer
- Set and edit card limits and availability
- Standing orders
- Overdraft limit management
- Full database backend
- Qt-based graphical user interface
---