# dhanu-yah/full-stack-bank-management-project architecture

> Architecture diagram of the GitHub repository dhanu-yah/full-stack-bank-management-project, 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/dhanu-yah/full-stack-bank-management-project
- Repository: https://github.com/dhanu-yah/full-stack-bank-management-project
- Video tour (about a minute): https://gitdiagram.com/dhanu-yah/full-stack-bank-management-project/video

## Overview

This is an ASP.NET bank-management application for authenticated clients and administrators. Its visible banking capabilities include asset creation and purchase, credit cards, credit, deposits, withdrawals, and transaction history; clients also have balances and transaction records. In the sampled asset flow, a controller invokes the asset service, which updates client and asset state, records a purchase transaction, and saves through a repository. Other feature paths are represented from the tree, but their call wiring was not sampled; the README provides no further architecture detail.

Main entry points: [`Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs`](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs) (Asset service), [`Web/Controllers/AssetsController.cs`](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Web/Controllers/AssetsController.cs) (Asset endpoints), [`Data/BankManagementSystem.Data/Repositories/EfRepository.cs`](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Data/BankManagementSystem.Data/Repositories/EfRepository.cs) (EF repository), [`Services/BankManagementSystem.Services.DataServices/BaseService.cs`](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/BaseService.cs) (Service base)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_asset_web["Asset endpoints"]
  node_card_web["Card endpoints"]
  node_credit_web["Credit pages"]
  node_deposit_web["Deposit pages"]
  node_withdraw_web["Withdrawal pages"]
  node_transactions_web["Transaction history<br/>[Index.cshtml.cs]"]
  node_identity_web["Identity pages"]
end

subgraph group_operations["Banking operations"]
  node_asset_service["Asset service<br/>[AssetService.cs]"]
  node_card_service["Card service"]
  node_credit_service["Credit service<br/>[CreditService.cs]"]
  node_deposit_service["Deposit service<br/>[DepositService.cs]"]
  node_withdraw_service["Withdrawal service<br/>[WithdrawService.cs]"]
  node_transaction_service["Transaction service"]
  node_client_service["Client service<br/>[ClientService.cs]"]
end

subgraph group_data["Persistence"]
  node_repository["EF repository<br/>[EfRepository.cs]"]
  node_db_context[("Bank database")]
end

subgraph group_identity["Identity and domain"]
  node_entities["Bank entities<br/>[Client.cs]"]
  node_base_service["Service base<br/>[BaseService.cs]"]
  node_user_manager["Identity manager"]
end

node_client_actor(("Client"))
node_admin_actor(("Administrator"))

node_client_actor -->|"uses assets"| node_asset_web
node_admin_actor -->|"creates assets"| node_asset_web
node_client_actor -->|"manages cards"| node_card_web
node_client_actor -->|"requests credit"| node_credit_web
node_client_actor -->|"deposits funds"| node_deposit_web
node_client_actor -->|"withdraws funds"| node_withdraw_web
node_client_actor -->|"views history"| node_transactions_web
node_client_actor -->|"authenticates"| node_identity_web
node_asset_web -->|"calls"| node_asset_service
node_asset_service -->|"records purchase"| node_transaction_service
node_asset_service -->|"reads and saves"| node_repository
node_repository -->|"uses context"| node_db_context
node_base_service -->|"looks up client"| node_user_manager
node_asset_service -->|"inherits"| node_base_service
node_entities -->|"mapped state"| node_db_context

