Skip to content

Latest commit

 

History

History
129 lines (106 loc) · 3.76 KB

File metadata and controls

129 lines (106 loc) · 3.76 KB

🏦 Bank Account Management System

A professional desktop-based banking application developed using Java Swing and MySQL. This project simulates a real-world ATM experience, covering everything from secure account registration to real-time transaction history.


📸 Application Preview

Login Screen Transaction Section
Login Transaction

✨ Project Highlights

  • Secure Transactions: Uses PreparedStatement to prevent SQL Injection attacks.
  • Dynamic Calculations: Real-time balance enquiry calculated from transaction history.
  • User-Friendly GUI: Built with a multi-window interface using Java Swing and AWT.
  • Automated Logic: Auto-generates 16-digit Card Numbers and 4-digit PINs.

🚀 Features

🔐 Account & Security

  • 3-Step Registration: Captures personal, professional, and account-specific details.
  • Secure Authentication: Login system validated against the MySQL database.
  • PIN Management: Securely change your ATM PIN within the app.

💰 Banking Operations

  • Deposit & Withdrawal: Instant updates to the database records.
  • Fast Cash: Quick-select buttons for common withdrawal amounts.
  • Mini Statement: View the last 10 transactions with exact date and time stamps.
  • Balance Enquiry: Instant check of current available funds.

🛠 Tech Stack

Component Technology
Language Java (JDK 8+)
GUI Framework Java Swing & AWT
Database MySQL
Connectivity JDBC (Java Database Connectivity)

❔Logic Flow Diagram

A[Start: Login Screen] -->|New User| B[Step 1: Personal Info]
B --> C[Step 2: Professional Info]
C --> D[Step 3: Account Details]
D --> E[Card & PIN Generated]
E --> A
A -->|Existing User| F{Authentication}
F -->|Success| G[Main ATM Menu]
F -->|Fail| A
G --> H[Deposit / Withdraw]
G --> I[Balance Enquiry]
G --> J[Mini Statement]
H --> K[Update Transaction Table]
K --> G

🗄 Database Schema

The system uses a relational database to manage user information and financial logs.

1. Personal Details (signupone)

CREATE TABLE signupone (
  formno VARCHAR (10) ,
  name VARCHAR (50),
  fname varchar(50),
  dob DATE,
  gender VARCHAR(10),
  email VARCHAR(50),
  mstatus VARCHAR(15),
  address VARCHAR(100),
  city VARCHAR(50),
  state VARCHAR(50),
  pincode VARCHAR(10)
);

2. Additional Details (signuptwo)

CREATE TABLE signuptwo (
    formno VARCHAR(10) PRIMARY KEY,
    religion VARCHAR(15),
    category VARCHAR(15),
    income VARCHAR(30),
    education VARCHAR(30),
    occupation VARCHAR(30),
    pan VARCHAR(20),
    aadhar VARCHAR(20),
    seniorcitizen VARCHAR(5),
    existingaccount VARCHAR(5)
);

3. Account Details (signupthree)

CREATE TABLE signupthree (
    formno VARCHAR(10),
    accounttype VARCHAR(30),
    cardnumber VARCHAR(20),
    pin VARCHAR(10),
    services VARCHAR(200)
);

4. Transaction Logs (bank)

CREATE TABLE bank (
   pin VARCHAR(10),
   date VARCHAR(50),
   type VARCHAR(30),
   amount INT
);

⚙️ Installation & Setup


Developed by Pranjal Patel