This project is a console-based ATM Banking System developed using Python and Object-Oriented Programming (OOP).
I built this project as a serious practice exercise to deepen my understanding of OOP concepts such as class design, encapsulation, method interaction, and structured program flow.
As an aspiring Data Scientist, I believe strong programming fundamentals are essential. This project reflects my effort to build that foundation through practical implementation.
- Account Creation
- Secure Login with 4-digit PIN
- Deposit and Withdrawal
- Balance Inquiry
- PIN Change
- Input Validation
- Exception Handling
- Object-Oriented Programming (OOP)
- Classes and Objects
- Encapsulation
- Dictionary for managing multiple accounts
- Exception Handling (try-except)
- Control Flow (Loops and Conditionals)
- Separation of Concerns (Logic vs Control)
The system is divided into two main classes:
Handles all account-level operations:
- PIN verification
- Balance management
- Deposit and withdrawal logic
- PIN updates
Responsible for:
- Managing multiple accounts
- User authentication
- Menu handling
- Program execution flow
This separation improves readability, modularity, and scalability.
- A strong focus on understanding core programming fundamentals
- Practical implementation of OOP concepts
- Structured thinking while designing systems
- Continuous improvement and growth mindset
python atm.py
---
## π¨βπ» Author
**Amarnath Rastogi**
Aspiring Data Scientist
Currently strengthening core programming and OOP fundamentals through practical projects.
This is my second structured Python project, focused on building strong object-oriented design and error handling skills.
GitHub: https://github.com/your-username
LinkedIn: https://linkedin.com/in/your-linkedin-id