G.S.
Mandal’s
MAHARASHTRA INSTITUTE OF TECHNOLOGY, AURANGABAD
(An Autonomous Institute)
PROJECT REPORT
ON
“ATM Machine”
SUBMITTED
BY
NAME OF STUDENT: Dhiraj Dilip Aher Roll No: 01
NAME OF STUDENT: Shivdas Hanmant Chaple Roll No: 09
UNDER THE GUIDANCE
OF
Dr. Prashant Chintal
DEPARTMENT OF COMPUTER APPLICATIONS
2023-24
1
DECLEARATION
To,
The Head,
Computer Applications Department,
Maharashtra Institute of Technology, Aurangabad.
Respected sir,
I Mr. Dhiraj Dilip Aher hereby declare that, the mini project titled “ATM
Machine”developed and submitted as the partial fulfillment of submission for FYMCA in the
subject of Python Lab, is my original work and has not duplicated from any other sources under
the guidance of Dr. Prashant Chintal.
Date
Place
You’re sincerely
Dhiraj Dilip Aher
2
DECLEARATION
To,
The Head,
Computer Applications Department,
Maharashtra Institute of Technology, Aurangabad.
Respected sir,
I Mr. Shivdas Hanmant Chaple hereby declare that, the mini project titled “ATM
Machine” developed and submitted as the partial fulfilment of submission for FYMCA in the
subject of Python Lab, is my original work and has not duplicated from any other sources under
the guidance of Dr. Prashant Chintal.
Date
Place
You’re sincerely
Shivdas Hanmant Chaple
3
Department of Computer Applications
Certificate
This is to certify that Dhiraj Dilip Aher, a First Year MCA (Part-2) student, has satisfactorily
completed the mini project on "ATM Machine" as partial fulfilment of the mini project work for
the Python Lab course in the Master of Computer Applications program during the academic year
2023-24.
Project Guide Head of Department
Dr.Prashant Chintal Dr. Prashant Chintal
____________________
External Examiner
4
Department of Computer Applications
Certificate
This is to certify that Shivdas Hanmant Chaple, a First Year MCA (Part-2) student, has satisfactorily
completed the mini project on "ATM Machine" as partial fulfilment of the mini project work for
the Python Lab course in the Master of Computer Applications program during the academic year
2023-24.
Project Guide Head of Department
Dr.Prashant Chintal Dr. Prashant Chintal
____________________
External Examiner
5
INTRODUCTION
Welcome to the Simple ATM Machine Simulation! This project aims to provide a basic
simulation of an ATM machine using Python's Tkinter library for the graphical user interface
(GUI). An Automated Teller Machine (ATM) is a vital part of modern banking systems, allowing
users to perform various financial transactions conveniently.
Features:
Check Balance: Users can view their current account balance at any time. Deposit Funds: Users
can deposit money into their account by specifying the amount they wish to deposit. Withdraw
Funds: Users can withdraw money from their account, provided they have sufficient balance. Quit
Application: Users can exit the ATM application when they're done. Functionality:
Usage:
1.Launch the application by running the Python script.
2.Enter the desired amount and select the transaction type (Deposit or Withdraw).
3.Click on the corresponding button to perform the transaction.
4.The application will display a message indicating the success or failure of the transaction.
5.Users can check their balance at any time by clicking the "Check Balance" button.
6.To exit the application, click the "Quit" button.
6
PROJECT REQUIREMENT
Software Requirements:
➢ Python 3.12.2
➢ Tools/IDE:VS code, Python IDLE
Hardware Requirements:
➢ Laptop • RAM: Min. 2.00GB and above
➢ Input Device: Keyboard, Mouse.
7
Output Screen
8
9
Coding
#ATM machine
import tkinter as tk
from tkinter import messagebox
def check_balance():
messagebox.showinfo("Balance", f"Your current balance is: Rs {balance}")
def deposit():
global balance
amount = float(amount_var.get())
balance += amount
messagebox.showinfo("Deposit", f"Rs {amount} deposited successfully.")
update_balance_label()
def withdraw():
global balance
amount = float(amount_var.get())
if amount > balance:
messagebox.showerror("Error", "Insufficient balance.")
else:
balance -= amount
messagebox.showinfo("Withdraw", f"Rs {amount} withdrawn successfully.")
update_balance_label()
def update_balance_label():
balance_label.config(text=f"Current Balance: Rs {balance}")
def quit_app():
window.destroy()
10
balance = 0
window = tk.Tk()
window.title("ATM Machine")
# Labels
balance_label = tk.Label(window, text=f"Current Balance: Rs {balance}")
balance_label.grid(row=0, column=0, columnspan=2, padx=10, pady=10)
amount_label = tk.Label(window, text="Enter amount:")
amount_label.grid(row=1, column=0, padx=10, pady=5, sticky="e")
# Entry
amount_var = tk.StringVar()
amount_entry = tk.Entry(window, textvariable=amount_var)
amount_entry.grid(row=1, column=1, padx=10, pady=5)
# Buttons
check_button = tk.Button(window, text="Check Balance", command=check_balance)
check_button.grid(row=2, column=0, columnspan=2, padx=10, pady=5, sticky="ew")
deposit_button = tk.Button(window, text="Deposit", command=deposit)
deposit_button.grid(row=3, column=0, padx=10, pady=5, sticky="ew")
withdraw_button = tk.Button(window, text="Withdraw", command=withdraw)
withdraw_button.grid(row=3, column=1, padx=10, pady=5, sticky="ew")
quit_button = tk.Button(window, text="Quit", command=quit_app)
quit_button.grid(row=4, column=0, columnspan=2, padx=10, pady=5, sticky="ew")
window.mainloop()
11
Advantages & Disadvanages
Advantages:
1. User-Friendly Interface: tkinter provides a simple and easy-to-use graphical interface for
users to interact with the ATM machine. Users can easily navigate through the options like
checking balance, depositing, and withdrawing money.
2. Realistic Simulation: The project simulates basic ATM functionalities accurately, providing
users with a realistic experience of using an ATM machine.
3. Accessibility: Since it's written in Python, the project can run on any platform that supports
Python, making it accessible to a wide range of users without platform dependencies.
4. Customizable: The project can be easily extended and customized to include additional
features such as transaction history, PIN validation, and multiple account support, depending
on the requirements.
5. Educational Purpose: It serves as a great educational tool for learning Python programming,
GUI development with tkinter, and basic concepts of ATM functionalities.
12
Disadvantages:
1. Security Concerns: The project lacks any form of user authentication (e.g., PIN validation),
making it insecure for real-world use. In a real ATM system, security measures are critical
to protect users' financial information and prevent unauthorized access.
2. Limited Features: The project implements only basic ATM functionalities. In a real-world
scenario, ATM machines offer a wide range of features such as cash deposit, bill payments,
fund transfers, and account management, which are not included in this mini-project.
3. Single-User System: The project supports only a single user session at a time. In a real ATM
system, multiple users should be able to access the machine simultaneously, each with their
own accounts and transaction histories.
4. Error Handling: Error handling is limited in the project. For instance, it does not handle
scenarios such as network errors, database connectivity issues, or unexpected user inputs
gracefully, which are essential for robustness in a real-world application.
5. No Persistence: The project does not persistently store user data or transaction history. In a
real ATM system, data persistence is crucial for maintaining transaction records, user
accounts, and system logs for auditing and troubleshooting purposes.
13