Skip to content

Experience banking at your fingertips—simulate real ATM transactions in a safe, virtual environment!

Notifications You must be signed in to change notification settings

DineshReddy12002/ATM---Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ATM Simulator - Banking Project

A Java-based ATM Simulator built with Swing GUI and MySQL database.

🏦 Features

Core ATM Operations

  • Login System: Card number and PIN-based authentication
  • Deposit: Add money to account
  • Withdrawal: Withdraw cash with balance validation
  • Fast Cash: Quick withdrawal with predefined amounts (Rs 100, 500, 1000, 2000, 5000, 10000)
  • Balance Check: View current account balance
  • Mini Statement: View recent transaction history
  • PIN Change: Change account PIN securely

Account Management

  • Multi-step Registration: 3-page signup process
  • Personal Details: Name, DOB, gender, contact info
  • Additional Details: Aadhar, PAN, address information
  • Account Setup: Account type, card number, PIN generation

🛠️ Setup Instructions

Prerequisites

  • Java JDK 8 or higher
  • MySQL Server
  • NetBeans IDE (recommended)

Database Setup

  1. Start MySQL Server
  2. Open MySQL command line or workbench
  3. Run the database_setup.sql script:
    source database_setup.sql
  4. Verify tables are created:
    USE bankmanagementsystem;
    SHOW TABLES;

Project Setup

  1. Open the project in NetBeans IDE
  2. Ensure MySQL Connector JAR is in the project libraries
  3. Update database connection in Conn.java if needed:
    c = DriverManager.getConnection("jdbc:mysql://localhost:3306/bankmanagementsystem", "root", "your_password");
  4. Build and run the project

Test Account

  • Card Number: 5040936000000000
  • PIN: 1234

📁 Project Structure

src/
├── Bank/Management/System/
│   ├── Login.java              # Main login interface
│   ├── Conn.java               # Database connection
│   ├── Transaction.java        # Main ATM menu
│   ├── Deposit.java            # Deposit functionality
│   ├── Withdrawal.java         # Cash withdrawal
│   ├── FastCash.java           # Quick cash withdrawal
│   ├── BalanceCheck.java       # Balance inquiry
│   ├── PinChange.java          # PIN change
│   ├── MiniStatement.java      # Transaction history
│   ├── SignupOne.java          # Registration page 1
│   ├── SignupTwo.java          # Registration page 2
│   └── SignupThree.java        # Registration page 3
├── icons/
│   ├── logo.jpg               # Bank logo
│   └── atm.jpg                # ATM background
└── mysql-connector-java-8.0.28.jar

🔧 Issues Fixed

Original Issues

  1. Missing Package Declarations: Added proper package statements
  2. Missing Imports: Added required import statements
  3. Incomplete Action Handlers: Implemented all ATM operations
  4. Missing Classes: Created Withdrawal, FastCash, BalanceCheck, PinChange
  5. Database Connection: Fixed Conn.java with proper imports
  6. MiniStatement: Completely rewrote with proper functionality

New Features Added

  1. Enhanced Error Handling: Better validation and user feedback
  2. Balance Validation: Prevents overdraft in withdrawals
  3. Secure PIN Management: Proper PIN change functionality
  4. Transaction History: Detailed mini statement with balance
  5. Fast Cash Options: Quick withdrawal with predefined amounts
  6. Database Setup Script: Automated table creation

🚀 How to Run

  1. Start MySQL Server
  2. Run Database Setup:
    mysql -u root -p < database_setup.sql
  3. Open in NetBeans and run the project
  4. Login with test credentials or create new account

🎯 Usage

For New Users

  1. Click "SIGN UP" on login screen
  2. Complete 3-step registration process
  3. Note your generated card number and PIN
  4. Login with your credentials

For Existing Users

  1. Enter card number and PIN
  2. Select desired transaction
  3. Follow on-screen instructions
  4. Complete transaction

🔒 Security Features

  • PIN Protection: Secure password fields
  • Balance Validation: Prevents insufficient fund withdrawals
  • Input Validation: Proper data validation
  • Transaction Logging: All transactions are recorded

📊 Database Schema

Tables

  • login: Card numbers and PINs
  • signup: Personal details (page 1)
  • signuptwo: Additional details (page 2)
  • signupthree: Account details (page 3)
  • bank: Transaction records

🐛 Troubleshooting

Common Issues

  1. Database Connection Error: Check MySQL server and credentials
  2. Class Not Found: Ensure all JAR files are in classpath
  3. Image Not Found: Verify icons folder structure
  4. Compilation Errors: Check Java version compatibility

Solutions

  1. Update database password in Conn.java
  2. Add missing JAR files to project libraries
  3. Ensure proper file structure
  4. Use Java 8 or higher

📝 License

This project is for educational purposes. Feel free to modify and enhance.

🤝 Contributing

Feel free to submit issues and enhancement requests!


Happy Banking! 🏦💳

About

Experience banking at your fingertips—simulate real ATM transactions in a safe, virtual environment!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published