# nandu0925/bank_proj architecture

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

- Interactive diagram: https://gitdiagram.com/nandu0925/bank_proj
- Repository: https://github.com/nandu0925/bank_proj

## Overview

MoneyMoneyBank is a small Java banking example with savings and current account types. Its demonstrated workflow starts at the Client entry point, constructs both account types, and invokes withdrawals that print account information. A factory API can create either account type, but the sample Client does not use it. The source shows no persistent state or external banking service; account behavior is implemented in memory. The graph reflects the supplied source excerpts, which do not include a README.

Main entry points: [`MoneyMoneyBank/src/com/amc/Client/Client.java`](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Client/Client.java) (Client entry), [`MoneyMoneyBank/src/com/amc/Application/MMSavingAcc.java`](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMSavingAcc.java) (MoneyMoney savings), [`MoneyMoneyBank/src/com/amc/Application/MMCurrentAcc.java`](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMCurrentAcc.java) (MoneyMoney current), [`MoneyMoneyBank/src/com/amc/Application/MMBankFactory.java`](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMBankFactory.java) (MoneyMoney factory)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_application["Bank application"]
  node_client["Client entry<br/>[Client.java]"]
  node_mm_factory["MoneyMoney factory<br/>[MMBankFactory.java]"]
  node_mm_saving["MoneyMoney savings<br/>[MMSavingAcc.java]"]
  node_mm_current["MoneyMoney current<br/>[MMCurrentAcc.java]"]
end

subgraph group_framework["Account framework"]
  node_bank_factory["Bank factory<br/>[BankFactory.java]"]
  node_bank_account["Base account<br/>[BankAcc.java]"]
  node_saving_account["Savings account<br/>[SavingAcc.java]"]
  node_current_account["Current account<br/>[CurrentAcc.java]"]
end

node_launcher(("Program launcher"))

node_launcher -->|"launches"| node_client
node_client -->|"constructs"| node_mm_saving
node_client -->|"constructs"| node_mm_current
node_client -->|"withdraws"| node_mm_saving
node_client -->|"withdraws"| node_mm_current
node_mm_factory -->|"constructs"| node_mm_saving
node_mm_factory -->|"constructs"| node_mm_current
node_mm_factory -->|"extends"| node_bank_factory
node_mm_saving -->|"extends"| node_saving_account
node_mm_current -->|"extends"| node_current_account
node_saving_account -->|"extends"| node_bank_account
node_current_account -->|"extends"| node_bank_account

click node_client "https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Client/Client.java"
click node_bank_factory "https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Framework/BankFactory.java"
click node_mm_factory "https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMBankFactory.java"
click node_bank_account "https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Framework/BankAcc.java"
click node_saving_account "https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Framework/SavingAcc.java"
click node_current_account "https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Framework/CurrentAcc.java"
click node_mm_saving "https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMSavingAcc.java"
click node_mm_current "https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMCurrentAcc.java"

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_client,node_mm_factory,node_mm_saving,node_mm_current toneBlue
class node_bank_factory,node_bank_account,node_saving_account,node_current_account toneAmber
class node_launcher toneIndigo
```

## Components

### Bank application

- [Client entry](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Client/Client.java): `MoneyMoneyBank/src/com/amc/Client/Client.java`
- [MoneyMoney factory](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMBankFactory.java): `MoneyMoneyBank/src/com/amc/Application/MMBankFactory.java`
- [MoneyMoney savings](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMSavingAcc.java): `MoneyMoneyBank/src/com/amc/Application/MMSavingAcc.java`
- [MoneyMoney current](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Application/MMCurrentAcc.java): `MoneyMoneyBank/src/com/amc/Application/MMCurrentAcc.java`

### Account framework

- [Bank factory](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Framework/BankFactory.java): `MoneyMoneyBank/src/com/amc/Framework/BankFactory.java`
- [Base account](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Framework/BankAcc.java): `MoneyMoneyBank/src/com/amc/Framework/BankAcc.java`
- [Savings account](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Framework/SavingAcc.java): `MoneyMoneyBank/src/com/amc/Framework/SavingAcc.java`
- [Current account](https://github.com/nandu0925/bank_proj/blob/main/MoneyMoneyBank/src/com/amc/Framework/CurrentAcc.java): `MoneyMoneyBank/src/com/amc/Framework/CurrentAcc.java`

### Other components

- **Program launcher**

## Connections

- Program launcher → Client entry: launches
- Client entry → MoneyMoney savings: constructs
- Client entry → MoneyMoney current: constructs
- Client entry → MoneyMoney savings: withdraws
- Client entry → MoneyMoney current: withdraws
- MoneyMoney factory → MoneyMoney savings: constructs
- MoneyMoney factory → MoneyMoney current: constructs
- MoneyMoney factory → Bank factory: extends
- MoneyMoney savings → Savings account: extends
- MoneyMoney current → Current account: extends
- Savings account → Base account: extends
- Current account → Base account: extends
