# mohammed-jalamneh/banksystem architecture

> Architecture diagram of the GitHub repository mohammed-jalamneh/banksystem, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mohammed-jalamneh/banksystem
- Repository: https://github.com/mohammed-jalamneh/banksystem
- Video tour (about a minute): https://gitdiagram.com/mohammed-jalamneh/banksystem/video

## Overview

This is a console banking application: a user enters through login, then uses menus to manage clients and users, perform account transactions, and access currency tools and operational records. Client and user records are persisted in text files; the sampled client model also reads and writes transfer-log records. The excerpts establish the client-management calls and persistence behavior, but not the wiring of the other menu branches, so those are represented as capabilities without speculative call edges.

Main entry points: [`C++Files/Main/clsBankClient.h`](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsBankClient.h) (Client records), [`C++Files/Main/clsManageClientsScreen.h`](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsManageClientsScreen.h) (Client menu), [`C++Files/Main/Main.cpp`](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Main.cpp) (Program entry), [`C++Files/Main/clsClientsListScreen.h`](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsClientsListScreen.h) (Client list)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application access"]
  node_main["Program entry<br/>[Main.cpp]"]
  node_login["Login screen<br/>[clsLoginScreen.h]"]
  node_mainmenu["Main menu<br/>[clsMainScreen.h]"]
end

subgraph group_clients["Client management"]
  node_manageclients["Client menu"]
  node_clientlist["Client list"]
  node_addclient["Add client"]
  node_updateclient["Update client"]
  node_deleteclient["Delete client"]
  node_findclient["Find client"]
  node_clientmodel["Client records<br/>[clsBankClient.h]"]
  node_clientsfile[("Client data<br/>[Clients.txt]")]
end

subgraph group_banking["Banking operations"]
  node_transactions["Transactions"]
  node_deposit["Deposit<br/>[clsDepositScreen.h]"]
  node_withdraw["Withdraw"]
  node_transfer["Transfer"]
  node_balances["Total balances"]
  node_transferlog[("Transfer history<br/>[TransferLog.txt]")]
end

subgraph group_admin["Users and audit"]
  node_users["User management"]
  node_usermodel["User records<br/>[clsUser.h]"]
  node_usersfile[("User data<br/>[Users.txt]")]
  node_loginlog["Login register<br/>[clsLoginRegister.h]"]
  node_loginfile[("Login records<br/>[LoginRegister.txt]")]
end

subgraph group_currency["Currency tools"]
  node_currencyhome["Currency exchange"]
  node_currencymodel["Currency records<br/>[clsCurrency.h]"]
  node_currencyfile[("Currency data<br/>[Currencies.txt]")]
  node_currencycalc["Currency calculator"]
  node_currencylist["Currency list"]
  node_currencyfind["Find currency"]
  node_currencyupdate["Update currency rate"]
end

node_operator(("Bank operator"))

node_operator -->|"starts"| node_main
node_main -->|"shows"| node_login
node_manageclients -->|"opens"| node_clientlist
node_manageclients -->|"opens"| node_addclient
node_manageclients -->|"opens"| node_deleteclient
node_manageclients -->|"opens"| node_updateclient
node_manageclients -->|"opens"| node_findclient
node_clientlist -->|"loads records"| node_clientmodel
node_addclient -->|"saves record"| node_clientmodel
node_deleteclient -->|"deletes record"| node_clientmodel
node_updateclient -->|"saves changes"| node_clientmodel
node_findclient -->|"finds record"| node_clientmodel
node_clientmodel -->|"reads/writes"| node_clientsfile
node_clientmodel -->|"reads/writes"| node_transferlog
node_usermodel -->|"reads/writes"| node_usersfile

