Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ATM Simulation System Banner

🏧 ATM Simulation System

A feature-rich desktop banking application developed using Java Swing, JDBC, and MySQL that simulates the functionality of a real-world Automated Teller Machine (ATM). The application offers secure authentication, account management, and essential banking services through an intuitive graphical user interface.


πŸ“– About The Project

The ATM Simulation System is a desktop-based banking application designed to simulate the core functionality of a real-world Automated Teller Machine (ATM). Built using Java Swing, JDBC, and MySQL, the project provides users with a secure and interactive environment to perform day-to-day banking operations.

Users can create a new account, authenticate using their Card Number and PIN, and perform various banking services including deposits, withdrawals, balance enquiry, fast cash transactions, PIN changes, and viewing mini statements. Every transaction is securely stored in a MySQL database, ensuring persistent record management and transaction history.

This project demonstrates practical implementation of:

  • Object-Oriented Programming (OOP)
  • Java Swing GUI Development
  • JDBC Database Connectivity
  • MySQL Database Management
  • Authentication & Authorization
  • Transaction Processing
  • Event-Driven Programming
  • CRUD Operations

The application is designed with an ATM-inspired graphical interface to provide a realistic user experience while showcasing core Java development concepts.


✨ Features

πŸ” Secure Authentication

  • Secure Login using Card Number & PIN
  • New Customer Registration
  • Multi-step Account Creation
  • Card Number Verification
  • PIN Authentication

πŸ’³ Banking Services

  • Deposit Money
  • Withdraw Money
  • Fast Cash
  • Balance Enquiry
  • PIN Change
  • Mini Statement Generation

πŸ—„ Database Management

  • MySQL Database Integration
  • JDBC Connectivity
  • Persistent Transaction Storage
  • Customer Information Management
  • Login Credential Storage
  • Banking Transaction Records

πŸ–₯ User Experience

  • ATM-inspired Graphical Interface
  • Interactive Navigation
  • Simple & User-Friendly Design
  • Real-Time Transaction Updates
  • Smooth Banking Workflow

πŸ“Έ Screenshots

πŸ”‘ Login Screen


🏧 ATM Dashboard


πŸ’΅ Deposit Money


πŸ’Έ Withdraw Money


⚑ Fast Cash


πŸ“„ Mini Statement


πŸ›  Tech Stack

Category Technology
Programming Language Java
GUI Framework Java Swing
Database MySQL
Database Connectivity JDBC
External Library JCalendar
Development Environment Eclipse / IntelliJ IDEA / VS Code
Version Control Git & GitHub
Operating System Windows

πŸ— System Architecture

The application follows a layered architecture where the graphical user interface interacts with the business logic, which communicates with the MySQL database through JDBC.

                        ATM Simulation System

        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚              Java Swing GUI                  β”‚
        β”‚   (Login, Signup, ATM Dashboard, Forms)      β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚               β”‚                β”‚
            β–Ό               β–Ό                β–Ό
     Authentication    Banking Services   Account Management
      Login/Signup   Deposit β€’ Withdraw   PIN Change β€’ Balance
                            β”‚
                            β–Ό
                  Transaction Processing
                            β”‚
                            β–Ό
                    JDBC Connectivity Layer
                            β”‚
                            β–Ό
                      MySQL Database

βš™οΈ Application Workflow

The following workflow illustrates how a typical banking transaction is processed.

              User Launches Application
                         β”‚
                         β–Ό
                 Login / Registration
                         β”‚
                         β–Ό
           Authenticate Card Number & PIN
                         β”‚
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚                   β”‚
         Authentication        Authentication
             Success              Failed
               β”‚                   β”‚
               β–Ό                   β–Ό
      Display ATM Dashboard   Show Error Message
               β”‚
               β–Ό
      Select Banking Operation
               β”‚
               β–Ό
      Execute Requested Operation
               β”‚
               β–Ό
      Update MySQL Database
               β”‚
               β–Ό
 Display Updated Information to User
               β”‚
               β–Ό
          Exit / Logout

πŸ—„ Database Schema

The application uses MySQL as the backend database to securely store customer information, login credentials, account details, and banking transactions.

Database Tables

Table Purpose
signup Stores customer personal information
signupTwo Stores additional customer details
signupThree Stores account type, card number, PIN, and banking facilities
login Stores authentication credentials
bank Stores deposits, withdrawals, and transaction history

Database Script

The SQL script required to set up the database is available inside:

database/
└── bankmanagementsystem.sql

πŸ“‚ Project Structure

