Professional Documents
Culture Documents
C.S Project 2024-25
C.S Project 2024-25
Vijayapuram Post-Tirupur-641606
ATM MANAGER
PROJECT
SUBMITTED BY
R.CHRISTINA SHARON
GRADE 12
Signature of Signature of
External Examiner Internal Examiner
DECLARATION
Place: Tirupur
Signature of the Candidate
Date:
ACKNOWLEDGEMENT
Apart from the efforts of me, the success of any project depends largely on the
encouragement and guidelines of many others. I take this opportunity to express
my gratitude to the people who have been instrumental in successful completion
of this project.
The guidance and support received from all the members who contributed and
who are contributing to this project, was vital for the success of the project. I am
grateful for their constant support and help.
SYNOPSIS
The ATM System is the project which is used to access their bank accounts in
order to make cash withdrawals. Whenever the user need to make cash
withdraws, they can enter their PIN number (personal identification number)
and it will display the amount to be withdrawn. Once their withdrawn was
successful, the amount will be debited in their account.
The ATM will service one customer at a time. A customer will be required to
enter ATM Card number, personal identification number (PIN). The customer
will then be able to perform one or more transactions.
If a transaction fails for any reason other than an invalid PIN, the ATM will
display an explanation of the problem, and will then ask the customer whether
he/she wants to do another transaction.
TABLE OF CONTENTS
CONTENTS:
1. Introduction
2. System Study
3. System specifications
4. Source code
5. Sample output
6. Conclusion
7. Bibliography
1.INTRODUCTION
Automated Teller Machine enables the clients of a bank to have access to their
account without going to the bank. This is achieved only by development the
application using online concepts.
When the product is implemented, the user who uses this product will be able to
see all the information and services provided by the ATM, when he enters the
necessary option and arguments. The product also provides services like
request for cheques, deposit cash and other advanced requirement of the
user. The data is stored in the database and is retrieved whenever
necessary. The implementation needs ATM machine hardware to operate or
similar simulated conditions can also be used to successfully use the developed
product. This program simulates how the ATM (Automatic Teller Machine) of
the SCS works. Therefore, the program does the following basic ATM
requirements:
1. Account creation
3. Check Balance
4. Deposit Amount
5. Withdraw Amount
The program is designed in such a way that the user has to enter their account
number, customer id and pin number in order to do any transaction. Once
verified, he is provided a menu and he/she had to enter the option provided in
the menu. For example, when the user wants to view their balance than he/she
had to enter the option for check balance provided in the main menu. When the
option is entered alone with the respective argument, then the account balance is
displayed on the screen.
The user is given options to even view the no of customers in the software. The
user may experience a delay in retrieving or viewing the data, when there are
many users logged on to the same bank branch system.
2.SYSTEM STUDY
Atm’s are used to deposit, withdraw, view their account details and check their
balance. Codes usually crash or turn into a disaster when not managed properly
during run-time faults and errors.
The code allows the user to create an account and lets the user to deposit
money, withdraw money, check their account balance and view all
customers/accounts. The access of transaction is allowed only after the
verification of their atm pin. Mysql.connector and datetime modules have been
imported. Somehow every child / student or even adults manage to loose their
money atleast once in their lifetime. In order to make the in school purchases
easier our team has developed this program such that the parents can initialize
their child’s account with a minimal amount of balance , which then the office
members will help the child to use the money from the account for all his/her
purchases of school things/ food items in canteens. The proposed system seems
practical enough for the use of school children.
3 . SYSTEM SPECIFICATIONS
Laptop - Dell
Processor -11th Gen Intel(R)core(TM ) i3- 1115G4 @3.00
GHz 3.00 GHz
Clock speed - 2.10 GHz
Installed RAM - 8.00 GB
Memory - 512 GB
System type - 64-bit OS, x64-based processor
# TO SEARCH A CUSTOMER
def searchCustomer():
global cid
if myConnection:
cursor=myConnection.cursor()
cid=input("Please Enter Customer ID : ")
sql="SELECT * FROM CUSTOMER WHERE CID = %s"
values=(cid,)
data=cursor.execute(sql,values)
data = cursor.fetchall()
if data:
print("\n*****CUSTOMER DETAILS*****")
print(data)
else:
print("Sorry ! Customer NOT Found , Please Try Again ! ")
else:
print("\nSomething Went Wrong ,Please Try Again !")
else:
print("\nSomething Went Wrong ,Please Try Again !")
# TO DISPLAY ALL ACCOUNTS
def displayAllAccounts():
if myConnection:
cursor=myConnection.cursor()
cursor.execute("SELECT * FROM ACCOUNT")
data = cursor.fetchall()
if data:
print("\n*****DETAILS OF ALL ACCOUNTS*****")
print(data)
else:
print("Sorry ! No Account Information , Please Try Again ! ")
else:
print("\nERROR ESTABLISHING MYSQL CONNECTION !")
# TO SEARCH AN ACCOUNT
def searchAccount():
global cid
if myConnection:
cursor=myConnection.cursor()
cid=input("PLEASE ENTER CUSTOMER ID : ")
account_no=int(input("PLEASE ENTER THE ACCOUNT
NUMBER [0-9]: "))
sql="SELECT * FROM ACCOUNT WHERE CID = %s AND
ACCOUNT_NO =%s"
values=(cid,account_no)
data=cursor.execute(sql,values)
data = cursor.fetchall()
if data:
print("\n*****CUSTOMER ACCOUNT DETAILS*****")
print(data)
else:
print("Sorry ! Account Information NOT Found , Please Try Again
! ")
else:
print("Something Went Wrong ,Please Try Again !")
# TO WITHDRAW AMOUNT
def withdrawAmount():
count =3
if myConnection:
cursor=myConnection.cursor()
account_no=int(input("PLEASE ENTER THE ACCOUNT
NUMBER [0-9]: "))
cid=int(input(" PLEASE ENTER THE CUSTOMER ID : "))
sql="SELECT * FROM ACCOUNT WHERE ACCOUNT_NO =%s"
values=(account_no,)
data=cursor.execute(sql,values)
data = cursor.fetchall()
if data:
while True:
ATM_PIN=int(input("PLEASE ENTER THE ATM PIN - ONLY
3 ATTEMPTS ARE ALLOWED : "))
sql='SELECT * FROM ACCOUNT WHERE PIN = %s'
values=(ATM_PIN,)
cursor.execute(sql,values)
currentdate=datetime.now()
data = cursor.fetchall()
if data:
amount=int(input("PLEASE ENTER AMOUNT TO
WITHDRAW : "))
sql='UPDATE ACCOUNT SET AMOUNT = AMOUNT - %s'
cursor.execute(sql ,(amount,))
cursor.execute("COMMIT")
withdrawaltable = """
CREATE TABLE IF NOT EXISTS WITHDRAWALS(
CID VARCHAR(10),
ACCOUNT_NO INT(15),
WITHDRAWN_AMOUNT INT(10) NOT NULL ,
DATE_OF_WITHDRAWAL DATE) """
cursor.execute(withdrawaltable)
sql1='INSERT INTO WITHDRAWALS
(CID,ACCOUNT_NO,WITHDRAWN_AMOUNT,DATE_OF_WITHDR
AWAL) VALUES (%s,%s,%s,%s)'
values2=(cid, account_no,amount,currentdate)
cursor.execute(sql1, values2)
cursor.execute("COMMIT")
print("******* TRANSACTION SUCCESSFULLY
COMPLETED ! *******")
print("***** PLEASE REMOVE YOUR CARD ! *****")
break
else:
print("Wrong Pin ! Please enter a Valid PIN")
count=count-1
print("You are left with only ",count ,"Attempts")
if count == 0:
print("Your Card has been Blocked , Please Visit the Branch to
activate it")
break
else:
print("Sorry ! Account Information NOT Found , Please Try
Again ! ")
# TO DEPOSIT AMOUNT
def depositAmount():
count=3
if myConnection:
cursor=myConnection.cursor()
account_no=int(input("PLEASE ENTER THE ACCOUNT
NUMBER [0-9]: "))
cid=int(input(" PLEASE ENTER THE CUSTOMER ID : "))
sql="SELECT * FROM ACCOUNT WHERE ACCOUNT_NO =%s"
values=(account_no,)
data=cursor.execute(sql,values)
data = cursor.fetchall()
if data:
while True:
ATM_PIN=int(input("PLEASE ENTER THE ATM PIN - ONLY
3 ATTEMPTS ARE ALLOWED : "))
sql='SELECT * FROM ACCOUNT WHERE PIN = %s'
values=(ATM_PIN,)
cursor.execute(sql,values)
currentdate=datetime.now()
data = cursor.fetchall()
if data:
Damount=int(input("PLEASE ENTER AMOUNT TO
DEPOSIT : "))
sql='UPDATE ACCOUNT SET AMOUNT = AMOUNT +
%s'
cursor.execute(sql ,(Damount,))
cursor.execute("COMMIT")
depositiontable = """
CREATE TABLE IF NOT EXISTS DEPOSITS(
CID VARCHAR(10),
ACCOUNT_NO INT(15),
DEPOSITED_AMOUNT INT(10) NOT NULL ,
DATE_OF_DEPOSITION DATE) """
cursor.execute(depositiontable)
sql2='INSERT INTO DEPOSITS
(CID,ACCOUNT_NO,DEPOSITED_AMOUNT,DATE_OF_DEPOSITI
ON) VALUES (%s,%s,%s,%s)'
values3=(cid, account_no,Damount,currentdate)
cursor.execute(sql2, values3)
cursor.execute("COMMIT")
print("******* TRANSACTION SUCCESSFULLY
COMPLETED ! *******")
print("***** PLEASE REMOVE YOUR CARD ! *****")
break
else:
print("Wrong Pin ! Please enter a Valid PIN")
count=count-1
print("You are left with only ",count ,"Attempts")
if count == 0:
print("Your Card has been Blocked , Please Visit the Branch
to activate it")
break
else:
print("Sorry ! Account Information NOT Found , Please Try Again !
")
# TO VIEW BALANCE
def viewBalance():
if myConnection:
cursor=myConnection.cursor()
cursor.execute("SELECT * FROM ACCOUNT")
data = cursor.fetchall()
if data:
account_no=int(input("PLEASE ENTER THE ACCOUNT
NUMBER [0-9]: "))
cid=int(input(" PLEASE ENTER THE CUSTOMER ID : "))
sql3="SELECT AMOUNT FROM ACCOUNT WHERE
ACCOUNT_NO =%s"
values4=(account_no,)
data1=cursor.execute(sql3,values4)
data1 = cursor.fetchall()
print("\n*****ACCOUNT BALANCE*****")
print(str(data1))
else:
print("Sorry ! No Record Found , Please Try Again ! ")
else:
print("\nERROR ESTABLISHING MYSQL CONNECTION !")
# MAIN SCREEN
print("************** SUBBIAH CENTRAL ***************")
print("************* SCS - ATM MANAGER ***************")
print("*****Designed and Maintained By:")
print("*****NAKSHATRA.R - CLASS XII A ")
print("*****AMIRTHA VARSHINI.N.J - CLASS XII A ")
print("*****KARUPPANA HARI.S - CLASS XII A ")
print("\n!=================*****END*****==============!")
MAIN SCREEN :
NEW USER :
DISPLAY ALL CUSTOMERS:
SEARCH AN ACCOUNT:
OPEN NEW ACCOUNT:
WITHDRAW AMOUNT:
DEPOSIT AMOUNT :
VIEW BALANCE :
TABLE STRUCTURES :
An easy, understandable program for the user, an atm system can be created and
run as shown above. We've all become used to ATMs that have minimal
screens, hardware, and simple interfaces, such as small number pads with eight
buttons only. Then what will futuristic ATMs look like? Well, in reality the
ATMs of the future are already here. Long gone are the prevalence of simple,
single-function ATMs. Advances in technologies have allowed ATMs to follow
digital trends over the years. These days most ATMs have touch-screen
computers running on Microsoft's Windows 10. This means that they can utilize
facial recognition technology, remote video, and smartphone app integration. It
also means that as digital technology advances, ATM interfaces can follow suit
and evolve to become more and more user-friendly and increasingly multi-
functional. Creating an ATM machine program, we need to implement the four
fundamental concepts of each ATM system that exists, it includes cash
withdraw, cash deposit, account balance checks, and functionality for another
transaction or termination.
7. BIBLIOGRAPHY