0% found this document useful (0 votes)
35 views49 pages

Atm Management System

The document outlines a project on an ATM Machine Management System, detailing its introduction, objectives, proposed system, and the System Development Life Cycle (SDLC). It describes various phases of SDLC including initiation, planning, requirements analysis, design, development, testing, implementation, and maintenance, emphasizing the importance of each phase in software development. Additionally, it includes source code for a Python project that implements the ATM management functionalities.

Uploaded by

Sasti Murugan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views49 pages

Atm Management System

The document outlines a project on an ATM Machine Management System, detailing its introduction, objectives, proposed system, and the System Development Life Cycle (SDLC). It describes various phases of SDLC including initiation, planning, requirements analysis, design, development, testing, implementation, and maintenance, emphasizing the importance of each phase in software development. Additionally, it includes source code for a Python project that implements the ATM management functionalities.

Uploaded by

Sasti Murugan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

TABLE OF CONTENTS

SNO DESCRIPTION PAGE NO

01 Acknowledgement

02 Introduction

03 Objectives Of The Project

04 Proposed System

05 System Development Life Cycle (Sdlc)

06 Phases Of System Development Life Cycle

07 Source Code

08 Output

09 Testing

10 Installation Procedure

11 Hardware And Software Requirements

12 Bibliography
PROJECT ON ATM MACHINE MANAGEMENT SYSTEM

INTRODUCTION

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.

Note :

• Allow the user to input their question.

• Show an in progress message.

• Create 10/20 responses, and show a random response.

• Allow the user to ask another question/advice or quit


the software.
OBJECTIVES OF THE PROJECT

The objective of this project is to let the students apply


the programming knowledge into a real- world situation/problem
and exposed the students how programming skills helps in
developing a good software.

• Write programs utilizing modern software tools.

• Apply object oriented programming principles effectively


when developing small to medium sized projects.

• Write effective procedural code to solve small to


medium sized problems.

• Students will demonstrate a breadth of knowledge in


computer science, as exemplified in the areas of
systems, theory and software development.

• Students will demonstrate ability to conduct a research


or applied Computer Science project, requiring writing
and presentation skills which exemplify scholarly style
in computer science.
PROPOSED SYSTEM

Today one cannot afford to rely on the fallible human

beings of be really wants to stand against today’s merciless

competition where not to wise saying “to err is human” no

longer valid, it’s outdated to rationalize your mistake. So, to

keep pace with time, to bring about the best result without

malfunctioning and greater efficiency so to replace the unending

heaps of flies with a much sophisticated hard disk of the

computer.

One has to use the data management software.

Software has been an ascent in atomization various

organisations. Many software products working are now in

markets, which have helped in making the organizations work

easier and efficiently. Data management initially had to maintain

a lot of ledgers and a lot of paper work has to be done but now

software product on this organization has made their work

faster and easier. Now only this software has to be loaded on

the computer and work can be done.


This prevents a lot of time and money. 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.


SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)

The systems development life cycle is a project


management technique that divides complex projects into
smaller, more easily managed segments or phases.
Segmenting projects allows managers to verify the successful
completion of project phases before allocating resources to
subsequent phases.
Software development projects typically include
initiation, planning, design, development, testing,
implementation, and maintenance phases. However, the
phases may be divided differently depending on the
organization involved.
For example, initial project activities might be
designated as request, requirements-definition, and planning
phases, or initiation, concept-development, and planning
phases. End users of the system under development should be
involved in reviewing the output of each phase to ensure the
system is being built to deliver the needed functionality.

PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE

INITIATION PHASE

The Initiation Phase begins when a business sponsor identifies


a need or an opportunity.

The purpose of the Initiation Phase is to:

• Identify and validate an opportunity to improve business


accomplishments of the organization or a deficiency
related to a business need.
• Identify significant assumptions and constraints on
solutions to that need.
• Recommend the exploration of alternative concepts and
methods to satisfy the need including questioning the
need for technology, i.e., will a change in the business
process offer a solution?
• Assure executive business and executive technical
sponsorship. The Sponsor designates a Project
Manager and the business need is documented in a
Concept Proposal. The Concept Proposal includes
information about the business process and the
relationship to the Agency/Organization.
• Infrastructure and the Strategic Plan. A successful
Concept Proposal results in a Project Management
Charter which outlines the authority of the project
manager to begin
the project.

Careful oversight is required to ensure projects support


strategic business objectives and resources are effectively
implemented into an organization's enterprise architecture. The
initiation phase begins when an opportunity to add, improve, or
correct a system is identified and formally requested through
the presentation of a business case. The business case should,
at a minimum, describe a proposal’s purpose, identify expected
benefits, and explain how the proposed system supports one of
the organization’s business strategies. The business case
should also identify alternative solutions and detail as many
informational, functional, and network requirements as possible.
SYSTEM CONCEPT DEVELOPMENT PHASE

The System Concept Development Phase begins after a


business need or opportunity is validated by the
Agency/Organization Program Leadership and the
Agency/Organization CIO.

The purpose of the System Concept Development Phase is to:

• Determine the feasibility and appropriateness of the


alternatives.
• Identify system interfaces.
• Identify basic functional and data requirements to
satisfy the business need.
• Establish system boundaries; identify goals, objectives,
critical success factors, and performance measures.
• Evaluate costs and benefits of alternative approaches
to satisfy the basic functional requirements
• Assess project risks
• Identify and initiate risk mitigation actions, andDevelop
high-level technical architecture, process models, data
models, and a concept of operations. This phase
explores potential technical solutions within the context
of the business need.
• It may include several trade-off decisions such as the
decision to use COTS software products as opposed to
developing custom software or reusing software
components, or the decision to use an incremental
delivery versus a complete, onetime deployment.
• Construction of executable prototypes is encouraged to
evaluate technology to support the business process.
The System Boundary Document serves as an
important reference document to support the
Information Technology Project Request (ITPR)
process.
• The ITPR must be approved by the State CIO before
the project can move forward.
PICTORIAL REPRESENTATION OF SDLC:

PLANNING PHASE

The planning phase is the most critical step in


completing development, acquisition, and maintenance
projects. Careful planning, particularly in the early stages of a
project, is necessary to coordinate activities and manage
project risks effectively. The depth and formality of project plans
should be commensurate with the characteristics and risks of a
given project. Project plans refine the information gathered
during the initiation phase by further identifying the specific
activities and resources required to complete a project.
A critical part of a project manager’ sjob is to coordinate
discussions between user, audit, security, design, development,
and network personnel to identify and document as many
functional, security, and network requirements as possible.
During this phase, a plan is developed that documents the
approach to be used and includes a discussion of methods,
tools, tasks, resources, project schedules, and user input.
Personnel assignments, costs, project schedule, and target
dates are established.
A Project Management Plan is created with
components related to acquisition planning, configuration
management planning, quality assurance planning, concept of
operations, system security, verification and validation, and
systems engineering management planning.

REQUIREMENTS ANALYSIS PHASE

This phase formally defines the detailed functional user