click node_asset_web "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Web/Controllers/AssetsController.cs"
click node_card_web "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Web/Controllers/CreditCardsController.cs"
click node_credit_web "https://github.com/dhanu-yah/full-stack-bank-management-project/tree/main/Web/Pages/Credit"
click node_deposit_web "https://github.com/dhanu-yah/full-stack-bank-management-project/tree/main/Web/Pages/Deposit"
click node_withdraw_web "https://github.com/dhanu-yah/full-stack-bank-management-project/tree/main/Web/Pages/Withdraw"
click node_transactions_web "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Web/Pages/Transaction/Index.cshtml.cs"
click node_identity_web "https://github.com/dhanu-yah/full-stack-bank-management-project/tree/main/Web/Areas/Identity/Pages/Account"
click node_asset_service "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs"
click node_card_service "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/CreditCardService.cs"
click node_credit_service "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/CreditService.cs"
click node_deposit_service "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/DepositService.cs"
click node_withdraw_service "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/WithdrawService.cs"
click node_transaction_service "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/TransactionService.cs"
click node_client_service "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services/Implementations/ClientService.cs"
click node_repository "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Data/BankManagementSystem.Data/Repositories/EfRepository.cs"
click node_db_context "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Data/BankManagementSystem.Data/BankManagementSystemDbContext.cs"
click node_entities "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Data/BankManagementSystem.Models/Client.cs"
click node_base_service "https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/BaseService.cs"

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_asset_web,node_card_web,node_credit_web,node_deposit_web,node_withdraw_web,node_transactions_web,node_identity_web,node_client_actor toneBlue
class node_asset_service,node_card_service,node_credit_service,node_deposit_service,node_withdraw_service,node_transaction_service,node_client_service toneAmber
class node_repository,node_db_context toneMint
class node_entities,node_base_service,node_user_manager toneRose
class node_admin_actor toneIndigo
```

## Components

### Web interface

- [Asset endpoints](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Web/Controllers/AssetsController.cs): `Web/Controllers/AssetsController.cs`
- [Card endpoints](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Web/Controllers/CreditCardsController.cs): `Web/Controllers/CreditCardsController.cs`
- [Credit pages](https://github.com/dhanu-yah/full-stack-bank-management-project/tree/main/Web/Pages/Credit): `Web/Pages/Credit`
- [Deposit pages](https://github.com/dhanu-yah/full-stack-bank-management-project/tree/main/Web/Pages/Deposit): `Web/Pages/Deposit`
- [Withdrawal pages](https://github.com/dhanu-yah/full-stack-bank-management-project/tree/main/Web/Pages/Withdraw): `Web/Pages/Withdraw`
- [Transaction history](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Web/Pages/Transaction/Index.cshtml.cs): `Web/Pages/Transaction/Index.cshtml.cs`
- [Identity pages](https://github.com/dhanu-yah/full-stack-bank-management-project/tree/main/Web/Areas/Identity/Pages/Account): `Web/Areas/Identity/Pages/Account`

### Banking operations

- [Asset service](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs): `Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs`
- [Card service](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/CreditCardService.cs): `Services/BankManagementSystem.Services.DataServices/Implementations/CreditCardService.cs`
- [Credit service](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/CreditService.cs): `Services/BankManagementSystem.Services.DataServices/Implementations/CreditService.cs`
- [Deposit service](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/DepositService.cs): `Services/BankManagementSystem.Services.DataServices/Implementations/DepositService.cs`
- [Withdrawal service](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/WithdrawService.cs): `Services/BankManagementSystem.Services.DataServices/Implementations/WithdrawService.cs`
- [Transaction service](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/Implementations/TransactionService.cs): `Services/BankManagementSystem.Services.DataServices/Implementations/TransactionService.cs`
- [Client service](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services/Implementations/ClientService.cs): `Services/BankManagementSystem.Services/Implementations/ClientService.cs`

### Persistence

- [EF repository](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Data/BankManagementSystem.Data/Repositories/EfRepository.cs): `Data/BankManagementSystem.Data/Repositories/EfRepository.cs`
- [Bank database](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Data/BankManagementSystem.Data/BankManagementSystemDbContext.cs): `Data/BankManagementSystem.Data/BankManagementSystemDbContext.cs`

### Identity and domain

- [Bank entities](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Data/BankManagementSystem.Models/Client.cs): `Data/BankManagementSystem.Models/Client.cs`
- [Service base](https://github.com/dhanu-yah/full-stack-bank-management-project/blob/main/Services/BankManagementSystem.Services.DataServices/BaseService.cs): `Services/BankManagementSystem.Services.DataServices/BaseService.cs`
- **Identity manager**

### Other components

- **Client**
- **Administrator**

## Connections

- Client → Asset endpoints: uses assets
- Administrator → Asset endpoints: creates assets
- Client → Card endpoints: manages cards
- Client → Credit pages: requests credit
- Client → Deposit pages: deposits funds
- Client → Withdrawal pages: withdraws funds
- Client → Transaction history: views history
- Client → Identity pages: authenticates
- Asset endpoints → Asset service: calls
- Asset service → Transaction service: records purchase
- Asset service → EF repository: reads and saves
- EF repository → Bank database: uses context
- Service base → Identity manager: looks up client
- Asset service → Service base: inherits
- Bank entities → Bank database: mapped state
