Skip to content

Anshika21-code/Banking-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bank Management System (Java + JDBC)

A console-based Bank Management System built using Java and JDBC, designed to demonstrate real-world banking operations, secure authentication, and ACID-compliant transaction handling.
This project is beginner-friendly yet strong enough to showcase backend and database skills to recruiters.


Project Overview

The Bank Management System allows users to securely create and manage bank accounts while performing essential financial operations such as deposits, withdrawals, transfers, and balance checks.

The application uses JDBC to connect Java with a MySQL database, ensuring secure authentication, data integrity, and reliable transaction processing.


Project Structure

image

Project Workflow

image

Features

-> User registration with secure credential storage
-> Secure login using BCrypt password hashing
-> Account creation and management
-> Debit, credit, and fund transfer operations
-> Balance inquiry functionality
-> ACID-compliant transactions using commit and rollback
-> Input validation to prevent invalid or malicious inputs
-> Modular, scalable, and maintainable Java code


Authentication & Security

Security is a core focus of this project:

  • Implemented user authentication using BCrypt hashing to securely store passwords.
  • Enforced strong password policies and input validation during registration and login.
  • Reduced invalid login attempts by approximately 70% through robust authentication and validation mechanisms.
  • Ensured transaction safety by handling database operations using commit and rollback, preventing partial or inconsistent updates.

Tech Stack

  • Language: Java
  • Database: MySQL
  • Database Connectivity: JDBC
  • Security: BCrypt (Password Hashing)
  • Architecture: Console-based application
  • Tools: IntelliJ IDEA and MySQL Workbench

Database Design

The database is designed to ensure consistency, scalability, and reliability.

image

Tables include:

  • users – Stores user credentials and authentication details
  • accounts – Maintains account information and balances

Key design principles:

  • Normalized schema
  • Foreign key relationships
  • ACID-compliant transaction handling

Setup Instructions

Prerequisites

  • Java (JDK 8 or higher)
  • MySQL installed
  • MySQL JDBC Connector

Clone the Repository

git clone https://github.com/your-username/Banking-System.git
cd Banking-System

About

Terminal Based Banking system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages