Based on the given account data and transaction data, a bank management system was created in Java.
CHEQUING ACCOUNT
A chequing account contains an id, name, and balance.
A chequing account allows users to deposit or withdraw an amount of money.
The chequing account charges an overdraft fee of $5.50 if the amount being withdrawn exceeds the account balance.
The overdraft limit is $200.00 dollars.
A chequing account is taxable. Income that exceeds $3,000 is taxed 15%.
SAVINGS ACCOUNT
A savings account contains an id, name, and balance.
A savings account allows users to deposit or withdraw an amount of money.
Deposits are free, but the savings account charges a $5.00 fee for every withdrawal.
LOAN ACCOUNT
A loan account contains an id, name, and balance.
A loan account allows users to deposit or withdraw an amount of money.
A withdrawal can't made if the debt exceeds $10,000.
Every withdrawal is charged a fixed interest rate of 2%.
TRANSACTION
An account transaction can be: WITHDRAW or DEPOSIT.
Every transaction has an id, amount, and timestamp.
Transactions must be sorted based on timestamp.
A transaction's timestamp must display to the user as a readable date.
BANK
The bank keeps a record of every account created and transaction made.
The id of a transaction matches the id of an account.
Depending on the account, some transactions may be denied.
The bank can deduct taxes from taxable accounts.