This project is a Bank Management System implemented in Java, following strong Object-Oriented Programming concepts such as abstraction, inheritance, polymorphism, interface implementation, and encapsulation.
This system allows users to manage various types of bank accounts, perform transactions, calculate interest, and view reports.
-
Create different types of bank accounts:
- Savings Account
- Current Account
- Loan Account
- Salary Account
-
Deposit & Withdraw money
-
Overdraft handling (Current Account)
-
Loan repayment logic
-
Interest calculation
-
End-of-Day Report
-
Transaction history for each account
-
Fully menu-driven program
- Java (Core Java)
- OOP Concepts
- UML Design
- Eclipse/VS Code/IntelliJ
Below is the UML diagram representing the full architecture:
src/
├── AccountOperation.java # Interface
├── BankAccount.java # Abstract Parent Class
├── CurrentAccount.java # Child Class
├── SavingsAccount.java # Child Class
├── SalaryAccount.java # Child Class
├── LoanAccount.java # Child Class
├── Transaction.java # Transaction Model
├── Bank.java # Bank Details
└── Test.java # Main Menu-Driven Program
Defines abstract operations like deposit, withdraw, showDetails, get/set account data, etc.
Parent class for all accounts. Contains:
- Common fields (accountNumber, holderName, balance, Aadhaar, nominee)
- Common methods for deposit, show details, add transactions etc.
Each child class overrides withdrawal rules:
| Account Type | Special Rules |
|---|---|
| SavingAccount | Minimum Balance = 1000, Interest Rate applies |
| CurrentAccount | Overdraft limit available |
| SalaryAccount | Last Salary Date check |
| LoanAccount | Loan Amount, Outstanding Amount, EMI deduction |
Stores transactionID, amount, date, type, updated balance.
-
Clone the repository:
git clone https://github.com/your-username/your-repository.git -
Open project in Eclipse/VS Code/IntelliJ.
-
Run
Test.java -
Use the console menu to perform operations.
1. Create Account
2. Deposit
3. Withdraw
4. Display Account Details
5. Display All Accounts
6. Transaction History
7. Calculate Interest
8. End Of Day Report
9. Exit
- GUI using JavaFX or Swing
- Database integration (MySQL)
- Web-based version using Spring Boot
Created by Nita Waghchaure