requirements using high-level requirements identified in the
Initiation, System Concept, and Planning phases. It also
delineates the requirements in terms of data, system
performance, security, and maintainability requirements for the
system. The requirements are defined in this phase to alevel of
detail sufficient for systems design to proceed. They need to be
measurable, testable, and relate to the business need or
opportunity identified in the Initiation Phase. The requirements
that will be used to determine acceptance of the system are
captured in the Test and Evaluation MasterPlan.
The purposes of this phase are to:
• Further define and refine the functional and data
requirements and document them in the Requirements
Document,
• Complete business process reengineering of the
functions to be supported (i.e., verify what information
drives the business process, what information is
generated, who generates it, where does the
information go, and who processes it),
• Develop detailed data and process models (system
inputs, outputs, and the process.
• Develop the test and evaluation requirements that will
be used to determine acceptable system performance.

DESIGN PHASE

The design phase involves converting the informational,


functional, and network requirements identified during the
initiation and planning phases into unified design specifications
that developers use to scriptprograms during the development
phase. Program designs are c onstructed in various ways.
Using a top-down approach, designers first identify and link
majorprogram components and interfaces, then expand design
layouts as they identify and link smaller subsystems and
connections. Using a bottom-up approach, designers first
identify and link minor program components and interfaces,
then expand design layouts as they identify and link larger
systems and connections. Contemporary design techniques
often use prototyping tools that build mock-up designs of items
such as application screens, database layouts, and system
architectures. End users, designers, developers, database
managers, and network administrators should review and refine
the prototyped designs in an iterative process until they agree
on an acceptable design. Audit, security, and quality assurance
personnel should be involved in the review and approval
process. During this phase, the system is designed to satisfy
the functional requirements identified in the previous phase.
Since problems in the design phase could be very expensive to
solve in the later stage of the software development, a variety of
elements are considered in the design to mitigate risk. These
include:

• Identifying potential risks and defining mitigating design


features.
• Performing a security risk assessment.
• Developing a conversion plan to migrate current data to
the new system.
• Determining the operating environment.
• Defining major subsystems and their inputs and
outputs.
• Allocating processes to resources.
• Preparing detailed logic specifications for each software
module. The result is a draft System Design Document
which captures the preliminary design for the system.
• Everything requiring user input or approval is
documented and reviewed by the user. Once these
documents have been approved by the Agency CIO
and Business Sponsor, the final System Design
Document is created to serve as the Critical/Detailed
Design for the system.
• This document receives a rigorous review byAgency
technical and functional representatives to ensure that it
satisfies the business requirements. Concurrent with
the development of the system design, the Agency
Project Manager begins development of the
Implementation Plan, Operations and Maintenance
Manual, and the Training Plan.

DEVELOPMENT PHASE

The development phase involves converting design


specifications into executable programs. Effective
development standards include requirements that
programmers and other project participants discuss design
specifications before programming begins. The procedures
help ensure programmers clearly understand program
designs and functional requirements. Programmers use
various techniques to develop computer programs. The
large transaction oriented programs associated with
financial institutions have traditionally been developed using
procedural programming techniques. Procedural
programming involves the line-by-line scripting of logical
instructions that are combined to form a program. Effective
completion of the previous stages is a key factor in the
success of the Development phase. The Development
phase consists of:

• Translating the detailed requirements and design into


system components.
• Testing individual elements (units) for usability.
• Preparing for integration and testing of the IT system.

INTEGRATION AND TEST PHASE

• Subsystem integration, system, security, and user


acceptance testing is conducted during the integration
and test phase. The user, with those responsible for
quality assurance, validates that the functional
requirements, as defined in the functional requirements
document, are satisfied by the developed or modified
system. OIT Security staff assess the system security
and issue a security certification and accreditation prior
to installation/implementation.
Multiple levels of testing are performed, including:

• Testing at the development facility by the contractor


and possibly supported by end users

• Testing as a deployed system with end users working


together with contract personnel

• Operational testing by the end user alone performing all


functions. Requirements are traced throughout testing,a
final Independent Verification & Validation evaluation is
performed and all documentation is reviewedand
accepted prior to acceptance of the system.

IMPLEMENTATION PHASE

This phase is initiated after the system has been tested


and accepted by the user. In this phase, the system is installed
to support the intended business functions. System
performance is compared to performance objectives
established during the planning phase. Implementation includes
user notification, user training, installation of hardware,
installation of software onto production computers, and
integration of the system into daily work processes. This phase
continues until the system is operating in production in
accordance with the defined userrequirements.

OPERATIONS AND MAINTENANCE PHASE

The system operation is ongoing. The system is


monitored for continued performance in accordance with user
requirements and needed system modifications are
incorporated. Operations continue as long as the system can be
effectively adapted to respond to the organization’s needs.
When modifications or changes are identified, the system may
reenter the planning phase.
The purpose of this phase is to:

• Operate, maintain, and enhance the system.


• Certify that the system can process sensitive
information.
• Conduct periodic assessments of the system to ensure
the functional requirements continue to be satisfied.
• Determine when the system needs to be modernized,
replaced, or retired.
SOURCE CODE

Create a Python project of a ATM MACHINE


MANAGEMENT SYSTEM.

Note :

• Display the options and ask the user to enter


the choice.

• Show an in progress message.

• Create appropriate response.

• Allow the user to continue/ or quit the game.

SOLUTION:

import mysql.connector as sql

conn=sql.connect(host='localhost',user='root',password='
manager',database=' ATM_MACHINE')

c1=conn.cursor()
print("==========================================
======================================")

print(" WELCOME TO OUR BANK ")

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 accont


number:"))
cb="select * from records where
ACCONT_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 -")

print("==========================================
======================================")

if c=="y":

continue

else:
print("Thank you.")

print("Visit again")

print("==========================================
======================================")

else:

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("==========================================
======================================")

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 records set CR_AMT={} where


ACCONT_NO={}".format(s,m)

c1.execute(sr)

conn.commit()

ef="update records set balance=cr_amt-


withdrawl where ACCONT_NO={}".format(m)

c1.execute(ef)

conn.commit()

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)

c1.execute(cb)

c1.fetchall()

data=c1.rowcount

if data==1:

pas=int(input("Enter your password :"))

print("==========================================
======================================")
e="select password from records where
ACCONT_NO={}".format(acct)

c1.execute(e)

a=c1.fetchone()

d=list(a)

if pas==d[0]:

print("correct")

print("1.Depositng money")

print("2.withdrawing money")

print("3.Transfering money")

print("4.Checking balance")

print("5.Changing 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)

c1.execute(sr)

conn.commit()

ef="update records set balance=cr_amt-


withdrawl where ACCONT_NO={}".format(acct)

c1.execute(ef)

conn.commit()

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)

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 records set


balance=balance - {} where
ACCONT_NO={}".format(amt,acct)

ed="update records set WITHDRAWL


={} where ACCONT_NO={}".format(amt,acct)

c1.execute(ed)

c1.execute(sr)

conn.commit()

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("==========================================
======================================")

cb="select * from records where


ACCONT_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 records
where accont_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:

av="update records set


balance=balance-{} where
ACCONT_NO={}".format(m,acct)

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)

c1.execute(av)

c1.execute(cv)

c1.execute(w)

c1.execute(t)

conn.commit()

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)

c1.execute(ma)

k=c1.fetchone()

print("Balance in your account=",k)


print("==========================================
======================================")

y=input("do you want to continue y/n -")

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)

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")

else:

name=input("Enter your name")

ar="Update records set accont_no={}


where name='{}' and password={}".format(i,name,pas)

c1.execute(ar)

conn.commit()

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")

c1.close()
TESTING

Software Testing is an empirical investigation conducted to

provide stakeholders with information about the quality of the product


or service under test[1] , with respect to the context in which it is
intended to operate. Software Testing also provides an objective,
independent view of the software to allow the business to appreciate
and understand the risks at implementation of the software. Test
techniques include, but are not limited to, the process of executing a
program or application with the intent of finding software bugs.
It can also be stated as the process of validating and
verifying that a software program/application/product meets the
business and technical requirements that guided its design and
development, so that it works as expected and can be implemented
with the same characteristics. Software Testing, depending on the
testing method employed, can be implemented at any time in the
development process, however the most test effort is employed after
the requirements have been defined and coding process has been
completed.

TESTING METHODS
Software testing methods are traditionally divided into black
box testing and white box testing. These two approaches are used to
describe the point of view that a test engineer takes when designing
test cases.
BLACK BOX TESTING

Black box testing treats the software as a "black box," without


any knowledge of internal implementation. Black box testing methods
include: equivalence partitioning, boundary value analysis, all-pairs
testing, fuzz testing, model-based testing, traceability matrix,
exploratory testing and specification-based testing.

SPECIFICATION-BASED TESTING

Specification-based testing aims to test the functionality of


software according to the applicable requirements.[16] Thus, the tester
inputs data into, and only sees the output from, the test object. This
level of testing usually requires thorough test cases to be provided to
the tester, who then can simply verify that for a given input, the output
value (or behaviour), either "is" or "is not" the same as the expected
value specified in the test case. Specification-based testing is
necessary, but it is insufficient to guard against certain risks

ADVANTAGES AND DISADVANTAGES

The black box tester has no "bonds" with the code, and a
tester's perception is very simple: a code must have bugs. Using the
principle, "Ask and you shall receive," black box testers find bugs
where programmers don't. But, on the other hand, black box testing
has been said to be "like a walk in a dark labyrinth without a flashlight,"
because the tester doesn't know how the software being tested was
actually constructed.
That's why there are situations when (1) a black box tester
writes many test cases to check something that can be tested by only
one test case, and/or (2) some parts of the back end are not tested at
all. Therefore, black box testing has the advantage of "an unaffiliated
opinion," on the one hand, and the disadvantage of "blind exploring,"
on the other.

WHITE BOX TESTING

White box testing, by contrast to black box testing, is when


the tester has access to the internal data structures and algorithms
(and the code that implement these)

Types of white box testing:-


The following types of white box testing exist:
• api testing - Testing of the application using Public
and Private APIs.
• Code coverage - creating tests to satisfy some
criteria of code coverage.
For example, the test designer can create tests to cause all
statements in the program to be executed at least once.
• fault injection methods.
• mutation testing methods.
• static testing - White box testing includes all static
testing.
CODE COMPLETENESS EVALUATION

White box testing methods can also be used to evaluate the


completeness of a test suite that was created with black box testing
methods. This allows the software team to examine parts of a system
that are rarely tested and ensures that the most important function
points have been tested.

Two common forms of code coverage are:


• Function Coverage: Which reports on functions
executed and
• Statement Coverage: Which reports on the number
of lines executed to complete the test.
They both return coverage metric, measured as a percentage
INSTALLATION PROCEDURE

ATM MACHINE:-

Pre-Requisites :

1. You have to have the following softwares for the


successful running of this software; which are

I) Python (Only for the First time), it is


downloadable from 'www.python.org'.

II) MySQL (Only for the First time), it is


downloadable from 'www.mysql.org'.
Installation :-

1. There will be two folders namely 'Python Files' and


'EXE files' in the folder 'Source Code'.

2. The folder 'Python Files' will contain the source code


of the software in python language. If you are running the
software by the 3rd step mentioned below you have to pre
install the following modules :-

I) mysql.connector or pymysql

II) matplotlib.

3. Open the files in any python editors and run it to start


and work on the software.

4. The folder 'EXE files' will contain two files namely


'main.exe' and 'Tables_in_mysql.exe'.

5. First run the 'Tables_in_mysql.exe' to create the


tables in MySQL.

6. Then run the file 'main.exe' to start and work on the


software.
CAUTION :-

If you are running the software through running the python files

or by running the .exe files ; first run the file named

'Tables_in_mysql'.

The .exe file will take some time to run; so be

PATIENT.
HARDWARE AND SOFTWARE REQUIREMENTS

HARDWARE REQUIREMENTS:

I.OPERATING SYSTEM : WINDOWS 7 AND ABOVE

II. PROCESSOR : PENTIUM(ANY) OR AMD

ATHALON(3800+- 4200+

DUAL CORE)

III. MOTHERBOARD :1.845 OR 915,995 FOR PENTIUM 0R

MSI K9MM-V VIA K8M800+8237R PLUS

CHIPSET FOR AMD ATHALON

IV. RAM : 512MB+

V. Hard disk : SATA 40 GB OR ABOVE

VI. CD/DVD r/w multi drive combo : (If back up required)

VII. FLOPPY DRIVE 1.44 MB : (If Backup required)

VIII. MONITOR 14.1 or 15 -17 inch

IX. Key board and mouse

X. Printer : required

SOFTWARE REQUIREMENTS:

I. Windows OS
II. Python
BIBLIOGRAPHY

1. Computer science With Python - Class XI &XII By :

SumitaArora

2. Head-First Python’(2nd Edition) By: Paul Barry

3. Python Programming: An Introduction to Computer

Science (3rd Edition) By John Zelle

4. Website: https://www.w3resource.com

***

You might also like