click node_main "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Main.cpp"
click node_login "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsLoginScreen.h"
click node_mainmenu "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsMainScreen.h"
click node_manageclients "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsManageClientsScreen.h"
click node_clientlist "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsClientsListScreen.h"
click node_addclient "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsAddNewClientScreen.h"
click node_updateclient "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsUpdateClientScreen.h"
click node_deleteclient "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsDeleteClientScreen.h"
click node_findclient "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsFindClientScreen.h"
click node_clientmodel "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsBankClient.h"
click node_clientsfile "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Clients.txt"
click node_transactions "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsTransactionScreen.h"
click node_deposit "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsDepositScreen.h"
click node_withdraw "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsWithdrawScreen.h"
click node_transfer "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsTransferScreen.h"
click node_balances "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsTotalBalancesScreen.h"
click node_users "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsManageUsersScreen.h"
click node_usermodel "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsUser.h"
click node_usersfile "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Users.txt"
click node_loginlog "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsLoginRegister.h"
click node_loginfile "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/LoginRegister.txt"
click node_transferlog "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/TransferLog.txt"
click node_currencyhome "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsCurrancyExchangeMainScreen.h"
click node_currencymodel "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsCurrency.h"
click node_currencyfile "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Currencies.txt"
click node_currencycalc "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsCurrencyCalculatorScreen.h"
click node_currencylist "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsListCurrenciesScreen.h"
click node_currencyfind "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsFindCurrencyScreen.h"
click node_currencyupdate "https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsUpdateCurrencyRateScreen.h"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_login,node_mainmenu toneBlue
class node_manageclients,node_clientlist,node_addclient,node_updateclient,node_deleteclient,node_findclient,node_clientmodel,node_clientsfile toneAmber
class node_transactions,node_deposit,node_withdraw,node_transfer,node_balances,node_transferlog toneMint
class node_users,node_usermodel,node_usersfile,node_loginlog,node_loginfile toneRose
class node_currencyhome,node_currencymodel,node_currencyfile,node_currencycalc,node_currencylist,node_currencyfind,node_currencyupdate,node_operator toneIndigo
```

## Components

### Application access

- [Program entry](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Main.cpp): `C++Files/Main/Main.cpp`
- [Login screen](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsLoginScreen.h): `C++Files/Main/clsLoginScreen.h`
- [Main menu](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsMainScreen.h): `C++Files/Main/clsMainScreen.h`

### Client management

- [Client menu](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsManageClientsScreen.h): `C++Files/Main/clsManageClientsScreen.h`
- [Client list](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsClientsListScreen.h): `C++Files/Main/clsClientsListScreen.h`
- [Add client](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsAddNewClientScreen.h): `C++Files/Main/clsAddNewClientScreen.h`
- [Update client](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsUpdateClientScreen.h): `C++Files/Main/clsUpdateClientScreen.h`
- [Delete client](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsDeleteClientScreen.h): `C++Files/Main/clsDeleteClientScreen.h`
- [Find client](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsFindClientScreen.h): `C++Files/Main/clsFindClientScreen.h`
- [Client records](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsBankClient.h): `C++Files/Main/clsBankClient.h`
- [Client data](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Clients.txt): `C++Files/Main/Clients.txt`

### Banking operations

- [Transactions](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsTransactionScreen.h): `C++Files/Main/clsTransactionScreen.h`
- [Deposit](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsDepositScreen.h): `C++Files/Main/clsDepositScreen.h`
- [Withdraw](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsWithdrawScreen.h): `C++Files/Main/clsWithdrawScreen.h`
- [Transfer](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsTransferScreen.h): `C++Files/Main/clsTransferScreen.h`
- [Total balances](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsTotalBalancesScreen.h): `C++Files/Main/clsTotalBalancesScreen.h`
- [Transfer history](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/TransferLog.txt): `C++Files/Main/TransferLog.txt`

### Users and audit

- [User management](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsManageUsersScreen.h): `C++Files/Main/clsManageUsersScreen.h`
- [User records](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsUser.h): `C++Files/Main/clsUser.h`
- [User data](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Users.txt): `C++Files/Main/Users.txt`
- [Login register](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsLoginRegister.h): `C++Files/Main/clsLoginRegister.h`
- [Login records](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/LoginRegister.txt): `C++Files/Main/LoginRegister.txt`

### Currency tools

- [Currency exchange](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsCurrancyExchangeMainScreen.h): `C++Files/Main/clsCurrancyExchangeMainScreen.h`
- [Currency records](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsCurrency.h): `C++Files/Main/clsCurrency.h`
- [Currency data](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/Currencies.txt): `C++Files/Main/Currencies.txt`
- [Currency calculator](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsCurrencyCalculatorScreen.h): `C++Files/Main/clsCurrencyCalculatorScreen.h`
- [Currency list](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsListCurrenciesScreen.h): `C++Files/Main/clsListCurrenciesScreen.h`
- [Find currency](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsFindCurrencyScreen.h): `C++Files/Main/clsFindCurrencyScreen.h`
- [Update currency rate](https://github.com/mohammed-jalamneh/banksystem/blob/main/C%2B%2BFiles/Main/clsUpdateCurrencyRateScreen.h): `C++Files/Main/clsUpdateCurrencyRateScreen.h`

### Other components

- **Bank operator**

## Connections

- Bank operator → Program entry: starts
- Program entry → Login screen: shows
- Client menu → Client list: opens
- Client menu → Add client: opens
- Client menu → Delete client: opens
- Client menu → Update client: opens
- Client menu → Find client: opens
- Client list → Client records: loads records
- Add client → Client records: saves record
- Delete client → Client records: deletes record
- Update client → Client records: saves changes
- Find client → Client records: finds record
- Client records → Client data: reads/writes
- Client records → Transfer history: reads/writes
- User records → User data: reads/writes
