Python Project Documentation 2024
Python Project Documentation 2024
Mandal’s
MAHARASHTRA INSTITUTE OF TECHNOLOGY, AURANGABAD
(An Autonomous Institute)
PROJECT REPORT
ON
“ATM Machine”
SUBMITTED
BY
1
DECLEARATION
To,
The Head,
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
2
DECLEARATION
To,
The Head,
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
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.
____________________
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.
____________________
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:
6
PROJECT REQUIREMENT
Software Requirements:
➢ Python 3.12.2
➢ Tools/IDE:VS code, Python IDLE
Hardware Requirements:
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)
# 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")
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