Skip to content

A Java-based ATM Simulation System implementing secure transaction logic with encapsulation and user authentication.

Notifications You must be signed in to change notification settings

prince-monga/ATM-Simulation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ณ SmartATM โ€“ Java-Based ATM Simulation System

SmartATM is a Java-based ATM Simulation System designed to mimic real-world ATM functionalities.
It allows users to authenticate securely, check balances, deposit, and withdraw money โ€” all within a console-based interface.
This project demonstrates encapsulation, loops, methods, and switch-case control flow in Java.


๐Ÿš€ Features

โœ… User Authentication โ€“ PIN-based secure access
โœ… Balance Inquiry โ€“ Displays the current account balance
โœ… Deposit Functionality โ€“ Add money to your account securely
โœ… Withdrawal Feature โ€“ Withdraw money with balance validation
โœ… Menu-Driven Interface โ€“ Simple, user-friendly options
โœ… Encapsulation โ€“ Data hiding for balance and PIN security


๐Ÿง  Concepts Used

  • Encapsulation
  • Loops (do-while)
  • Switch-Case Statements
  • User Authentication
  • Method Implementation
  • Conditional Statements

๐Ÿงฉ Technologies

Technology Purpose
Java Core programming language
Scanner Class User input handling
OOP Principles Encapsulation and modularity

๐Ÿ’ป How to Run the Project

๐Ÿชœ Steps:

  1. Clone the repository

    git clone https://github.com/yourusername/SmartATM.git
    cd SmartATM
    
    
  2. Compile the code

    javac ATM.java
  3. Run the program

    java ATM

๐Ÿงฎ Sample Output

Enter your 4-digit PIN: 1234

==== ATM Menu ====

  1. Check Balance
  2. Deposit Money
  3. Withdraw Money
  4. Exit Choose an option: 2 Enter deposit amount: 2000 Successfully deposited โ‚น2000

๐Ÿงพ Code Overview

Main Methods in ATM Class:

  • authenticate(int enteredPin) โ†’ Verifies PIN
  • checkBalance() โ†’ Displays current balance
  • deposit(double amount)` โ†’ Deposits entered amount
  • withdraw(double amount) โ†’ Withdraws cash with validation

๐ŸŽฏ Learning Outcome

By developing this project, I learned:

  • How to implement encapsulation to secure sensitive data
  • How to build interactive menus using loops and switch-case
  • The use of methods for modular programming
  • Practical application of authentication and transaction logic

๐Ÿง‘โ€๐Ÿ’ป Author

Prince Monga ๐Ÿš€ Java & Frontend Developer | AI & DevOps Enthusiast ๐Ÿ“ Sirsa, Haryana, India ๐ŸŒ https://princemonga.site ๐Ÿ“ง growthprinceofficial@gmail.com


โญ If you found this project helpful, give it a star on GitHub! โญ


---

Would you like me to make a **formatted README.md file (ready to upload)** for your GitHub repo named **SmartATM**?  
I can generate the `.md` file for you directly.

About

A Java-based ATM Simulation System implementing secure transaction logic with encapsulation and user authentication.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages