Skip to content

RuthalaKiran/miniProject_BankApplication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banking System – Java Mini Project


Overview

This is a console-based Java Banking System built as part of the Virtusa Full Stack Development Program Mini Project.
It demonstrates Object-Oriented Programming, Collections Framework, Multithreading, and Exception Handling in a real-world scenario.

Users can create accounts, perform deposits, withdrawals, transfers, and even simulate concurrent transactions using multiple threads.


🧩 Features

Create a new bank account
Deposit / Withdraw / Transfer money
Show account balance
Prevent invalid or duplicate account creation
Handle errors gracefully with custom exceptions
Thread-safe operations using ConcurrentHashMap
Demonstrate multithreading with ExecutorService
Layered architecture – Model, Service, and Main packages
Functional programming (Streams / Lambda) used for validation


📂 Project Folder Structure

com/
└── bank/
 ├── model/
 │ ├── Account.java
 │ └── SavingsAccount.java (Inheritance demo)
 │
 ├── service/
 │ ├── AccountService.java (Interface – abstraction)
 │ └── AccountServiceImpl.java (Implementation – polymorphism)
 │
 ├── exceptions/
 │ ├── AccountNotFoundException.java
 │ ├── InvalidAmountException.java
 │ ├── InvalidNameException.java
 │ └── InsufficientBalanceException.java
 │
 ├── utils/
 │ └── AccountNumGenerator.java
 │
 └── main/
  ├── Main.java
  ├── AccountOperationsMenu.java
  └── AccountOperations.java


⚙️ Technologies & Concepts Used

Concept Description
OOP Classes, Objects, Abstraction (Interface), Polymorphism, Encapsulation, Inheritance
Collections Used ConcurrentHashMap<String, Account> for thread-safe account storage
Generics Strongly typed collections (Map<String, Account>)
Functional Programming Used Streams and Lambda expressions (anyMatch(), ExecutorService)
Multithreading Used ExecutorService, Runnable, and synchronized blocks
Exception Handling Custom exceptions with meaningful messages
Synchronization Ensures thread safety during concurrent deposits/withdrawals
Layered Architecture Clear separation: Model → Service → Main (UI)
Input Validation Handled with try-catch and specific exception blocks

Menu Options

Main Menu

  1. Create Account
  2. Perform Operations on Existing Account
  3. Exit

Account Menu

  1. Deposit
  2. Withdraw
  3. Transfer
  4. Show Balance
  5. Simulate Concurrent Transactions
  6. Back to Main Menu

🧠 Exceptions

All exceptions are handled gracefully with proper user messages.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages