FORMAT atm pro1
FORMAT atm pro1
1. DHEJA SRI .M -
2. RAAGAVARTHINI.T -
3. SHARVA SREE M P -
DECLARATION
CERTIFICATE
This is to certify that ............................... has successfully
completed this project report entitled “ATM
MANAGEMENT SYSTEM”. During the academic year
2024-2025 towards partial fulfilment of Computer Science
Practical Examination conducted by CBSE.
______________________________ ____________________________
EXAMINERS
Internal External
3 MODULES USED 3
4 PYTHON CODING 4
6 DATABASE 36
7 TABLE STRUCTURE 37
9 REFERENCES 39
INTRODUCTION OF THE PROJECT
1
display the amount to be
withdrawn in the form of
50's,100's and 500's. The user
also able to perform one or more
transactions. Security is the
foundation of good ATM
system. This system will provide
for secure connections between
users and the bank servers. The
whole process will
be automated right from PIN
validation to transaction
completion. The card details and
PIN database will be a
secure module that will not be
open to routine maintenance, the
only possibility of access to this
database will be
through queries(questions) raised
from an ATM in the presence of a
2
valid bank ATM card. ATM
Simulation System
will enable two important
features of an ATM, reduction of
human error in the banking
system and the possibility of
24 hour personal bankin
3
50's,100's and 500's. The user
also able to perform one or more
transactions. Security is the
foundation of good ATM
system. This system will provide
for secure connections between
users and the bank servers. The
whole process will
be automated right from PIN
validation to transaction
completion. The card details and
PIN database will be a
secure module that will not be
open to routine maintenance, the
only possibility of access to this
database will be
through queries(questions) raised
from an ATM in the presence of a
valid bank ATM card. ATM
Simulation System
4
will enable two important
features of an ATM, reduction of
human error in the banking
system and the possibility of
24 hour personal bankin
Automated Teller Machine (ATM) is an electronic
telecommunications device, which enables customers to perform
banking without the need for direct interaction with bank staff.
For this, every account holder must have a unique id card for the
individual account having a unique pin.
On the absence of this card, whatever be the adverse situation the
use of this ATM service is not permitted.
So, an Internet Of things and Computer Vision based Smart ATM
service is being proposed here, using Raspberrypi microcontroller
based embedded system, where each person will be their own
identity, where fingerprint, face, OTP verifications are key features
for security, which in turn reduces the issue of fraud transactions,
fraud ATM cards, hence security issue gets resolved.
6
through queries(questions) raised
from an ATM in the presence of a
valid bank ATM card. ATM
Simulation System
will enable two important
features of an ATM, reduction of
human error in the banking
system and the possibility of
24 hour personal bankin
INSTALLED
MEMORY (RAM):
8.00 GB
7
OPERATING
SYSTEMS:
Windows11 pro
PYTHON
VERSION:
3.12.5 shell
MYSQL
VERSION:
8.0.20
MODULES USED:
mysql.connector
random
datetime
9
c1.execute(mn)
print("===========================================================
==============")
print("WELCOME TO OUR ATM")
print("===========================================================
==============")
print("1.To create account")
print("2.To login")
print("3.Exit")
print("===========================================================
==============")
op=int(input("Enter your choice:"))
print("===========================================================
==============")
if op==1:
c="y"
while c=="y":
m=int(input("Enter a 4 digit number as account number:"))
cb="select*from DETAILS where ACOUNT_NO={}".format(m)
c1.execute(cb)
d=c1.fetchall()
data=c1.rowcount
if data=1:
print("===========================================================
==============")
print("This account number already exists:")
c=input("Do you want to continue y/n-")
10
print("===========================================================
==============")
if c=="y":
continue
else:
print("Thank you.")
print("PLEASE CLOSE THIS FILE BEFORE EXITING")
print("Visit again")
print("===========================================================
==============")
else:
name=input("Enter your name:")
passw=int(input("Enter your pass word:"))
ab="insert into DETAILS (ACCOUNT_NO,PASSWORD,NAME)values({},
{},'{}')".format(m,passsw,name)
print("===========================================================
==============")
c1.execute(ab)
conn.commit()
print("Account sucessfully created")
print("The minimum balance is 1000")
print("===========================================================
==============")
s=int(input("Enter the money to be deposited:")
print("===========================================================
==============")
sr="update DETAILS set CR_AMT={} where ACCOUNT_NO={}".format(s,m)
c1.execute(sr)
11
conn.commit()
ef="update DETAILS set balance=cr_amt-withdrawl where
ACCOUNT_NO={}".format(m)
c1.execute(ef)
conn.commit()
print("sucessfully deposited")
print("Thank you")
print("PLEASE CLOSE THIS FILE BEFORE EXITING")
print("Visit again")
break
if op==2:
y="y"
while y=="y":
acct=int(input("Enter your acccount number:")
cb="select*from DETAILS where ACCOUNT_NO={}".format(acct)
c1.execute(cb)
c1.fetchall()
data=c.rowcount
if data==1:
pas=int(input("Enter your password:")
print("===========================================================
==============")
e="select password drom DETAILS where ACCOUNT_NO={}".format(acct)
c1.execute(e)
a=c1.fetchone()
d=list(a)
if pas==d[0]:
12
print("correct")
print("1.Depositing money")
print("2.withdrawing money")
print("3.Transfering money")
print("4.Checking balance")
print("5.Changing Account number")
print("6.Changing Password")
print("===========================================================
==============")
r=int(input("Enter your choice:")
print("===========================================================
==============")
if r==1:
amt=int(input("Enter the money to be deposited:"))
print("===========================================================
==============")
sr="update DETAILS set CR_AMT+{}where ACCOUNT_NO={}".format(amt,acct)
c1.execute(sr)
conn.commit()
ef="update DETAILS set balance =cr_amt-withdrawl where
ACCOUNT_NO={}".format(acct)
c1.execute(ef)
conn.commit()
print("sucessfully deposited")
t=input("Do you want to continue y/n-")
print("===========================================================
==============")
13
if t=="y":
continue
else:
print("Thank you")
print("PLEASE CLOSE THIS FILE BEFORE EXITING")
if r==2:
amt=int(input("Enter the money to withdraw:"))
print("===========================================================
==============")
ah="select BALANCE from DETAILS wherE acount_no={}".format(acct)
c1.execute(ah)
m=c1.fetchone()
if amt>m[0]:
print("your are having less than ",amt)
print("Please try again")
print("===========================================================
==============")
else:
sr="update DETAILS set balance=balance-{}where ACCOUNT_NO={}".format
(amt,acct)
ed="update DETAILS set WITHDRAWL={} where
ACCOUNT_NO={}".format(amt,acct)
c1.execute(ed)
c1.execute(sr)
conn.commit()
print("sucessfully updated ")
y=input("do you want to continue y/n-")
14
if y=="y":
continue
else:
print("Thank you")
print("PLEASE CLOSE THIS FILE BEFORE EXITING")
if r==3:
act=int(input("Enter the account number to be transferred:"))
print("===========================================================
==============")
cb="select*from DETAILS where ACCCOUNT_NO={}".format(act)
c1.execute(cb)
c1.fetchall()
data=c1.rowcount
if data==1:
print(act,"number exists")
m=int(input("Enter the money to be transferred:"))
print("===========================================================
==============")
ah="select BALANCE from DETAILS where account_no={}".format(acct)
c1.execute(ah)
c=c1.fetchone()
if m>c[0]:
print("your are having less than ",m)
print("Please try again")
print("===========================================================
==============")
else:
15
av="update DETAILS set balance=balance-{} where
ACCOUNT_NO={}".format(m,acct)
cv="update DETAILS set balance=balance+{} where
ACCOUNT_NO={}".format(m,act)
w="update DETAILS set withdrawl=withdrawl+{} where
account_no={}".format(m,acct)
t="update DETAILS set CR_AMT=CR_AMT+{} where
account_no={}".format(m,act)
c1.execute(av)
c1.execute(cv)
c1.execute(w)
c1.execute(t)
conn.commit()
print ("sucessfully transferred")
y=input("do you want to continue y/n-")
if y=="y":
continue
else:
print("Thank you")
print("PLEASE CLOSE THIS FILE BEFORE EXITING")
if r==4:
ma="select balance from DETAILS where account_no={}".format(acct)
c1.execute(ma)
k=c1.fetchone()
print("Balance in your account=",k)
print("===========================================================
==============")
16
y=input("do you want to continue y/n-")
if y=="y":
continue
else:
print("Thank you")
print("PLEASE CLOSE THIS FILE BEFORE EXITING")
if r==5:
i=int(input("Enter your new account number:"))
cb="select*from DETAILS where ACCOUNT_NO={}".format(i)
c1.execute(cb)
c1.fetchall()
data=c1.rowcount
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")
print("PLEASE CLOSE THIS BEFORE EXITING")
else:
name=input("Enter your name")
ar="update DETAILS set account_no={} where name='{}'and password
={}".format(i,name,pas)
c1.execute(ar)
17
conn.commit()
print("your new account number is ",i)
if r==6:
k=int(input("Enter new password:")
qw="select * from DETAILS where PASSWORD={}".format(k)
c1.execute(qw)
c1.fetchall()
data=c1.rowcount
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")
print("PLEASE CLOSE THIS FILE BEFORE EXISTING")
else:
name=input("Enter your name:")
ar="update DETAILS set password={} where name='{}' and
account_no={}".format(k,name,acct)
c1.execute(ar)
conn.commit()
print("Your new password is :",k)
else:
print("wrong password")
18
print("===========================================================
=============")
y=input("do ypu want to continue y/n-")
else:
print("your Account does not exists")
if op==3:
print("exiting")
print("PLEASE CLOSE YHIS FILE BEFORE EXITING.")
c1.close()
USER AUTHENTICATION:
19
20
MYSQL DATABASE AND TABLES USED IN THIS PROJECT
DATABASE:
21
TABLE STRUCTURE:
22
REFERENCE
23
Study notes given by Teacher.
w3schools.com
stackoverflow.com
24