# anki-0015/bankingmanagementsysteme architecture

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

## Overview

This is a browser-based banking application backed by a Java API. Users sign up or log in, then check balances, deposit, withdraw, transfer funds, and review transactions; password-reset and administrator workflows are separate capabilities. The frontend excerpts show which API routes the screens call. Backend internals are represented by their named modules, but their call wiring is not asserted because those sources were not sampled.

Main entry points: [`frontend/auth.js`](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/auth.js) (Sign-in and reset), [`frontend/dashboard.js`](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/dashboard.js) (Account dashboard), [`frontend/transactions.js`](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/transactions.js) (Transaction history), [`backend/src/main/java/com/example/banking/controller/AccountController.java`](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/controller/AccountController.java) (Account routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_browser["Browser interface"]
  node_auth_ui["Sign-in and reset<br/>[auth.js]"]
  node_dashboard_ui["Account dashboard<br/>[dashboard.js]"]
  node_transactions_ui["Transaction history<br/>[transactions.js]"]
  node_admin_ui["User administration<br/>[admin.js]"]
  node_ui_helpers["UI utilities<br/>[ui.js]"]
end

subgraph group_api["Banking API"]
  node_account_controller["Account routes"]
  node_account_service["Account operations"]
  node_admin_controller["Admin routes"]
  node_admin_service["Admin operations<br/>[AdminService.java]"]
end

subgraph group_identity["Identity and security"]
  node_auth_controller["Authentication routes"]
  node_auth_service["Authentication service<br/>[AuthService.java]"]
  node_security["JWT security"]
  node_email_service["Email service<br/>[EmailService.java]"]
end

subgraph group_data["Banking data"]
  node_user_repo["User repository"]
  node_transaction_repo["Transaction repository"]
  node_reset_repo["Reset-token repository"]
  node_bank_models["Banking models"]
end

node_customer(("Customer"))
node_admin(("Administrator"))
node_database[("Database")]
node_mail_provider(("Email provider"))

node_customer -->|"uses"| node_auth_ui
node_customer -->|"uses"| node_dashboard_ui
node_customer -->|"uses"| node_transactions_ui
node_admin -->|"uses"| node_admin_ui
node_auth_ui -->|"requests auth"| node_auth_controller
node_dashboard_ui -->|"requests account actions"| node_account_controller
node_transactions_ui -->|"requests history"| node_account_controller
node_admin_ui -->|"requests administration"| node_admin_controller
node_auth_ui -->|"shows notices"| node_ui_helpers
node_dashboard_ui -->|"formats account view"| node_ui_helpers
node_transactions_ui -->|"formats and exports"| node_ui_helpers
node_auth_controller -->|"uses authentication"| node_security
node_account_controller -->|"uses authentication"| node_security
node_admin_controller -->|"uses authorization"| node_security
node_auth_service -.->|"sends reset email"| node_email_service
node_email_service -.->|"sends mail"| node_mail_provider
node_user_repo -->|"reads and writes"| node_database
node_transaction_repo -->|"reads and writes"| node_database
node_reset_repo -->|"reads and writes"| node_database

click node_auth_ui "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/auth.js"
click node_dashboard_ui "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/dashboard.js"
click node_transactions_ui "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/transactions.js"
click node_admin_ui "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/admin.js"
click node_ui_helpers "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/ui.js"
click node_auth_controller "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/controller/AuthController.java"
click node_auth_service "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/service/AuthService.java"
click node_security "https://github.com/anki-0015/bankingmanagementsysteme/tree/main/backend/src/main/java/com/example/banking/security"
click node_email_service "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/service/EmailService.java"
click node_account_controller "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/controller/AccountController.java"
click node_account_service "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/service/AccountService.java"
click node_admin_controller "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/controller/AdminController.java"
click node_admin_service "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/service/AdminService.java"
click node_user_repo "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/repository/UserRepository.java"
click node_transaction_repo "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/repository/TransactionRepository.java"
click node_reset_repo "https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/repository/PasswordResetTokenRepository.java"
click node_bank_models "https://github.com/anki-0015/bankingmanagementsysteme/tree/main/backend/src/main/java/com/example/banking/model"

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_auth_ui,node_dashboard_ui,node_transactions_ui,node_admin_ui,node_ui_helpers toneBlue
class node_account_controller,node_account_service,node_admin_controller,node_admin_service,node_database toneAmber
class node_auth_controller,node_auth_service,node_security,node_email_service toneMint
class node_user_repo,node_transaction_repo,node_reset_repo,node_bank_models toneRose
class node_customer,node_admin,node_mail_provider toneIndigo
```

## Components

### Browser interface

- [Sign-in and reset](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/auth.js): `frontend/auth.js`
- [Account dashboard](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/dashboard.js): `frontend/dashboard.js`
- [Transaction history](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/transactions.js): `frontend/transactions.js`
- [User administration](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/admin.js): `frontend/admin.js`
- [UI utilities](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/frontend/ui.js): `frontend/ui.js`

### Banking API

- [Account routes](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/controller/AccountController.java): `backend/src/main/java/com/example/banking/controller/AccountController.java`
- [Account operations](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/service/AccountService.java): `backend/src/main/java/com/example/banking/service/AccountService.java`
- [Admin routes](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/controller/AdminController.java): `backend/src/main/java/com/example/banking/controller/AdminController.java`
- [Admin operations](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/service/AdminService.java): `backend/src/main/java/com/example/banking/service/AdminService.java`

### Identity and security

- [Authentication routes](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/controller/AuthController.java): `backend/src/main/java/com/example/banking/controller/AuthController.java`
- [Authentication service](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/service/AuthService.java): `backend/src/main/java/com/example/banking/service/AuthService.java`
- [JWT security](https://github.com/anki-0015/bankingmanagementsysteme/tree/main/backend/src/main/java/com/example/banking/security): `backend/src/main/java/com/example/banking/security`
- [Email service](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/service/EmailService.java): `backend/src/main/java/com/example/banking/service/EmailService.java`

### Banking data

- [User repository](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/repository/UserRepository.java): `backend/src/main/java/com/example/banking/repository/UserRepository.java`
- [Transaction repository](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/repository/TransactionRepository.java): `backend/src/main/java/com/example/banking/repository/TransactionRepository.java`
- [Reset-token repository](https://github.com/anki-0015/bankingmanagementsysteme/blob/main/backend/src/main/java/com/example/banking/repository/PasswordResetTokenRepository.java): `backend/src/main/java/com/example/banking/repository/PasswordResetTokenRepository.java`
- [Banking models](https://github.com/anki-0015/bankingmanagementsysteme/tree/main/backend/src/main/java/com/example/banking/model): `backend/src/main/java/com/example/banking/model`

### Other components

- **Customer**
- **Administrator**
- **Database**
- **Email provider**

## Connections

- Customer → Sign-in and reset: uses
- Customer → Account dashboard: uses
- Customer → Transaction history: uses
- Administrator → User administration: uses
- Sign-in and reset → Authentication routes: requests auth
- Account dashboard → Account routes: requests account actions
- Transaction history → Account routes: requests history
- User administration → Admin routes: requests administration
- Sign-in and reset → UI utilities: shows notices
- Account dashboard → UI utilities: formats account view
- Transaction history → UI utilities: formats and exports
- Authentication routes → JWT security: uses authentication
- Account routes → JWT security: uses authentication
- Admin routes → JWT security: uses authorization
- Authentication service → Email service: sends reset email
- Email service → Email provider: sends mail
- User repository → Database: reads and writes
- Transaction repository → Database: reads and writes
- Reset-token repository → Database: reads and writes
