Skip to content

CoreJavaPulse/PinnacleBankCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

๐Ÿฆ PinnacleBankCore

Core Java License: MIT

๐Ÿš€ Production-Ready Core Java Console Banking System (OOP-Driven Design)

PinnacleBankCore is a fully menu-driven console banking application developed using pure Core Java, demonstrating enterprise-level OOP principles, custom exception handling, and clean layered architecture.

โšก No frameworks. No databases. Pure Core Java fundamentals — Perfect for Java interviews, OOP mastery, and fresher portfolios.


๐ŸŽฏ Project Objective

Build a scalable banking system showcasing:

  • โœ… SOLID principles in action
  • โœ… 7+ custom business exceptions
  • โœ… Real-world banking logic (interest, min balance, daily limits)
  • โœ… Professional console UI with formatted tables

๐Ÿ“ฑ Live Demo

--------------------- Main Menu ---------------------
1:Add Account 2:Display All 3:Search Account
4:Transaction 5:Update 6:Delete Account
7:Add Interest 8:Account Statement

Choose (1-8): 1
Customer ID: 101
Customer Name: Hitesh Mane
Account No: 123456
IFSC Code: SBIN0001234
Initial Balance (โ‚น): 5000
Type (SAVINGS/CURRENT): SAVINGS
Interest Rate (%): 6.5

โœ… Account created: Hitesh Mane

๐Ÿง  Core Java Concepts Mastered

Concept Implementation Business Value
Inheritance Account → SavingsAccount/CurrentAccount Account hierarchy
Polymorphism addInterestToAllAccounts() Uniform processing
Abstraction BankAccount interface + Account abstract Clean contracts
Encapsulation Private fields + validation Data integrity
Collections ArrayList<Customer>, List<Transaction> Efficient storage
Exception Handling 7+ custom checked exceptions Rule enforcement
Enums AccountType, TransactionType Type safety
Streams/Lambdas Duplicate checks, searches Modern Java

โš™๏ธ Production Features

Feature Savings Account Current Account Status
Create Account โœ… โ‚น1000 min balance โœ… Business accounts ๐ŸŸข Complete
Deposit/Withdraw โœ… Transaction history โœ… Transaction history ๐ŸŸข Complete
Interest โœ… 6.5% monthly โŒ Zero interest ๐ŸŸข Complete
Search ID/AccNo/Name ID/AccNo/Name ๐ŸŸข Complete
Statement Last N transactions Last N transactions ๐ŸŸข Complete
Update Name + Address Name + Address ๐ŸŸข Complete
Delete Balance=0 required Balance=0 required ๐ŸŸข Complete

๐Ÿ—‚๏ธ Enterprise Architecture

┌─────────────────┐      ┌──────────────────┐      ┌─────────────────┐
│    BankMain     │ ───โ–ถ │   BankServices   │ ───โ–ถ │     Customer    │
│   (Controller)  │      │ (Business Logic) │      │        ↕        │
└─────────────────┘      └──────────────────┘      │     Account     │
                                                   │        ↕        │
                                                   │   Transactions  │
                                                   │     Address     │
                                                   └─────────────────┘

๐Ÿ“ Project Structure

PinnacleBankCore/
├── BankMain.java
├── service/
│   └── BankServices.java
├── model/
│   ├── entity/
│   │   ├── BankAccount.java
│   │   ├── Account.java
│   │   ├── SavingsAccount.java
│   │   ├── CurrentAccount.java
│   │   ├── Customer.java
│   │   ├── Transaction.java
│   │   └── Address.java
│   └── enums/
│       ├── AccountType.java
│       └── TransactionType.java
├── exceptions/
│   ├── AccountNotFoundException.java
│   ├── DuplicateAccountException.java
│   ├── InsufficientFundsException.java
│   ├── InvalidAmountException.java
│   ├── MinimumBalanceException.java
│   ├── DailyLimitExceededException.java
│   └── InvalidIFSCException.java
└── util/
    └── BankConstants.java

๐Ÿšจ Business Exceptions Enforced

โŒ AccountNotFoundException(101)
โŒ DuplicateAccountException(123456)
โŒ InsufficientFundsException(5000.00/2000.00)
โŒ InvalidAmountException(-100.00)
โŒ MinimumBalanceException(500.00)
โŒ DailyLimitExceededException()
โŒ InvalidIFSCException(INVALID123)

โ–ถ๏ธ Quick Start

1. Clone the repository  
2. Open the project in **Eclipse / IntelliJ IDEA**  
3. Run `BankMain.java`  
4. Use the console menu to interact

๐Ÿ”ง Prerequisites

  • JDK 17+
  • Any Java IDE

๐ŸŽ“ Perfect For

  • โœ… Java Fresher Interviews
  • โœ… OOP Concept Demonstration
  • โœ… Core Java Portfolio
  • โœ… Technical Round Preparation
  • โœ… College Projects

๐Ÿš€ Production Enhancements Planned

  • ๐Ÿ“ File Persistence (ObjectInputStream)
  • ๐Ÿ” Account Transfers
  • ๐Ÿ—„๏ธ JDBC Integration (MySQL/PostgreSQL)
  • ๐Ÿงช JUnit 5 Tests (95% coverage target)
  • โšก Multithreading (concurrent transactions)

๐Ÿ‘จ‍๐Ÿ’ป Author

Hitesh Mane Java Backend Developer | Pune, India

๐Ÿ“ง hiteshmane5hm@gmail.com


โญ If you like this project, don't forget to star the repo!

About

๐Ÿš€ PinnacleBank Core - Enterprise Java Banking System Production-grade console app with CRUD, transactions, 8 custom banking exceptions, and professional com.pinnaclebank.core.* architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages