This project is a simple banking system implemented in Java, created for my SE201 class in Drexel. It supports creating and managing different types of bank accounts, processing deposits, withdrawals, transfers, and simulating the passage of time with APR accrual and minimum balance fees. The system is designed for educational purposes and includes comprehensive unit tests.
Note: This program was never finshed completely, so some features may not work as intended.
- Account Types: Checking, Savings, Certificate of Deposit (CD)
- Account Operations: Create, Deposit, Withdraw, Transfer, Pass (simulate months)
- Validation: Command and input validation for all operations
- Transaction Logging: Logs all transactions per account
- Invalid Command Tracking: Stores and outputs invalid commands
- APR Accrual: Monthly APR calculation for all accounts
- Minimum Balance Fee: Deducts fee for balances below threshold
- Account Closure: Automatically closes accounts with zero balance after time passes
src/
main/
java/
Account.java
AccountNumberValidation.java
AccountTypeValidation.java
Bank.java
CdAccountValidation.java
CertificateOfDeposit.java
Checking.java
CommandParsing.java
CommandProcessor.java
CommandValidation.java
CreateCommand.java
DepositCommand.java
DepositCommandValidation.java
InvalidCommands.java
MasterControl.java
PassCommandProcessor.java
PassCommandValidator.java
Savings.java
TransactionLogger.java
TransferCommand.java
TransferCommandProcessor.java
test/
java/
(Unit tests for all major classes)
This project uses Gradle. To build:
./gradlew buildThe main entry point is typically through the MasterControl class, which processes a list of commands. You can run the project using your IDE or by creating a main class that initializes MasterControl and feeds it commands.
Run all tests with:
./gradlew testUnit tests are located in test/java and cover all major functionalities.
- Account: Base class for all account types.
- Bank: Manages accounts and processes operations.
- MasterControl: Orchestrates command processing and output.
- CommandProcessor: Parses and executes commands.
- TransactionLogger: Logs transactions for accounts.
- InvalidCommands: Stores invalid commands for reporting.
create checking 12345678 1.0deposit 12345678 500withdraw 12345678 100transfer 12345678 87654321 200pass 1
This project is for educational purposes.