FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

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

Latest commit

ย 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฆ PinnacleBankCore

๐Ÿš€ 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

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL