author | date | |
---|---|---|
Abdelrahman Farid |
2022-09-09 |
Create a smart wallet system platform in C++ on Linux. Clients should be able to submit their info to the bank system and do transactions on their accounts.
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j
./build/bin/Debug/Server-App &
./build/bin/Debug/Client-App &
- Deposit/Withdrawal/Updating Info are undoable
- No negative deposit/withdrawal
- Server persists its data on disk, and loads it on startup
- Clients have to login using their ID or register a new account
- Undo/redo works similar to text editors:
- Undo until the first event is undone
- Redo until the last event is redone
- Adding an event in the middle of an undo sequence begins another sequence from that point on
- Fill personal info (name, age, national ID, ...)
- Deposit money to their account
- Withdraw money from their account
- Get the amount of money they have in their account from server
- Send transaction to server
- (BONUS) Undo/redo a transaction communicated to the server ✅
- Receive client info
- Auto-generate account ID for new clients ($0 initial balance)
- Save received info
- Display candidate info
- Status bar showing client name
- Multi-line text box
- Log file of all transactions done
- Process transaction on client account
- Send amount of money to client
- (BONUS) Analyze clients info, show statistics and graphs of all accounts ✅
- (BONUS) Undo/redo transaction when requested from client ✅
/thirdparty
Third-party libraries used/GUI
Windowing and UI module/Smart-Wallet-System
Main library, contains core logic + a TCP module/Client-App
Client application/Server-App
Server application