# suhas26-05/banking-app architecture

> Architecture diagram of the GitHub repository suhas26-05/banking-app, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/suhas26-05/banking-app
- Repository: https://github.com/suhas26-05/banking-app

## Overview

This is a Spring Boot REST banking application. A client calls the account API; documented capabilities cover account creation, retrieval, deposits, withdrawals, listing, deletion, transaction history, and monthly interest. The README describes a layered design with DTO mapping, services, JPA repositories, and configurable persistence. Source excerpts were not provided, so implementation-level call directions—especially for transactions and interest—cannot be verified; those links are marked as unverified rather than presented as observed calls.

Main entry points: [`src/main/java/com/example/Banking_App/services/impl/AccountServicesImpl.java`](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/services/impl/AccountServicesImpl.java) (Account Service Implementation), [`src/main/java/com/example/Banking_App/controller/AccountController.java`](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/controller/AccountController.java) (Account Endpoints), [`src/main/java/com/example/Banking_App/entity/Account.java`](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/entity/Account.java) (Account), [`src/main/java/com/example/Banking_App/mapper/AccountMapper.java`](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/mapper/AccountMapper.java) (Account Mapper)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["REST API"]
  node_application["Spring Boot Application"]
  node_account_api["Account Endpoints"]
end

subgraph group_domain["Banking Domain"]
  node_account_dto["Account DTO<br/>[AccountDto.java]"]
  node_account_mapper["Account Mapper<br/>[AccountMapper.java]"]
  node_account["Account<br/>[Account.java]"]
  node_account_type["Account Type<br/>[AccountType.java]"]
  node_transaction["Transaction<br/>[Transaction.java]"]
end

subgraph group_services["Service Layer"]
  node_account_services["Account Services Interface"]
  node_account_service_impl["Account Service Implementation"]
end

subgraph group_persistence["Persistence"]
  node_account_repository[("Account Repository")]
  node_transaction_repository[("Transaction Repository")]
  node_database_config["Database Configuration"]
end

node_client(("API Client"))
node_database[("Configured Database")]

node_client -->|"calls REST API"| node_account_api
node_account_api -.->|"uses service layer"| node_account_services
node_account_services -.->|"implemented by"| node_account_service_impl
node_account_service_impl -.->|"uses account repository"| node_account_repository
node_account_service_impl -.->|"uses transaction repository"| node_transaction_repository
node_account_mapper -->|"converts DTO"| node_account_dto
node_account_mapper -->|"converts entity"| node_account
node_account_repository -.->|"persists account"| node_account
node_transaction_repository -.->|"persists transactions"| node_transaction
node_database_config -->|"configures connection"| node_database
node_account_api -.->|"exchanges JSON"| node_account_dto
node_account_service_impl -.->|"applies interest"| node_account

click node_application "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/BankingAppApplication.java"
click node_account_api "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/controller/AccountController.java"
click node_account_dto "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/dto/AccountDto.java"
click node_account_mapper "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/mapper/AccountMapper.java"
click node_account "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/entity/Account.java"
click node_account_type "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/entity/AccountType.java"
click node_transaction "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/entity/Transaction.java"
click node_account_services "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/services/AccountServices.java"
click node_account_service_impl "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/services/impl/AccountServicesImpl.java"
click node_account_repository "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/repository/AccountRepository.java"
click node_transaction_repository "https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/repository/TransactionRepository.java"
click node_database_config "https://github.com/suhas26-05/banking-app/blob/main/src/main/resources/application.properties"

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_application,node_account_api,node_client toneBlue
class node_account_dto,node_account_mapper,node_account,node_account_type,node_transaction,node_database toneAmber
class node_account_services,node_account_service_impl toneMint
class node_account_repository,node_transaction_repository,node_database_config toneRose
```

## Components

### REST API

- [Spring Boot Application](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/BankingAppApplication.java): `src/main/java/com/example/Banking_App/BankingAppApplication.java`
- [Account Endpoints](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/controller/AccountController.java): `src/main/java/com/example/Banking_App/controller/AccountController.java`

### Banking Domain

- [Account DTO](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/dto/AccountDto.java): `src/main/java/com/example/Banking_App/dto/AccountDto.java`
- [Account Mapper](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/mapper/AccountMapper.java): `src/main/java/com/example/Banking_App/mapper/AccountMapper.java`
- [Account](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/entity/Account.java): `src/main/java/com/example/Banking_App/entity/Account.java`
- [Account Type](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/entity/AccountType.java): `src/main/java/com/example/Banking_App/entity/AccountType.java`
- [Transaction](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/entity/Transaction.java): `src/main/java/com/example/Banking_App/entity/Transaction.java`

### Service Layer

- [Account Services Interface](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/services/AccountServices.java): `src/main/java/com/example/Banking_App/services/AccountServices.java`
- [Account Service Implementation](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/services/impl/AccountServicesImpl.java): `src/main/java/com/example/Banking_App/services/impl/AccountServicesImpl.java`

### Persistence

- [Account Repository](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/repository/AccountRepository.java): `src/main/java/com/example/Banking_App/repository/AccountRepository.java`
- [Transaction Repository](https://github.com/suhas26-05/banking-app/blob/main/src/main/java/com/example/Banking_App/repository/TransactionRepository.java): `src/main/java/com/example/Banking_App/repository/TransactionRepository.java`
- [Database Configuration](https://github.com/suhas26-05/banking-app/blob/main/src/main/resources/application.properties): `src/main/resources/application.properties`

### Other components

- **API Client**
- **Configured Database**

## Connections

- API Client → Account Endpoints: calls REST API (evidence: `README.md`)
- Account Endpoints → Account Services Interface: uses service layer
- Account Services Interface → Account Service Implementation: implemented by
- Account Service Implementation → Account Repository: uses account repository
- Account Service Implementation → Transaction Repository: uses transaction repository
- Account Mapper → Account DTO: converts DTO (evidence: `README.md`)
- Account Mapper → Account: converts entity (evidence: `README.md`)
- Account Repository → Account: persists account
- Transaction Repository → Transaction: persists transactions
- Database Configuration → Configured Database: configures connection (evidence: `README.md`)
- Account Endpoints → Account DTO: exchanges JSON
- Account Service Implementation → Account: applies interest
