How ashgenz/banking-and-account-management-system works
This is a console banking application: users choose menu actions in Main, which delegates account creation, deposits, withdrawals, transfers, and lookups to Bank. Bank manages an in-memory account index and invokes account-model operations; account types enforce their own withdrawal rules. The README documents these capabilities, while sampled source confirms the CLI and service wiring. Some validation errors are caught inside Bank, so failures do not always propagate to the CLI.
Main entry points: Bank.java Bank operations · Account.java Account base · Main.java Menu and CLI · SavingsAccount.java Savings account
Components 14
Console interface
- Menu and CLI
src/main/Main.java
Banking service
- Bank operations
src/service/Bank.java - Open account
src/service/Bank.java - Deposit funds
src/service/Bank.java - Withdraw funds
src/service/Bank.java - Transfer funds
src/service/Bank.java - Find account
src/service/Bank.java
Account domain
- Account base
src/models/Account.java - Savings account
src/models/SavingsAccount.java - Current account
src/models/CurrentAccount.java - Bank operations contract
src/interfaces/BankOperations.java
State and errors
- Account index
src/service/Bank.java - Domain exceptions
src/exceptions
Other components
- Bank customer
Connections 24
- Bank customer → Menu and CLI: enters choices
- Menu and CLI → Bank operations: dispatches actions
- Bank operations → Open account: handles creation
- Bank operations → Deposit funds: handles deposits
- Bank operations → Withdraw funds: handles withdrawals
- Bank operations → Transfer funds: handles transfers
- Bank operations → Find account: handles lookups
- Open account → Account index: checks and stores
- Find account → Account index: reads account
- Open account → Savings account: creates savings
- Open account → Current account: creates current
- Deposit funds → Find account: finds account
- Withdraw funds → Find account: finds account
- Transfer funds → Find account: finds both
- Deposit funds → Account base: calls deposit
- Withdraw funds → Account base: calls withdraw
- Transfer funds → Account base: withdraws and deposits
- Menu and CLI → Find account: requests account
- Menu and CLI → Account base: reads details
- Savings account → Account base: extends
- Current account → Account base: extends
- Account base → Bank operations contract: implements
- Bank operations → Domain exceptions: raises and catches
- Menu and CLI → Domain exceptions: catches lookup error