Project Synopsis – ATM System using Python and SQL
1. Objective of the Proposed System
The main objective of this project is to develop a simple ATM simulation system that allows users to
perform basic banking operations like balance inquiry, cash withdrawal, cash deposit, and PIN
change. It aims to: Provide a user-friendly interface for customers. Maintain secure data handling
using SQL database. Ensure accurate transaction recording and account management.
2. Input and Output
Input: User ID / Card Number, ATM PIN, Transaction type, Transaction amount.
Output: Confirmation messages, Updated account balance, Transaction receipts (on-screen).
3. Functions of Proposed System
Login Authentication Balance Inquiry Cash Withdrawal Cash Deposit PIN Change Transaction
Recording
4. Front End and Back End to be Used
Front End: Python (Tkinter or Console-based)
Back End: MySQL Database
Connectivity: mysql.connector or PyMySQL
5. Scope of the Project
Can be used by banks as a basic model for ATM functioning. Can be enhanced with biometric
authentication. Can be integrated with real-time banking systems. Useful for learning database
connectivity and GUI design in Python.
6. Limitations of the Project
Supports only basic ATM functions. No integration with real banking networks. Limited to
single-machine execution. Lacks encryption for highly secure data transfer.
7. Hardware Requirements
Processor: Intel Core i3 or above
RAM: 4 GB minimum
Hard Disk: 500 MB free space
Display: 1024 × 768 resolution or higher
Keyboard & Mouse
Optional: Card reader device
8. Software Requirements
OS: Windows 10/11, Linux, macOS
Language: Python 3.x
Database: MySQL 5.7+
Libraries: mysql.connector / PyMySQL, tkinter
IDE: PyCharm / VS Code / IDLE
Other Tools: MySQL Workbench / phpMyAdmin
9. Role of the Student
Requirement Analysis Database Design Front-End Development Back-End Development Testing &
Debugging Documentation Final Presentation
ATM System Workflow Diagram