ATM PROJECT
1
INDEX
SL. No. PARTICULARS PAGE No.
1 Introduction to ATM Project 3
2 Introduction to python
4
3 Introduction to MySQL 6
4 System requirements 7
5 Source Code 8
6 Input & Output 21
7 Conclusion 24
8 Future Scope of the Project 25
9 Bibliography 26
2
INTRODUCTION TO ATM PROJECT
The Automated Teller Machine (ATM) is an Automatic Banking
Machine (ABM) that allows the customer to complete basic transactions
without any help from bank representatives. There are two types of Automated
Teller Machines (ATMs). The basic one allows the customer to only draw cash
and receive a report of the account balance. Another one is a more complex
machine that accepts the deposit, provides credit card payment facilities and
reports account information.
The ATM MACHINE SOFTWARE is device which is as same as
normal ATM machine. It allows the user to create account, deposit money,
withdraw money, transfer the money and check Balance. The following are the
facilities included in ATM MACHINE SOFTWARE.
• Allow the user to input their question.
• Show an in progress message.
• Create 10/20 responses, and show a random response.
The work becomes fully automated and any information regarding the
organization can be obtained by clicking the button. Moreover, now it’s an age
of computers of and automating such an organization gives the better look.
3
INTRODUCTION TO PYTHON
Python is developed by Guido van Rossum. Guido van Rossum started implementing
Python in 1989. Python is a very simple programming language so even if you are new
to programming, you can learn python without facing any issues
Learning python is easy as this is an expressive and high level programming
language, which means it is easy to understand the language and thus easy to learn.
Python is available and can run on various operating systems such as Mac,
Windows, Linux, UNIX etc. This makes it a cross platform and portable language
Python is free to download and use. This means you can download it for free
and use it in your application.
There are many machine learning applications written in Python. Machine
learning is a way to write logic so that a machine can learn and solve a particular
problem on its own.
Python has syntax that allows developers to write programs with fewer lines
than some other programming languages.
Python uses new lines to complete a command, as opposed to other
programming languages which often use semicolons or parentheses.
Many languages are compiled, meaning the source code you create needs to be
translated into machine code, the language of your computer s processor, before it can
be run. Programs written in an interpreted language are passed straight to an interpreter
that runs them directly.
4
This makes for a quicker development cycle because you just type in your code
and run it, without the intermediate compilation step.
5
INTRODUCTION TO MYSQL
MySQL is an open-source, fast reliable, and flexible relational database
management system, typically used with PHP .MySQL is a database system used for
developing web-based software applications. MySQL used for both small and large
applications.
MySQL is a relational database management system (RDBMS). MySQL is fast,
reliable, and flexible and easy to use. MySQL supports standard SQL (Structured Query
Language). MySQL is free to download and use.
MySQL was developed by Michael Widenius and David Axmark in 1994. MySQL
is presently developed, distributed, and supported by Oracle Corporation. MySQL Written
in C, C++.
MySQL server design is multi-layered with independent modules. MySQL is fully
multithreaded by using kernel threads. It can handle mul8tiple CPUs if they are available.
MySQL provides transactional and non- transactional storage engines. MySQL has
a high-speed thread-based memory allocation system. MySQL supports in-memory heap
table.
MySQL Handles large databases. MySQL Server works in client/server or
embedded systems. MySQL Works on many different platforms.
SYSTEM REQUIREMENTS
1. HARDWARE
6
*Processor
*Keyboard
*Mouse
*Minimum memory-2GB
2. SOFTWARE
*Python IDLE
*MySQL
7
SOURCE CODE
8
To Create Table
import [Link] as sql
conn=[Link](host='localhost',user='root',password='manager',database='
ATM_MACHINE') if conn.is_connected():
print("sucessfully connected")
c1=[Link]()
mn="CREATE TABLE RECORDS( ACCONT_NO INT(4) primary key,PASSWORD INT(3),NAME
VARCHAR(20),CR_AMT INT default(0),WITHDRAWL INT default(0),BALANCE INT
default(0))" [Link](mn) print("Sucessfulluy created")
9
MAIN PROGRAM
import [Link] as sql
conn=[Link](host='localhost',user='root',password='manager',database='
ATM_MACHINE') c1=[Link]()
print("===================================================================
= ============")
print(" WELCOME TO OUR BANK ")
print("===================================================================
= ============")
print("[Link] create account")
print("[Link] login")
print("[Link]")
print("===================================================================
= ============")
op=int(input("Enter your choice :"))
print("===================================================================
= ============")
if op==1:
c="y"
while c=="y":
10
m=int(input("Enter a 4 digit number as accont number:"))
cb="select * from records where ACCONT_NO={}".format(m)
[Link](cb)
d=[Link]()
data=[Link]
if data==1:
print("===================================================================
= ============")
print("This account number already exists:")
c=input("Do you want to continue y/n -")
print("===================================================================
= ============")
if
c=="y":
continue
else:
print("Thank you.")
print("Visit again")
print("===================================================================
= ============")
else:
11
name=input("Enter your name:")
passw=int(input("Enter your pass word:"))
ab="insert into records(ACCONT_NO,PASSWORD,NAME) values({},
{},'{}')".format(m,passw,name)
print("===================================================================
= ============")
[Link](ab)
[Link]() print("Account
sucessfully created") print("The
minimum balance is 1000 ")
print("===================================================================
= ============")
s=int(input("Enter the money to be deposited :"))
print("===================================================================
=
============") sr="update records set CR_AMT={} where
ACCONT_NO={}".format(s,m)
[Link](sr)
[Link]()
ef="update records set balance=cr_amt-withdrawl where
ACCONT_NO={}".format(m)
[Link](ef)
12
[Link]()
print("sucessfully deposited")
print("Thank you")
print("Visit again") break
if op==2:
y="y" while
y=="y":
acct=int(input("Enter your account number:"))
cb="select * from records where ACCONT_NO={}".format(acct)
[Link](cb)
[Link]()
data=[Link]
if data==1:
pas=int(input("Enter your password :"))
print("===================================================================
= ============")
e="select password from records where ACCONT_NO={}".format(acct)
[Link](e)
a=[Link]()
d=list(a)
13
if pas==d[0]:
print("correct")
print("[Link] money")
print("[Link] money")
print("[Link] money")
print("[Link] balance")
print("[Link] Account number ")
print("===================================================================
= ============")
r=int(input("Enter your choice:"))
print("===================================================================
= ============")
if
r==1:
amt=int(input("Enter the money to be deposited:"))
print("===================================================================
= ============")
sr="update records set CR_AMT=CR_AMT + {} where
ACCONT_NO={}".format(amt,acct)
14
[Link](sr)
[Link]() ef="update records set
balance=cr_amt-withdrawl where
ACCONT_NO={}".format(acct)
[Link](ef)
[Link]()
print("sucessfully deposited")
t=input("Do you want to continue y/n -")
print("===================================================================
= ============")
if
t=="y":
continue
else: print("Thank
you") if r==2:
amt=int(input("Enter the money to withdraw:"))
print("===================================================================
= ============")
ah="select BALANCE from records where accont_no={}".format(acct)
[Link](ah)
m=[Link]()
15
if amt >m[0]:
print("Your are having less
than",amt)
print("Please try again")
print("===================================================================
= ============")
else:
sr="update records set balance=balance - {} where
ACCONT_NO={}".format(amt,acct)
ed="update records set WITHDRAWL ={} where
ACCONT_NO={}".format(amt,acct)
[Link](ed)
[Link](sr) [Link]()
print("Sucessfully updatad")
y=input("do you want to continue y/n -")
if y=="y":
continue
else:
print("Thank you")
if r==3:
act=int(input("Enter the accont number to be transferrsd :"))
print("===================================================================
= ============")
16
cb="select * from records where ACCONT_NO={}".format(act)
[Link](cb)
[Link]()
data=[Link]
if data==1:
print(act ,"number exists")
m=int(input("Enter the money to be transferred :"))
print("===================================================================
= ============")
ah="select BALANCE from records where accont_no={}".format(acct)
[Link](ah)
c=[Link]()
if m > c[0]:
print("Your are having less than",m)
print("Please try again")
print("===================================================================
= ============")
else:
av="update records set balance=balance-{} where
ACCONT_NO={}".format(m,acct)
17
cv="update records set balance=balance+{} where
ACCONT_NO={}".format(m,act)
w="update records set withdrawl=withdrawl+{} where
accont_no={}".format(m,acct)
t="update records set CR_AMT=CR_AMT+{} where
accont_no={}".format(m,act)
[Link](av)
[Link](cv) [Link](w)
[Link](t) [Link]()
print("Sucessfully transfered")
y=input("do you want to continue y/n -")
if y=="y":
continue
else:
print("Thank you")
if r==4:
ma="select balance from records where accont_no={}".format(acct)
[Link](ma)
k=[Link]() print("Balance in your
account=",k)
print("===================================================================
= ============")
y=input("do you want to continue y/n -")
18
if y=="y":
continue
else: print("Thank
you") if r==5:
i=int(input("Enter your new account number:"))
cb="select * from records where ACCONT_NO={}".format(i)
[Link](cb)
[Link]()
data=[Link]
if data==1:
print("This number already exists")
print("Try again")
y=input("do you want to continue y/n -")
if y=="y":
continue
else:
print("Thank you")
else:
name=input("Enter your name")
ar="Update records set accont_no={} where name='{}' and
password={}".format(i,name,pas)
19
[Link](ar)
[Link]() print("Your new
account number is ",i)
else:
print("Wrong password")
print("===================================================================
= ============")
y=input("do you want to continue y/n -")
else:
print("your Account does not exists")
if op==3:
print("Exiting")
[Link]()
20
INPUT &
OUTPUT
21
22
23
CONCLUSION
Security is the foundation of a good ATM system. The proposed ATM
Project provides secured authenticated connections between users and bank servers.
The whole process is automated right from PIN validation and Transaction
completion.
The ATM project was implemented by considering Python as Front end and
MYSQL as Back end. From an accountancy perspective, Python is most useful
when working with data. It can essentially read any type, both structured and
unstructured. It has powerful capabilities in data importation and manipulation -
tasks like merging and recoding – as well as handling large amounts.
This project enables two important features of an ATM, reduction of human
error in the banking system and the possibility of 24 hour personal banking. The
card details and PIN data base is a secured module that will not be open to routine
maintenance, the only possibility of access to this database will be through queries
raised from an ATM in the presence of a valid ATM card. So that the ATM Project
using Python is most secured one and the project is successfully completed.
24
FUTURE SCOPE OF THE PROJECT
The goal of a next-generation ATM is to make it “more like a tablet”
where the machine owner can add functionality by downloading apps, and
consumers can operate it using an app on their phone.
ATM vendors can deploy downloadable software while issuers will
have a software development kit (SDK) to add to their mobile app to affect
the authentication. Mike Lee, CEO of ATMIA and Chair of the Next-Gen
consortium, called it a milestone in the “reinvention of the ATM to integrate
ATMs into the mobile-digital world and to set up a new wave of innovation
and investment in our industry through this dynamic ecosystem.
Capabilities like this will enable the ATM industry to add
functionality to machines more quickly and at a lower cost, David Tente
maintains. “It pushes everything onto the consumer’s mobile device, so they
are now interacting with the ATM through their phone, rather than a screen
on the machine itself.
25
BIBLIOGRAPHY
Web sites
1. [Link]
2. [Link]
3. [Link]
4. [Link]
Books
1. Computer science with python (sumitha arora)
2. Computer science with python (preethi arora)
26