This is a Java console application that allows users to manage three types of accounts: Chequing Account, Savings Account, and Loan Account.
A chequing account contains an id, name, and balance. It 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%.
A savings account contains an id, name, and balance. It 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.
A loan account contains an id, name, and balance. It allows users to deposit or withdraw an amount of money. A withdrawal can't be made if the debt exceeds $10,000. Every withdrawal is charged a fixed interest rate of 2%.
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.
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.
Contributions are welcome! If you find a bug or have a suggestion for an improvement, please open an issue or submit a pull request.