ATM-Simulator-System
β”‚
β”œβ”€β”€ assets
β”‚   β”œβ”€β”€ banner
β”‚   β”‚   └── banner.png
β”‚   β”‚
β”‚   └── screenshots
β”‚       β”œβ”€β”€ login.png
β”‚       β”œβ”€β”€ atm_interface.png
β”‚       β”œβ”€β”€ deposit.png
β”‚       β”œβ”€β”€ withdraw.png
β”‚       β”œβ”€β”€ fastcash.png
β”‚       └── mini_statement.png
β”‚
β”œβ”€β”€ database
β”‚   └── bankmanagementsystem.sql
β”‚
β”œβ”€β”€ lib
β”‚   β”œβ”€β”€ mysql-connector-java-8.0.28.jar
β”‚   └── jcalendar-tz-1.3.3-4.jar
β”‚
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ Login.java
β”‚   β”œβ”€β”€ SignupOne.java
β”‚   β”œβ”€β”€ SignupTwo.java
β”‚   β”œβ”€β”€ SignupThree.java
β”‚   β”œβ”€β”€ Deposit.java
β”‚   β”œβ”€β”€ Withdraw.java
β”‚   β”œβ”€β”€ FastCash.java
β”‚   β”œβ”€β”€ BalanceEnquiry.java
β”‚   β”œβ”€β”€ MiniStatement.java
β”‚   β”œβ”€β”€ PinChange.java
β”‚   β”œβ”€β”€ Transactions.java
β”‚   β”œβ”€β”€ Conn.java
β”‚   β”‚
β”‚   └── icons
β”‚       β”œβ”€β”€ atm.jpg
β”‚       β”œβ”€β”€ logo.jpg
β”‚       └── ...
β”‚
└── README.md

πŸ’‘ Key Concepts Demonstrated

This project showcases practical implementation of several important Java concepts:

  • Object-Oriented Programming (OOP)
  • Java Swing GUI Development
  • JDBC Database Connectivity
  • MySQL Database Management
  • Event-Driven Programming
  • Authentication & Authorization
  • Transaction Processing
  • CRUD Operations
  • Modular Application Design
  • Desktop Application Development

πŸš€ Getting Started

Follow these steps to set up and run the project on your local machine.

1️⃣ Clone the Repository

git clone https://github.com/TanmayT134/ATM-Simulation-System-using-Java.git

2️⃣ Open the Project

Import the project into your preferred Java IDE.

Supported IDEs:

  • Eclipse IDE
  • IntelliJ IDEA
  • Visual Studio Code

3️⃣ Install Required Libraries

Ensure the following libraries are available in your project.

Library Purpose
mysql-connector-java-8.0.28.jar MySQL JDBC Driver
jcalendar-tz-1.3.3-4.jar Date Picker Component

These libraries are already included inside the lib folder.


βš™οΈ Database Setup

Step 1

Install MySQL Server on your system.


Step 2

Create the database.

CREATE DATABASE bankmanagementsystem;

Step 3

Import the SQL script located at:

database/bankmanagementsystem.sql

Step 4

Open

src/Conn.java

Update your database credentials.

Example:

String url = "jdbc:mysql://localhost:3306/bankmanagementsystem";
String username = "your_username";
String password = "your_password";

Step 5

Run

Login.java

The ATM application is now ready to use.


▢️ Usage

Create a New Account

  • Register as a new customer.
  • Complete the account creation process.
  • Receive your Card Number and PIN.

Login

  • Enter your Card Number.
  • Enter your PIN.
  • Authenticate securely.

Perform Banking Operations

Choose any available banking service:

  • Deposit Money
  • Withdraw Money
  • Fast Cash
  • Balance Enquiry
  • PIN Change
  • Mini Statement

Exit

Close the application once all transactions have been completed.


🎯 Learning Outcomes

This project helped strengthen practical knowledge of:

  • Java Object-Oriented Programming
  • Java Swing GUI Development
  • JDBC Connectivity
  • MySQL Database Integration
  • Event-Driven Programming
  • CRUD Operations
  • Authentication Systems
  • Banking Transaction Processing
  • Desktop Application Development
  • Software Architecture Fundamentals

πŸš€ Future Enhancements

The following features can further improve the application:

  • πŸ’³ Fund Transfer Between Accounts
  • πŸ“„ Printable Transaction Receipts
  • πŸ“§ Email Transaction Notifications
  • πŸ“± SMS Alerts
  • πŸ” Password Encryption
  • πŸ‘€ User Profile Management
  • 🧾 Detailed Transaction Reports
  • 🏦 Admin Dashboard
  • 🌍 Multi-language Support
  • ☁️ Cloud Database Integration
  • πŸ“² Mobile Banking Companion App
  • πŸ“Š Analytics Dashboard

🀝 Contributing

Contributions are welcome!

If you'd like to improve this project:

  1. Fork the repository.
  2. Create a new feature branch.
git checkout -b feature/YourFeature
  1. Commit your changes.
git commit -m "Add Your Feature"
  1. Push the branch.
git push origin feature/YourFeature
  1. Open a Pull Request.

πŸ‘¨β€πŸ’» Author

Tanmay Tawade

Java Developer β€’ Web Developer β€’ AI & Machine Learning Enthusiast


⭐ If you found this project helpful, consider giving it a star!

Your support helps motivate continued development and the creation of more open-source projects.

Thank you for visiting this repository!

Made with ❀️ by Tanmay Tawade

About

A Java Swing-based ATM Simulation System with MySQL database integration, featuring secure authentication, account registration, deposits, withdrawals, balance enquiry, PIN management, and transaction history using JDBC.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages