# yuseefahmdali-jpg/bank_project architecture

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

- Interactive diagram: https://gitdiagram.com/yuseefahmdali-jpg/bank_project
- Repository: https://github.com/yuseefahmdali-jpg/bank_project

## Overview

The tree describes a console banking application with client and user administration, banking transactions, currency tools, and login/access control. The sampled OOP client screens call clsBankClient for client lookup and persistence; its client records and transfer log use local text files. The tree also contains main.cpp, whose sampled code shows a separate, simpler client-management and transaction menu using clints.txt. No README is present, and most OOP modules were not sampled, so their connections are limited to what their names and the sampled client code support.

Main entry points: [`clsBankClient.cpp`](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsBankClient.cpp) (Client model), [`main.cpp`](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/main.cpp) (Legacy menu), [`clsLoginScreen.cpp`](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsLoginScreen.cpp) (Login screen), [`clsManageUsersScreen.cpp`](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsManageUsersScreen.cpp) (User administration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_legacy["Legacy menu<br/>[main.cpp]"]
  node_oopentry["OOP entry"]
end

subgraph group_access["Login and administration"]
  node_login["Login screen<br/>[clsLoginScreen.cpp]"]
  node_global_login["Login state<br/>[GlobalLogin.cpp]"]
  node_users["User records<br/>[clsUser.cpp]"]
  node_manage_users["User administration"]
end

subgraph group_clients["Client management"]
  node_client_screens["Client screens"]
  node_add_client["Add client"]
  node_update_client["Update client"]
  node_delete_client["Delete client"]
  node_find_client["Find client"]
  node_client_model["Client model<br/>[clsBankClient.cpp]"]
  node_client_store[("Client records")]
  node_legacy_store[("Legacy client file")]
end

subgraph group_banking["Banking transactions"]
  node_transactions["Transaction menu"]
  node_deposit["Deposit"]
  node_withdraw["Withdraw"]
  node_transfer["Transfer"]
  node_balances["Balance summary"]
  node_transfer_log["Transfer history"]
  node_transfer_store[("Transfer log file")]
end

subgraph group_currency["Currency tools and shared services"]
  node_currency_menu["Currency menu"]
  node_currency_list["Currency list"]
  node_currency_model["Currency model<br/>[clsCurrency.cpp]"]
  node_currency_calc["Currency calculator"]
  node_shared["Shared screen services<br/>[clsScreen.cpp]"]
end

node_operator(("Operator"))

node_operator -->|"starts menu"| node_legacy
node_legacy -->|"reads and writes"| node_legacy_store
node_operator -->|"starts app"| node_oopentry
node_login -->|"uses login state"| node_global_login
node_manage_users -->|"manages users"| node_users
node_client_screens -->|"loads clients"| node_client_model
node_add_client -->|"checks and saves"| node_client_model
node_update_client -->|"finds and saves"| node_client_model
node_delete_client -->|"finds and deletes"| node_client_model
node_find_client -->|"checks and finds"| node_client_model
node_client_model -->|"reads and writes"| node_client_store
node_transfer_store -->|"supplies records"| node_transfer_log

click node_legacy "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/main.cpp"
click node_oopentry "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/myselution_oop_c%2B%2B.cpp"
click node_login "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsLoginScreen.cpp"
click node_global_login "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/GlobalLogin.cpp"
click node_users "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsUser.cpp"
click node_manage_users "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsManageUsersScreen.cpp"
click node_client_screens "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsClientListScreen.cpp"
click node_add_client "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsAddNewClientScreen.cpp"
click node_update_client "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsUpdateClientScreen.cpp"
click node_delete_client "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsDeleteClientScreen.h"
click node_find_client "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsFindClientScreen.cpp"
click node_client_model "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsBankClient.cpp"
click node_transactions "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsTransactionsScreen.cpp"
click node_deposit "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsDepositScreen.cpp"
click node_withdraw "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsWithdrawScreen.cpp"
click node_transfer "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsTransferScreen.cpp"
click node_balances "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsTotalBalancesScreen.cpp"
click node_transfer_log "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsTransferLogScreen.cpp"
click node_currency_menu "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsCurrancyMainScreen.cpp"
click node_currency_list "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsCurrenciesListScreen.cpp"
click node_currency_model "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsCurrency.cpp"
click node_currency_calc "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsCalculatorCurrancyScreen.cpp"
click node_shared "https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsScreen.cpp"

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_legacy,node_oopentry toneBlue
class node_login,node_global_login,node_users,node_manage_users toneAmber
class node_client_screens,node_add_client,node_update_client,node_delete_client,node_find_client,node_client_model,node_client_store,node_legacy_store toneMint
class node_transactions,node_deposit,node_withdraw,node_transfer,node_balances,node_transfer_log,node_transfer_store toneRose
class node_currency_menu,node_currency_list,node_currency_model,node_currency_calc,node_shared,node_operator toneIndigo
```

## Components

### Application entry

- [Legacy menu](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/main.cpp): `main.cpp`
- [OOP entry](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/myselution_oop_c%2B%2B.cpp): `myselution_oop_c++.cpp`

### Login and administration

- [Login screen](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsLoginScreen.cpp): `clsLoginScreen.cpp`
- [Login state](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/GlobalLogin.cpp): `GlobalLogin.cpp`
- [User records](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsUser.cpp): `clsUser.cpp`
- [User administration](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsManageUsersScreen.cpp): `clsManageUsersScreen.cpp`

### Client management

- [Client screens](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsClientListScreen.cpp): `clsClientListScreen.cpp`
- [Add client](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsAddNewClientScreen.cpp): `clsAddNewClientScreen.cpp`
- [Update client](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsUpdateClientScreen.cpp): `clsUpdateClientScreen.cpp`
- [Delete client](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsDeleteClientScreen.h): `clsDeleteClientScreen.h`
- [Find client](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsFindClientScreen.cpp): `clsFindClientScreen.cpp`
- [Client model](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsBankClient.cpp): `clsBankClient.cpp`
- **Client records**
- **Legacy client file**

### Banking transactions

- [Transaction menu](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsTransactionsScreen.cpp): `clsTransactionsScreen.cpp`
- [Deposit](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsDepositScreen.cpp): `clsDepositScreen.cpp`
- [Withdraw](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsWithdrawScreen.cpp): `clsWithdrawScreen.cpp`
- [Transfer](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsTransferScreen.cpp): `clsTransferScreen.cpp`
- [Balance summary](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsTotalBalancesScreen.cpp): `clsTotalBalancesScreen.cpp`
- [Transfer history](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsTransferLogScreen.cpp): `clsTransferLogScreen.cpp`
- **Transfer log file**

### Currency tools and shared services

- [Currency menu](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsCurrancyMainScreen.cpp): `clsCurrancyMainScreen.cpp`
- [Currency list](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsCurrenciesListScreen.cpp): `clsCurrenciesListScreen.cpp`
- [Currency model](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsCurrency.cpp): `clsCurrency.cpp`
- [Currency calculator](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsCalculatorCurrancyScreen.cpp): `clsCalculatorCurrancyScreen.cpp`
- [Shared screen services](https://github.com/yuseefahmdali-jpg/bank_project/blob/main/clsScreen.cpp): `clsScreen.cpp`

### Other components

- **Operator**

## Connections

- Operator → Legacy menu: starts menu
- Legacy menu → Legacy client file: reads and writes
- Operator → OOP entry: starts app
- Login screen → Login state: uses login state
- User administration → User records: manages users
- Client screens → Client model: loads clients
- Add client → Client model: checks and saves
- Update client → Client model: finds and saves
- Delete client → Client model: finds and deletes
- Find client → Client model: checks and finds
- Client model → Client records: reads and writes
- Transfer log file → Transfer history: supplies records
