# evgenirusev/bankmanagementsystem architecture

> Architecture diagram of the GitHub repository evgenirusev/bankmanagementsystem, 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/evgenirusev/bankmanagementsystem
- Repository: https://github.com/evgenirusev/bankmanagementsystem

## Overview

This is a monolithic ASP.NET Core digital banking application. Authenticated clients can manage banking products and transactions through MVC controllers and Razor Pages; administrators can create assets, which clients can browse and purchase. The README confirms registration/login and SQL-backed persistence. The asset and card controllers and asset service were sampled; links for other banking workflows reflect the module layout, not inspected call sites.

Main entry points: [`src/Web/Program.cs`](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Program.cs) (ASP.NET web app), [`src/Services/BankManagementSystem.Services.DataServices/Implementations`](https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Services/BankManagementSystem.Services.DataServices/Implementations) (Financial services), [`src/Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs`](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs) (Asset service), [`src/Data/BankManagementSystem.Data/Repositories/EfRepository.cs`](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Data/BankManagementSystem.Data/Repositories/EfRepository.cs) (EF repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experience"]
  node_webapp["ASP.NET web app<br/>[Program.cs]"]
  node_assetweb["Asset browsing"]
  node_cardweb["Credit card pages"]
  node_creditweb["Credit pages"]
  node_depositweb["Deposit pages"]
  node_withdrawweb["Withdrawal pages"]
  node_transactionweb["Transaction history<br/>[Index.cshtml.cs]"]
end

subgraph group_banking["Banking operations"]
  node_assetservice["Asset service<br/>[AssetService.cs]"]
  node_financialservices["Financial services<br/>[Implementations]"]
  node_transactionservice["Transaction service"]
end

subgraph group_identity["Identity"]
  node_accountpages["Account management"]
  node_identity["ASP.NET Identity<br/>[Client.cs]"]
  node_clientservice["Client service<br/>[ClientService.cs]"]
end

subgraph group_data["Domain and persistence"]
  node_models["Banking records"]
  node_repository["EF repository<br/>[EfRepository.cs]"]
  node_dbcontext["EF database context"]
end

node_client(("Bank client"))
node_database[("SQL database")]

node_client -->|"uses"| node_webapp
node_webapp -->|"routes"| node_assetweb
node_webapp -->|"routes"| node_cardweb
node_webapp -->|"routes"| node_creditweb
node_webapp -->|"routes"| node_depositweb
node_webapp -->|"routes"| node_withdrawweb
node_webapp -->|"routes"| node_transactionweb
node_client -->|"manages account"| node_accountpages
node_accountpages -->|"authenticates"| node_identity
node_assetweb -->|"calls"| node_assetservice
node_cardweb -->|"calls"| node_financialservices
node_creditweb -->|"handles credit"| node_financialservices
node_depositweb -->|"handles deposits"| node_financialservices
node_withdrawweb -->|"handles withdrawals"| node_financialservices
node_transactionweb -->|"reads history"| node_financialservices
node_assetservice -->|"records purchase"| node_transactionservice
node_assetservice -->|"reads and writes"| node_repository
node_financialservices -->|"persists records"| node_repository
node_clientservice -->|"manages clients"| node_identity
node_repository -->|"uses"| node_dbcontext
node_dbcontext -->|"persists data"| node_database

click node_webapp "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Program.cs"
click node_assetweb "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Controllers/AssetsController.cs"
click node_cardweb "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Controllers/CreditCardsController.cs"
click node_creditweb "https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Web/Pages/Credit"
click node_depositweb "https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Web/Pages/Deposit"
click node_withdrawweb "https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Web/Pages/Withdraw"
click node_transactionweb "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Pages/Transaction/Index.cshtml.cs"
click node_assetservice "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs"
click node_financialservices "https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Services/BankManagementSystem.Services.DataServices/Implementations"
click node_transactionservice "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Services/BankManagementSystem.Services.DataServices/Implementations/TransactionService.cs"
click node_accountpages "https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Web/Areas/Identity/Pages/Account"
click node_identity "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Data/BankManagementSystem.Models/Client.cs"
click node_clientservice "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Services/BankManagementSystem.Services/Implementations/ClientService.cs"
click node_models "https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Data/BankManagementSystem.Models"
click node_repository "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Data/BankManagementSystem.Data/Repositories/EfRepository.cs"
click node_dbcontext "https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Data/BankManagementSystem.Data/BankManagementSystemDbContext.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_webapp,node_assetweb,node_cardweb,node_creditweb,node_depositweb,node_withdrawweb,node_transactionweb,node_client toneBlue
class node_assetservice,node_financialservices,node_transactionservice,node_database toneAmber
class node_accountpages,node_identity,node_clientservice toneMint
class node_models,node_repository,node_dbcontext toneRose
```

## Components

### Web experience

- [ASP.NET web app](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Program.cs): `src/Web/Program.cs`
- [Asset browsing](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Controllers/AssetsController.cs): `src/Web/Controllers/AssetsController.cs`
- [Credit card pages](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Controllers/CreditCardsController.cs): `src/Web/Controllers/CreditCardsController.cs`
- [Credit pages](https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Web/Pages/Credit): `src/Web/Pages/Credit`
- [Deposit pages](https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Web/Pages/Deposit): `src/Web/Pages/Deposit`
- [Withdrawal pages](https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Web/Pages/Withdraw): `src/Web/Pages/Withdraw`
- [Transaction history](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Web/Pages/Transaction/Index.cshtml.cs): `src/Web/Pages/Transaction/Index.cshtml.cs`

### Banking operations

- [Asset service](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs): `src/Services/BankManagementSystem.Services.DataServices/Implementations/AssetService.cs`
- [Financial services](https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Services/BankManagementSystem.Services.DataServices/Implementations): `src/Services/BankManagementSystem.Services.DataServices/Implementations`
- [Transaction service](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Services/BankManagementSystem.Services.DataServices/Implementations/TransactionService.cs): `src/Services/BankManagementSystem.Services.DataServices/Implementations/TransactionService.cs`

### Identity

- [Account management](https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Web/Areas/Identity/Pages/Account): `src/Web/Areas/Identity/Pages/Account`
- [ASP.NET Identity](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Data/BankManagementSystem.Models/Client.cs): `src/Data/BankManagementSystem.Models/Client.cs`
- [Client service](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Services/BankManagementSystem.Services/Implementations/ClientService.cs): `src/Services/BankManagementSystem.Services/Implementations/ClientService.cs`

### Domain and persistence

- [Banking records](https://github.com/evgenirusev/bankmanagementsystem/tree/master/src/Data/BankManagementSystem.Models): `src/Data/BankManagementSystem.Models`
- [EF repository](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Data/BankManagementSystem.Data/Repositories/EfRepository.cs): `src/Data/BankManagementSystem.Data/Repositories/EfRepository.cs`
- [EF database context](https://github.com/evgenirusev/bankmanagementsystem/blob/master/src/Data/BankManagementSystem.Data/BankManagementSystemDbContext.cs): `src/Data/BankManagementSystem.Data/BankManagementSystemDbContext.cs`

### Other components

- **Bank client**
- **SQL database**

## Connections

- Bank client → ASP.NET web app: uses
- ASP.NET web app → Asset browsing: routes
- ASP.NET web app → Credit card pages: routes
- ASP.NET web app → Credit pages: routes
- ASP.NET web app → Deposit pages: routes
- ASP.NET web app → Withdrawal pages: routes
- ASP.NET web app → Transaction history: routes
- Bank client → Account management: manages account
- Account management → ASP.NET Identity: authenticates
- Asset browsing → Asset service: calls
- Credit card pages → Financial services: calls
- Credit pages → Financial services: handles credit
- Deposit pages → Financial services: handles deposits
- Withdrawal pages → Financial services: handles withdrawals
- Transaction history → Financial services: reads history
- Asset service → Transaction service: records purchase
- Asset service → EF repository: reads and writes
- Financial services → EF repository: persists records
- Client service → ASP.NET Identity: manages clients
- EF repository → EF database context: uses
- EF database context → SQL database: persists data
