# moazabdulsalam/bankatmrepo-myfirstcppprog architecture

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

- Interactive diagram: https://gitdiagram.com/moazabdulsalam/bankatmrepo-myfirstcppprog
- Repository: https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog

## Overview

This repository contains two console banking applications: a bank administration system and a separate customer ATM. The operator workflow signs in, then manages clients and users or runs banking transactions; the ATM workflow authenticates a customer and offers withdrawals, deposits, and balance checks. Both persist client records in text files, while the ATM source uses a hard-coded path to the bank project’s client file. The source excerpts are partial, so uncertain internal wiring is omitted.

Main entry points: [`Bank project/Bank project/ClientFile.txt`](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/ClientFile.txt) (Client Records), [`ATM Project/ATM Project/ATM Project.cpp`](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp) (ATM Menu), [`Bank project/Bank project/Bank project.cpp`](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp) (Main Menu), [`Bank project/Bank project/UserFile.txt`](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/UserFile.txt) (User Records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_bank_auth["Bank Access"]
  node_bank_entry["Bank Sign-in<br/>[Bank project.cpp]"]
  node_bank_login["Admin Login<br/>[Bank project.cpp]"]
  node_bank_menu["Main Menu<br/>[Bank project.cpp]"]
end

subgraph group_bank_ops["Bank Operations"]
  node_client_admin["Client Management<br/>[Bank project.cpp]"]
  node_user_admin["User Management<br/>[Bank project.cpp]"]
  node_bank_transactions["Transactions<br/>[Bank project.cpp]"]
end

subgraph group_atm_runtime["ATM Services"]
  node_atm_entry["ATM Login<br/>[ATM Project.cpp]"]
  node_atm_menu["ATM Menu<br/>[ATM Project.cpp]"]
  node_quick_withdraw["Quick Withdrawal<br/>[ATM Project.cpp]"]
  node_normal_withdraw["Normal Withdrawal<br/>[ATM Project.cpp]"]
  node_atm_deposit["ATM Deposit<br/>[ATM Project.cpp]"]
  node_balance_check["Balance Check<br/>[ATM Project.cpp]"]
end

subgraph group_persistent_data["File Storage"]
  node_client_records[("Client Records<br/>[ClientFile.txt]")]
  node_user_records[("User Records<br/>[UserFile.txt]")]
end

node_operator(("Bank Operator"))
node_account_holder(("Account Holder"))

node_operator -->|"signs in"| node_bank_entry
node_bank_entry -->|"starts"| node_bank_login
node_bank_login -->|"reads"| node_user_records
node_bank_login -->|"opens"| node_bank_menu
node_bank_menu -->|"dispatches"| node_client_admin
node_bank_menu -->|"dispatches"| node_user_admin
node_bank_menu -->|"dispatches"| node_bank_transactions
node_client_admin -->|"reads/writes"| node_client_records
node_user_admin -->|"reads/writes"| node_user_records
node_bank_transactions -->|"reads/writes"| node_client_records
node_account_holder -->|"authenticates"| node_atm_entry
node_atm_entry -->|"reads"| node_client_records
node_atm_entry -->|"opens"| node_atm_menu
node_atm_menu -->|"dispatches"| node_quick_withdraw
node_atm_menu -->|"dispatches"| node_normal_withdraw
node_atm_menu -->|"dispatches"| node_atm_deposit
node_atm_menu -->|"dispatches"| node_balance_check
node_quick_withdraw -->|"reads/writes"| node_client_records
node_normal_withdraw -->|"reads/writes"| node_client_records
node_atm_deposit -->|"reads/writes"| node_client_records
node_balance_check -->|"reads"| node_client_records

click node_bank_entry "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp"
click node_bank_login "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp"
click node_bank_menu "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp"
click node_client_admin "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp"
click node_user_admin "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp"
click node_bank_transactions "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp"
click node_client_records "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/ClientFile.txt"
click node_user_records "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/UserFile.txt"
click node_atm_entry "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp"
click node_atm_menu "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp"
click node_quick_withdraw "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp"
click node_normal_withdraw "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp"
click node_atm_deposit "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp"
click node_balance_check "https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.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_bank_entry,node_bank_login,node_bank_menu toneBlue
class node_client_admin,node_user_admin,node_bank_transactions toneAmber
class node_atm_entry,node_atm_menu,node_quick_withdraw,node_normal_withdraw,node_atm_deposit,node_balance_check toneMint
class node_client_records,node_user_records toneRose
class node_operator,node_account_holder toneIndigo
```

## Components

### Bank Access

- [Bank Sign-in](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp): `Bank project/Bank project/Bank project.cpp`
- [Admin Login](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp): `Bank project/Bank project/Bank project.cpp`
- [Main Menu](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp): `Bank project/Bank project/Bank project.cpp`

### Bank Operations

- [Client Management](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp): `Bank project/Bank project/Bank project.cpp`
- [User Management](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp): `Bank project/Bank project/Bank project.cpp`
- [Transactions](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/Bank%20project.cpp): `Bank project/Bank project/Bank project.cpp`

### ATM Services

- [ATM Login](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp): `ATM Project/ATM Project/ATM Project.cpp`
- [ATM Menu](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp): `ATM Project/ATM Project/ATM Project.cpp`
- [Quick Withdrawal](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp): `ATM Project/ATM Project/ATM Project.cpp`
- [Normal Withdrawal](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp): `ATM Project/ATM Project/ATM Project.cpp`
- [ATM Deposit](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp): `ATM Project/ATM Project/ATM Project.cpp`
- [Balance Check](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/ATM%20Project/ATM%20Project/ATM%20Project.cpp): `ATM Project/ATM Project/ATM Project.cpp`

### File Storage

- [Client Records](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/ClientFile.txt): `Bank project/Bank project/ClientFile.txt`
- [User Records](https://github.com/moazabdulsalam/bankatmrepo-myfirstcppprog/blob/master/Bank%20project/Bank%20project/UserFile.txt): `Bank project/Bank project/UserFile.txt`

### Other components

- **Bank Operator**
- **Account Holder**

## Connections

- Bank Operator → Bank Sign-in: signs in
- Bank Sign-in → Admin Login: starts
- Admin Login → User Records: reads
- Admin Login → Main Menu: opens
- Main Menu → Client Management: dispatches
- Main Menu → User Management: dispatches
- Main Menu → Transactions: dispatches
- Client Management → Client Records: reads/writes
- User Management → User Records: reads/writes
- Transactions → Client Records: reads/writes
- Account Holder → ATM Login: authenticates
- ATM Login → Client Records: reads
- ATM Login → ATM Menu: opens
- ATM Menu → Quick Withdrawal: dispatches
- ATM Menu → Normal Withdrawal: dispatches
- ATM Menu → ATM Deposit: dispatches
- ATM Menu → Balance Check: dispatches
- Quick Withdrawal → Client Records: reads/writes
- Normal Withdrawal → Client Records: reads/writes
- ATM Deposit → Client Records: reads/writes
- Balance Check → Client Records: reads
