# Java ATM Simulator: OOP Project for Students
> A comprehensive Java mini-project covering ATM simulation, Object-Oriented Programming concepts, user authentication, and transaction modules.

Tags: java-project, atm-simulator, oop-concepts, programming-guide, student-project, java-source-code, software-architecture
## ATM Interface System Overview
- **Course:** BCS306A - Object Oriented Programming with Java
- **Level:** 3rd Semester Computer Science
- **Project Goal:** Simulate essential bank functionalities in a console application to practice OOP principles.

## Core Objectives
- Develop a user-friendly application mimicking actual ATM logic.
- Implement **Exception Handling** for invalid inputs like negative withdrawals.
- Apply **Encapsulation** using private variables to secure user data (PIN and Balance).
- Ensure arithmetic accuracy during fund transfers.

## Project Scope & Modules
- **User Authentication:** Validates User ID and PIN.
- **Transactions:** Manages Cash Withdrawals, Deposits, and Transfers.
- **Inquiry:** Checks current account balance.
- **Session Control:** Secure exit and loop mechanisms.

## Technical Architecture
- **Language:** Java (JDK 17+)
- **Development Environment:** NetBeans, Eclipse, or IntelliJ IDEA.
- **Data Handling:** Java Collections (HashMap/ArrayList) or File I/O for simulation.
- **Flow Logic:** Sequential control flow starting with PIN checking, followed by a menu-driven switch-case logic within a `while(true)` loop.

## Final Results & Enhancements
- The system successfully performs secure authentication and accurate balance updates during runtime.
- **Future Scope:** Adding a Graphical User Interface (GUI) using JavaFX/Swing and integrating a persistent SQL database.
---
This presentation was created with [Bobr AI](https://bobr.ai) — an AI presentation generator.