A Java-based ATM Simulator built with Swing GUI and MySQL database.
- 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
- 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
- Java JDK 8 or higher
- MySQL Server
- NetBeans IDE (recommended)
- Start MySQL Server
- Open MySQL command line or workbench
- Run the
database_setup.sqlscript:source database_setup.sql
- Verify tables are created:
USE bankmanagementsystem; SHOW TABLES;
- Open the project in NetBeans IDE
- Ensure MySQL Connector JAR is in the project libraries
- Update database connection in
Conn.javaif needed:c = DriverManager.getConnection("jdbc:mysql://localhost:3306/bankmanagementsystem", "root", "your_password");
- Build and run the project
- Card Number: 5040936000000000
- PIN: 1234
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
- Missing Package Declarations: Added proper package statements
- Missing Imports: Added required import statements
- Incomplete Action Handlers: Implemented all ATM operations
- Missing Classes: Created Withdrawal, FastCash, BalanceCheck, PinChange
- Database Connection: Fixed Conn.java with proper imports
- MiniStatement: Completely rewrote with proper functionality
- Enhanced Error Handling: Better validation and user feedback
- Balance Validation: Prevents overdraft in withdrawals
- Secure PIN Management: Proper PIN change functionality
- Transaction History: Detailed mini statement with balance
- Fast Cash Options: Quick withdrawal with predefined amounts
- Database Setup Script: Automated table creation
- Start MySQL Server
- Run Database Setup:
mysql -u root -p < database_setup.sql - Open in NetBeans and run the project
- Login with test credentials or create new account
- Click "SIGN UP" on login screen
- Complete 3-step registration process
- Note your generated card number and PIN
- Login with your credentials
- Enter card number and PIN
- Select desired transaction
- Follow on-screen instructions
- Complete transaction
- PIN Protection: Secure password fields
- Balance Validation: Prevents insufficient fund withdrawals
- Input Validation: Proper data validation
- Transaction Logging: All transactions are recorded
- login: Card numbers and PINs
- signup: Personal details (page 1)
- signuptwo: Additional details (page 2)
- signupthree: Account details (page 3)
- bank: Transaction records
- Database Connection Error: Check MySQL server and credentials
- Class Not Found: Ensure all JAR files are in classpath
- Image Not Found: Verify icons folder structure
- Compilation Errors: Check Java version compatibility
- Update database password in
Conn.java - Add missing JAR files to project libraries
- Ensure proper file structure
- Use Java 8 or higher
This project is for educational purposes. Feel free to modify and enhance.
Feel free to submit issues and enhancement requests!
Happy Banking! 🏦💳