Académique Documents
Professionnel Documents
Culture Documents
Virtual ATM
Machine
By Rithin
Teacher: - Mr. Suresh Arora
3/1/2013
RITHIN 10B
Table of Contents
Introduction on ATM Systems
Analysis
Problem Identification
Objectives
Existing Solution
Evaluation of existing solution
Alternative Possible Solutions
Design
Action plan
Hardware Used
System Flowchart
Screen Designs
Functional Requirements of Solution
Software Used
Software Selection
Implementation
Method of solution
Method of conversion
Testing
Testing strategy
Testing plan (including screens)
Documentation
Technical Documentation
User Documentation
Evaluation
Technical Skill
RITHIN 10B
Introduction
The computer was born to solve problems that did not exist before Bill Gates
These days every single person is known with the word-computer. We can find
computers at everywhere around us. In fact modern world will be incomplete without
computers and their applications. Its almost impossible to even imagine the modern
facilities without the use of computers. Today, since everything is done on computers,
we can take advantage of this fact by providing an ATM machine for banks with
computers as well. On that note, I have chosen to make a Virtual ATM Machine
because I know this will be helpful for bank customers to make transactions at ease.
An automated teller machine (ATM) is a computerized telecommunications device
that provides the clients of a financial institution with access to financial transactions
in a public space. To perform all these transactions or operations, you need a program
which will be running in the machine. This program will be connected to a database in
which users are registered, and what I am going to create is that program, Virtual
ATM Machine which will be connected to bank database and will also provide users to
perform their desired transactions such as Transfer, Withdraw, Balance Inquiry, PIN
Change,
Bank Ten ATM Machine
An Account Number and a PIN Number will be required to login and perform
transactions. Users will first have to register themselves in a bank, and this ATM
machine is a facility provided by Bank for users.
RITHIN 10B
ANALYSIS
RITHIN 10B
PROBLEM INDENTIFICATION:BankTen, is a small scale bank located in a small town called Shahkot. BankTen has
limited staff and uses manual record system. But recently, the number of customers
visiting the bank has increased, hence the employees are facing a difficulty in writing
the records down, the working hours of the employees are increasing. Due to this,
customers have to wait in long lines in the bank as transaction processing is slow.
Obviously employees cannot work more, because they are humans too and they will
eventually get tired. In customer point of view, customers dont like waiting in lines,
filling the forms for every single transaction they make and most importantly banks
are not available all the time for customers. At present, both the employees and the
customers are not happy with this problem.
As stated above, the many common problems faced by employees and the customers
of a bank are:
1) Banks are not open all the time:- In case of emergency or in need of money in
the night time, banks are not available. Employees in the bank also require rest,
and hence banks are only available for a certain time period during the day or
sometimes even closed due to a public holiday. Customers face a problem
here; if they want to make a transaction it is not possible, as the bank is closed.
PROBLEM: Banks are not always available at the choice of time of
Customers!
2) Waiting in long lines in the bank:- Most people are busy, as they have a lot of
things to do, for well-settled people time is really important ad they cant
afford to lose time in long lines of waiting. Banks are sometimes fully crowded
which will increase the time factor for a certain customer, as the workers are
limited. PROBLEM: People will have to wait in long line for performing a
transaction. Not really convenient for the customers!
3) Filling the withdrawal or transfer slips:- Most customers find this really
uncomfortable, sometimes they even fill wrong details by mistake in the form
if they are in a hurry. Old generation people will do this job with a lot of
patience, but the young generation will find ways to skip this and eventually
make some mistakes. As said before, people cant afford to lose time for things
like these, they get reckless in banks itself! It is a formality of bank but not
really appreciated by the customers. PROBLEM: Filling out slips for
withdrawal or transfer is uncomfortable for customers!
4) Keeping a Proper record of these slips in the bank:- It is even more difficult
for the bank employees to perform manual calculations and keep a proper
record of these slips filled by the customers. Its not one or two, on average it
will be more than 1000 records per day. These records are not completely
secure, theft or burning of the records might be done by unwanted people.
PROBLEM: Keeping Manual Record, is difficult for employees of the bank. It
is their job, but still handling more than 10000 records is really difficult.
RITHIN 10B
5) Not attractive for customers :- Banks business might not run as expected,
because these formal systems will be too old for new customers, and they
might feel this is not suitable for their personal requirements in life. A business
will run good only if customers are satisfied with the services provided, but if
theyre not its ultimately the banks loss.
PROBLEM: Customers will not be satisfied with services, if something new is
not set.
OBJECTIVES:To provide a simple and convenient medium for customers to perform their
desired transactions with ease with Voice Instructions.
My objective is to create a Bank Database which will automatically synchronize
with the customers transactions; The Virtual ATM Mahchine.
The staff will also able to search any record of their choice within the database
itself to save time of both the employee as well as the customer.
The program should be able to edit or modify the records just incase some
irrelevant information is added or the staff has misspelled the name of the
customer, card number, or any sensitive data.
Adding new records in a computerized database instead of paper-work could
save time and resources, at the same time prove to be efficient and convenient.
To provide a deposit money option for staff, so that they can deposit the
money into customers account.
Keeping a proper track of all the transactions made, in a separate database,
can seek the search results at ease.
In case of PIN Failure, automatically BLOCKING the Card of the user so that the
account is safe, and secured.
Providing a Staff communication place, where the staff can communicate with
each other, and broadcast important company messages.
Giving a simple computer generated receipts which display information about
the transaction made. It hardly takes seconds to print a receipt. This saves a
lot of time and energy, because waiting in the long lines can become extremely
tiring.
Providing basic transaction options, Such as Withdrawal, Transferring money
into another account, Balance Inquiry, PIN Change, and display all the Recent
Transactions.
Lastly, making the ATM machine completely secured and interactive with
voices. Implementing Simple mannerisms, like greeting and thanking will be in
this Virtual ATM Machine.
Providing something New, which might overtake old systems and set the new
trend.
RITHIN 10B
EXISTING SOLUTION:Banks partially use computers for their storing their data. Few places in India,
use the manual recording system. This system is good, as all the data storing is
done manually.
Banks feel that it is insecure to save all of their data on the computer due to
viruses and easy accessible information
The staff keeps all of their information in files and records which are stashed in
the room where all the records and files are placed at.
If any information is needed, the staff then goes to the that room, looks for the
file which contains information about the record taken into consideration and
reads out the information that is recorded into the file including the time,
amount, account numbers, and most importantly Signature.
To add any record, the customers have to fill in slips/forms for registration or
even for making a transaction, customers have to wait in the bank until the
transaction is processed and the information is recorded and stored for further
use.
Users visit the bank, fill the details in a form with their signature, and wait for
their turn, which takes up some time. Then the bank do the rest of the job.
Customer goes to
the bank
Fewer
Crowds
Larger
Crowd
If an error occurs, or a
mistake in form
filling, you have to
wait again in the line.
RITHIN 10B
Disadvantages:
For every new transaction or new account, new records and new files enter the
storage room of the bank. With progress in time and the number of customers making
transactions, it is going to be very hard for the bank staff to sort out the files in the
storage room. This could result in both time consumption as well as inefficiency.
More than the storage, searching the files would be more complicated. For example, If
the bank manager wants to view the records of transactions, staff will have to rush to
the storage room and look for the file from the huge piles of files, and finally after
finding the file, carry it to the front desk and then show it to the manager. This could
be tiring, and frustrating for both the manager as well as the employee. Retrieving
data is slow.
Too much paper work and Space Consuming: since everything and every details is
written down manually in paper there will be too much paper work! since the data
and paper is stored in filing cabinets it consumes too much place, as the amount of
work done on paper increases the filing cabinets too increases. Hence, difficult for
banks.
Inconsistency of data: there will be unavailability for future use, since data might get
misplaced during manual filing. So data wont be preserved properly for future use.
Long Waiting Lines in the bank for any transaction. This results in a sharp drop in sales,
unhappy customers and a bad impression on the bank
RITHIN 10B
OTHER POSSIBLE SOLUTION:1. Party Computerized solution. In this method, the staff uses the computer partly
in the adding, sorting, and searching for records or transactions in their database.
In this method, the computer is only used for adding new records, which are
printed and then stored in files. This could look neater as well as input of data will
be much faster with the help of keyboards and macros for preset templates of the
fields. Or, the computer may also be used to search the data or record desired by
keeping names or codes of the files in the computer database, which distinguish
every file in the store room for a much more simplified and organized manner of
looking through the file.
Advantages of Party Computerized Solution:The stored records maintain a same format, and hence look neat and organized.
Input of data will be much faster with the help of keyboards.
Searching the data records will be easier for the staff.
Records are stored in Storage room, hence the banks have a hard copy of the
records.
Disadvantages of Party Computerized Solution:Inconvenient for customers.
Long lines in the bank will still be present.
The same old procedure for customers, and hence it will not be appreciated by
the customers.
RITHIN 10B
-------------------------------------------
DESIGN
RITHIN 10B
Action Plan:
To put this method to practice, I must perform a certain series of tasks, which in turn
will eventually lead to my end-product result, which is a fully computerized movie
database program. In chronological order, the tasks or actions I am to perform to
exercise this method would be:
To research on the services which banks provide, and how they are being
processed, the money calculations taking place and the user account managing.
Finding out about the problem, setting a suitable solution and Feasibility Study.
(Investigation)
To find out which software is applicable for working with databases and learn
how to use such software or programs.
To plan out the design format of the program, what buttons it may need, or
what types of forms, tables it may include.
To arrange in order, which form comes after which, and organize or categorize
the similar types of data. For eg; forms should be linked to each other.
After all the arrangement is done, the next task to perform is to imply the
coding and programming language into the forms to perform the certain tasks
which is to either display information, or to move on to the next form.
Finally after all the coding is done, the testing and debugging process is
conducted and the data is tested in normal, abnormal and extreme conditions.
After testing for any errors, the project is built and distributed. In this step,
evaluation of the product is also done.
Task
Name
Task
Description
Start Date
End Date
Total Days
Problem
Identification &
Solution
27/12/2012
28/12/2012
Feasibility Study
29/12/2012
31/12/2012
Research
2/1/2013
5/1/2013
Design
6/1/2013
11/1/2013
Programming &
Coding
12/1/2013
23/1/2013
11
Testing
24/1/2013
25/1/2013
Documentation
25/1/2013
31/1/2013
Evaluation
3/2/2013
4/2/2013
RITHIN 10B
Time Plan
12
10
8
6
4
2
No of Days
Hardware Used:
I am using a variety of different hardware for this project:
Laptop: I am using an Apple Macbook Air laptop running Windows8. This laptop
is very easy to use, and is portable, so I can work on the project even when Im
not at home.
Processor: The processor of my laptop is Intel(R) Core(TM)2 Duo CPU L9400,
with 1.86 GHz of processing power. Even though it may not be the most
powerful or fastest processor around, it still works well for me.
Keyboard: The keyboard I am using is the one that is built into the laptop. I
dont need to attach an external keyboard, because this one works just
fine.(BUT for the main program keyboard is not requird)
Mouse: I have attached a Logitech M150 wireless mouse to the computer. I
prefer using this mouse to the touchpad, because the touchpad of the laptop
can be inaccurate and tough to use. Using a mouse for this kind of project is
just so much more efficient.
Hard disk: My laptop has 250GB of capacity in its hard disk. I will save my
project and report on the hard disk.
USBs: I am using 1 USB in this project. It is Sandisk Cruzer, 8GB. I use this to
save my projects as back up. This way, if I lose all my data on the hard disk, I
still have the data on these two USBs.
RAM: The RAM of my laptop is 2.00GB (But 1.74 GB usable). This is quite fast,
and I can run several programs simultaneously without facing any lag problems,
which will be useful for the project.
Monitor: I am using the laptops monitor, a 13.3 HD LED LCD. It is not very big,
but it is still relatively kind on the eyes.
RITHIN 10B
System Flowchart:
To explain the functions of the virtual atm machine program, here is a simple system
flowchart that will show you all the features and functions the program is capable of
performing:
CLOSE
INPUT : Mouse
click on icon of
program
UPDATE DATABASE
Welcome to BankTen
Virtual ATM Machine
USER or ADMINSTRATOR
INPUT PIN
#
Tries > 3
Invalid
Valid
INPUT:
USER
(ENTER)
INPUT:
ADMIN
INPUT
ACCOUNT
#
Invalid
ADMIN
LOGIN
Valid
Invalid
BLOCK
ACC#
RITHIN 10B
Screen Designs:
Welcome Form Design:
This welcome page consists of a welcome message, created by, and 2 options.
ENTER which is for a normal user and ADMINSTRATOR for authorized user.
Clicking on ENTER will open the Machine form and Clicking on ADMINSTARTOR will
open Admin form.
WELCOME MESSAGE
ENTER
ADMINSTRATOR
CREATED BY
LOGIN BUTTON
RITHIN 10B
BUTTON
SET 1
MAIN SCREEN
BUTTON
SET 2
CASH
NUMERIC KEYPAD
CARD
Inserting
Receipt
Dark green has been chosen for the screen back color and light green for the
background. This color combination of Dark and light green is kept constant for
customer screen display.
RITHIN 10B
RITHIN 10B
Software Used:
Below is a screenshot of the system in which this project is made:
As it says above, the Operating system used is Windows 8, and below are simply a
few hardware specifications that are required to run the desired operating system.
The software that I will be needing for making this project would be:
Microsoft Visual FOXPRO 6.0: This is the most important part of my project as it
contains almost all of my information regarding the project. In this software, I will be
designing all of the forms, buttons, textboxes, etc. that are required in the project. I
will also be connecting my database into this software and finally build the program in
this software making program.
Microsoft Office Word 2010: I will need this software for writing down this report,
and also for organizing my project so that I dont miss out on anything in the project.
Microsoft Paint: I will need this software for customizing (modifying) pictures, as
graphics play an important role in this project.
Google Chrome: This is essential for researching on how the bank transactions
function etc. And to make sure that I get the right functions in my project.
RITHIN 10B
Software Selection
When we were first told about this project, there were various softwares from which
we could choose, we were told about Visual FoxPro and Microsoft Access. However,
before I thought about using any other software, I thought that Visual FoxPro would
be best for me because of various reasons.
I had been using this software for 2 years
I was comfortable and familiar with all the functions of this software.
I was learning about this software and would learn more as in school as this was
the program being taught
I would not need much help, where as if I would shift the software, I would be
requiring much more effort and time to spend on it.
Though Microsoft Access was a good program against the Visual Fox pro so I decided
to make table showing their pros and cons :
Feature
Appearance
Microsoft
Access
Ease of Interface
Speed
Storage
Transfer& Backup
Visual FoxPro doesnt have much options to make it attractive (its simple), but I will
make it user-friendly and attractive with help of few simple animations, sounds, and
graphics.
As you can see it was a hard choice but Visual FoxPro is chosen.
IMPLEMENTATION
RITHIN 10B
Method Of Solution:
To illustrate my database project here are a series of print screens and explanations
that depict how my project looks like in both the design and programming process.
In the design view, all of the tables present in the database are displayed in
the window. My project mainly contains of the 5 tables (excluding one),
Table Login, Admin Login, Table Deposit, Table Withdraw, Table Transfer.
Structures of Tables:
RITHIN 10B
Table Transfer
Structure
Table Deposit
Structure
Table Withdraw
Structure
Each table above has its own functionality. The structure of the table is very
important here. The table login has 20 fields. All the fields in this table are character
type. Since few fields are automatically updated, the CARDSTATUS field vale can only
be ACTIVE or BLOCKED. NULL value is only allowed for Balance and Withdraw
Amount (it is not possible, but the NULL value is just allowed). ACCOUNT NUMBER is
different for all customers. PIN NUMBER can be the same. The Admin Login table has
only 2 fields username and password. Next Page, shows few sample data present in all
the tables and their functionality. And further pages show flowcharts on how the
services work for users.
RITHIN 10B
Insert Card
Enter Account #
Valid Account
Number
Welcome with
name
Invalid Account #
Please try again.
Enter PIN #
3
chances
Invalid PIN
Number
Cancel
Invalid PIN #
Please try again.
BLOCK
CARD
Balance Inquiry*
Show
Information
form
Table_Login
Withdraw Money*
PIN
Change*
Recent
Transactions*
Show
Information
form
Table_Login
Perform
selected
transaction
EXIT
EXIT
RITHIN 10B
How the Withdraw Money Service works? - Flowchart
Withdraw Money*
Get User Details from Table_login, Display
Hello and ACC#
Select Amount
100
500
1000
5000
10000
Selected Amount = Y
IF X > Y
YES
X=XY
DATETIME () =
Z
UPDATE value X
& Z in
table_login
NO
CLOSE
Display X , Y , Z in
Receipt
CLOSE
EXIT
RITHIN 10B
Transfer Money*
Get User Details from Table_login, Display
Hello and My Account # = M
Valid Account
Number
Friend Balance = B
Friend Account = E
Transfer to
message with friend
name
Invalid Account #
Please try again.
Enter Amount
Entered Amount = A
YES Pass
NO Fail
IF X > A
B=B+A
DATETIME () = D
X=X-A
DATETIME () = D
UPDATE value X, B, D
& A E M , and both
names in
table_transfer
UPDATE value
X,B&D&A
EM
in table_login
Display A D E M X in
receipt transfer.
CLOSE
EXIT
PIN Change*
Get User Details from Table_login, Display
Hello Message and Account #
P Value =
N
Update P value in
table_login
Balance Inquiry *
and
Recent Transactions*
Form
Balance Inquiry
Recent Transactions
EXIT
RITHIN 10B
Forms:
The main aspects of my project are the forms of the project, which are responsible
for displaying information available from the database, which simultaneously provides
a medium for both customer and administrator. More Screenshots and details are in
User Documentation. Here are all of the forms included in my project:Name of the Form
Use
Welcome Form
Machine
Withdraw
Deposit
Balance
Recharge
Pinchange
blocked
Receipt
Reciept_transfer
Admin_Active
Admin_add_newuser
Admin_alldeposits
Admin_allrecords
Admin_alltransfers
Admin_deposit
Admin_login
Admin_search
Form1
RITHIN 10B
Types of
Conversion
Direct Conversion
Advantages
Parallel
Conversion
Advantages
Disadvantages
Phase-in
Conversion
Advantages
Disadvantages
Disadvantages
RITHIN 10B
Direct conversion
This is the implementation of the new system and the immediate discontinuance of
the old system. Once the conversion is made there is no way of going back to the old
system. It is inexpensive, but involves a high risk of failure because the entire system
is converted at once and going back to the old system will create a lot of hassle and
problems. This approach is appropriate when:
The system is not replacing any other system
The old system is judged to be without value
The new system is either very small or simple, or both
The design of the new system is drastically different from that of the old
system and comparisons between systems would be meaningless.
Advantage- Taking the example of a health care center, as we know health center
does not have enough funds for implementing the new system so it would be easier to
implement direct cutover method in the health center.
Disadvantage-This method of system changeover involves more risks of total system
failure and it is preferred for commercial software packages. So if there is a system
failure in health center then it will be difficult to store information of child who visits
health center. And if there is no proper storage then there will be incorrect reports
and monitoring of child's health will not be properly done.
Parallel conversion
This is an approach where both the old and the new system operate simultaneously
for some period of time until a thorough evaluation is completed. It is the opposite of
direct conversion. A high degree of protection from system failure is provided, but
parallel conversion is costly.
Usually though, if this conversion type fits in with the organizations IT plan then the
extra expense is warranted.
Advantage- The advantage of parallel system is lower risk of system failure so all the
tasks can be done properly at health center. If the new system does not work
properly, the health center can use the old manual system as a backup until
appropriate changes are made.
Disadvantage- As we know parallel system is the most costly changeover method as
both old and new systems operate fully for specified period and we also know that the
budget of health center is also low so it will be difficult for health center to follow
this changeover process.
RITHIN 10B
Phase-in conversion
This approach allows for a segmented system to be gradually implemented over time
until the old system is fully replaced. Unlike direct or parallel conversion, phase-in
conversion uses a step-by-step process of converting one segment at a time. This
method avoids the risk inherent with direct conversion while allowing users to get
used to the new system gradually. The cost of temporary interfaces with the old
system, along with not giving IT professionals the satisfaction of implementing the
system in its entirety, can be negative factors in this type of conversion.
Advantage- As we know in this method we have to implement the new system in
stages, or modules, which is less prone to risk of system failure or errors at health
centers, as failure is limited to the implemented module only. It is also less expensive
than parallel system because we have to work only with one part of system at a time.
Disadvantage- As the system, which we are implementing, involves various phased
operation like treatment, measuring weight, registration, vaccination etc. so it can
cost more than the pilot approach.
Which method is most suitable for my project?
The most appropriate method of conversion for my project would have to be Parallel
Conversion mainly because my database handles a lot of records and fields within the
project. To perform a parallel method of conversion would mean that I will be
inserting a new system while simultaneously importing my records and fields from the
old system into the new system. This will be very helpful as I will not have to backup
my records, at the same time very reliable, as I will not take the risk of losing any of
my records from the database.
If I had chosen the direct method of conversion, then I would face the problem of
having to back up all of my records from the database and saving them on a separate
file. Then, after the new system has been imported, I will have to add all of the
records again. This could be frustrating and time consuming. Also, if I had picked the
phased method of conversion, changing the system at one segment at a time could
damage my data and make the corrupt, hence not allowing me to open the files again
in the future which could be very risk taking. The only disadvantage of using the
parallel system changeover is that it is very costly which is a good sign because there
are no disadvantages related to the method or performance of the system
changeover, and with a high cost, this method will naturally by very reliable.
Suitability of hardware and software recommended:
According to the recommended hardware and software in the design stage, this
method of conversion is perfect. In terms of hardware, the 2 GB of RAM and the
250GB onboard hard drive memory, the system will not have a problem running two
systems at a time as prior to the parallel system changeover. The operating system,
windows 8 is also suitable for the parallel system changeover.
-------------------------------------------
TESTING
RITHIN 10B
Testing Strategy:
For testing this strategy, I will be using the User based test strategy, where as a user,
or admin, will input the data required and according to what I have inputted, the
response made by the program will be the result of the test conducted.
Testing Plan:
Based on the 5 tables present in my project, I have designed a test plan that will
check the response of the program according to the user input.
For Admin Login:
My test will be based on 3 types of data, normal, abnormal, and extreme. The table
below will show the values I will enter into the field:
Data Type
Username
Password
Normal
rithin
admin
Abnormal
rithin
Extreme
asdfghjk
asdfghjk
RITHIN 10B
Abnormal Data or Extreme Data: If entered then this screen will be shown:
Account Number
Normal
00000001
Abnormal
37565656
Extreme
asdfghjk
Normal Data; If entered correctly, user will be welcomed by name, and will be prompted to enter 4
digit PIN number of users bank account.
RITHIN 10B
Abnormal Data: If entered then this screen will be shown:
PIN Number
Normal
1111
Abnormal
0909
Extreme
asdf
PIN Number will only valid if it matches with the account number in the database. The normal data in
the above table is for the account number 00000001 which is normal data also.
RITHIN 10B
Normal Data; If entered correctly then the services will be shown:
Abnormal Data and Extreme Data; If such type of data is entered then this screen will be shown:
Account Number
Normal
00000004
Abnormal
00000001
Extreme
22222222
The account number entered should be present in the bank database (normal), and
money cannot be transferred into customers own account (abnormal). If an account
number is entered which doesnt exist then it is extreme data type.
RITHIN 10B
Normal Data; If entered correctly then the next screen will be shown:
Abnormal Data; if own account number is entered then this will be shown:
Amount Entered
Normal
150
Abnormal
Extreme
9999999
RITHIN 10B
Normal Data; If valid amount entered then the next screen will be shown
Abnormal Data; if the input is left blank then this screen will be shown:
RITHIN 10B
TECHNICAL
DOCUMENTATION
RITHIN 10B
Welcome to BankTen Virtual ATM Machine Technical Users manual. In this manual,
we will be covering the:
System requirements for this project
Different types of code implemented in the software and how theyre
connected.
This section aims at the maintenance programmer of the system. It is designed to aid
him/her in the maintenance process, and keep him/her running the system properly.
It will in include the systems hardware and software requirements, a reference to all
its tables and forms; Database. All the different type of codes implemented in the
software and working flowcharts of different transactions.
System Requirements:
The above requirements are highly recommend. Microsoft Visual FoxPro 6.0 or a
higher version is must. Without VFP this program will not function.
My system doesnt support touch, but computers that support touch can be used as
well, and it will be more user friendly and a better option in this situation. Here is
detailed information about the system.
RITHIN 10B
This is the main table, as it contains the customer information and details. This is the
table that is used to store the recent transactions, balance, withdrawal, printing
receipt after withdrawal, Blocking Cards etc. Below is the structure of the table:
Name of field
Account
PIN
Balance
Name
Age
Sex
Address
Telephone
Emailid
With_amt
With_date
Trans_mony
Trans_name
Trans_acc
Trans_date
I_transfer
I_tran_acc
I_trandate
I_tranname
CardStatus
Type
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Character
Width
8
4
15
30
2
6
50
12
100
15
20
15
20
10
20
15
8
20
20
10
There are 20 fields in this table. All the fields in this table are character type. The
name, address, email have large widths, because they may require several characters
to be input as details. The telephone number field has a width of 12, because there
are only 12 digits for a phone number (Indonesia). The Account number has a width of
8, and PIN number has a width of 4, because they are supposed to be. CARD STATUS
value can only be ACTIVE or BLOCKED. Date and time are also Character type.
2) Table_Deposit.DBF
This table contains all the deposits to users made by the admin. Below is the structure
of this table:
Name of field
Name_1
Act_num
Deposita_1
Depo_date
Type
Character
Character
Character
Character
Width
20
8
10
20
RITHIN 10B
3) Table_Withdraw.DBF
This table contains all the records of withdrawals made by user. Below is the
structure of this table:
Name of field
Name
Actno
Date
amount
Type
Character
Character
Character
Character
Width
30
8
20
15
When a user makes a withdraw using the Virtual ATM Machine the details about that
withdrawal will be added automatically in seconds in this table.
This table contains 4 fields. All are Character type.
4) Table_Transfer.DBF
This table contains all the money transfer transactions made by the user. Below is the
structure of this table:
Name of field
From_acc
To_acc
transamount
On_date
transacton
From_name
To_name
Type
Character
Character
Character
Character
Character
Character
Character
Width
8
8
15
20
10
20
20
This table contains 7 fields. All are Character type. Transacton shows weather a
transaction was success or failed.
5) Admin_login.DBF
This table contains all the authorized users of the bank. Both the values from the table are required to
pass the security check in admin_area (to login to admin area). Below is the structure of this table:
Name of field
Type
Width
Username
Character
10
Password
Character
10
This table contains 2 fields. They are both Character type, because some staff users like to include
numbers in their usernames and passwords. The width for both fields is 10, since the longer the
password is, the less likely people are to be able to guess it.
RITHIN 10B
6) Message.DBF
This table contains all the broadcast messages sent to other admins of the bank Below is the structure
of this table:
Name of field
Type
Width
Message
Character
250
The field type is character, and the width is 250 because some important message
might be long.
There are 20 forms in this project. Here is a list of the forms present:
Name of the Form
Welcome Form
Machine
Withdraw
Deposit
Balance
Recharge
Pinchange
blocked
Receipt
Reciept_transfer
Admin_Active
Admin_add_newuser
Admin_alldeposits
Admin_allrecords
Admin_alltransfers
Admin_deposit
Admin_login
Admin_search
Form1
Use
Allows user to choose admin or customer
Shows the ATM Machine screen, and
transactions users can make.
Allows customer to make a withdrawal
Allows user to transfer money from
his/her account to another account
Displays Balance in customers account
Displays all the Recent transactions made
by the customer
Allows user to change his/her PIN number
Blocks the account, if the PIN is entered
wrong 3 times.
Shows details of a withdrawal transaction
Shows details of a transfer transaction
Allows admin to activate blocked
accounts
Allows admin to register a new account in
the bank
Displays a table which contains all the
Deposits made by the user (admin)
Displays table_login in a form. This
contains all the records in the bank.
Displays table_transfer in a form. This
contains all the transfers made by the
user
Allows admin to deposit money into an
account of a certain user
The main form for admin area, shows all
options which an admin can do.
Shows all records in a new manner
This is for admin communication.
Insert Card
Enter Account #
Valid Account
Number
Welcome with
name
Invalid Account #
Please try again.
Enter PIN #
3
chances
Invalid PIN
Number
Cancel
Invalid PIN #
Please try again.
BLOCK
CARD
Balance Inquiry*
Show
Information
form
Table_Login
Withdraw Money*
PIN Change*
Recent
Transactions*
Show
Information
form
Table_Login
Perform
selected
transaction
EXIT
EXIT
RITHIN 10B
Codes implemented in the program:
Being a database, driven application, this program contains a lot of coding which
connects to a table, and receives information from the table.
1. Login :
This button, when clicked will give the admin the ability to edit or modify any record
in the database from the display page itself. The code implemented into the edit
button is:
USE admin_login
test=0
DO WHILE NOT EOF()
IF thisform.text1.Value=username
IF thisform.text2.Value=password
test=1
ENDIF
ENDIF
SKIP
ENDDO
IF test=1
Thisform.command2.visible = .T.
thisform.command8.visible = .T.
thisform.command9.visible = .T.
thisform.image4.visible = .T.
thisform.command10.visible = .T.
thisform.caption = "You are now logged in!"
thisform.release
ELSE
MESSAGEBOX("Sorry, Incorrect details! Please try again.",64,"Admin Area")
ENDIF
This code simply tells us that we have been granted access into the admin area. The
same code has been applied in the machine form too, but in a different manner, but
its the same principle.
RITHIN 10B
2. Search Code
PUBLIC FLAG
USE table_login
LOCATE FOR LOWER(THISFORM.acountnumber.VALUE)=ACCOUNT
IF FOUND()
FLAG=RECNO()
THISFORM.Refresh
thisform.labelname.caption = thisform.txtName.value
ELSE
ENDIF
In this project, this code is used to welcome the user by name in the starting of the
ATM Machine. This code searches for the entered account number and the gets the
data and then displays it in a presentable manner.
3. Speaking some text
thisform.textcard.value = "Sorry" + thisform.txtName.value
loSpeak = CREATEOBJECT("SAPI.SPVoice")
loSpeak.SPEAK(thisform.textcard.value)
This code is used to welcome the user by name with voice. It will be more interactive
when a computer welcomes you by name. Hence, this code is used is various parts of
the project.
3. Making an object visible in the form
Thisform.image1.visible = .T.
Thisform.image2.visible = .F.
Most of the project is based on this small piece of code, because this creates illusions
which are really effective. Eg, when you click on login, and if it is a success, then this
sets the next option to visible and hides the previous object, so there is no need of
opening another form, it can all be done in one form, in one place.
RITHIN 10B
Generating random 8-digit and 4-digit number is useful for admin, for account number
or pin number. This helps generate a random number (which might repeat) but useful
for setting an account number and a PIN number.
6. Adding a new record into the table
APPEND BLANK IN table_login
thisform.txtAccount.value = thisform.text1.value
thisform.txtPin.value = thisform.text2.value
thisform.txtAge.value = thisform.text4.value
thisform.txtSex.value = thisform.text8.value
thisform.txtName.value = thisform.text3.value
thisform.txtEmailid.value = thisform.text7.value
thisform.txtAddress.value = thisform.text5.value
thisform.txtTelephone.value = thisform.text6.value
thisform.txtBalance.value = thisform.balance.value
thisform.txtCardstatus.value = thisform.text11.value
This appends a new record into a table, this has also been used in various parts of the
project, because after every transaction, the data should be added automatically to a
specific table.
RITHIN 10B
* The codes used in the project are not direct, they have all been mixed with IF
function, like example :-
RITHIN 10B
thisform.text1.value = acc
PUBLIC acc
Code for form
acc = ""
This is used for the numeric keypad in the virtual atm machine, which allows the user
to type the account number and pin number without a keyboard. 1 is the character
which you want to enter, this can be changed to any other character like 2 or 3
etc.
10. Playing a sound when command button is clicked
A small program is created in VFP. In this project it is ATMVoice.prj the code used
in this program is:
FUNCTION Bank(ATMvoice)
Do Case
=Bank(1)
Case ATMvoice=1
SET BELL TO 'accountnumber.wav'
Code in button or form
ENDCASE
?CHR(7)
SET BELL TO
RETURN
RITHIN 10B
USER
DOCUMENTATION
RITHIN 10B
Getting Started:
To run the program, click on the BANKTEN.app file, which will open in Visual Fox Pro.
RITHIN 10B
The BankTen ATM Machine for customers to perform their desired transactions:
This is the screen which will be displayed to the user when he chooses ENTER. An ATM card should be
inserted (without inserting the card, the user cannot proceed further). After Inserting the Card he will
be prompted to enter his account number. This account number is a must for all users and it is
different for everyone.
Blocked Cards/Accounts are not accepted by the verification system and if such case exists it will
inform the user that the account is blocked and displays an Invalid Account Number message and
ejects the Card from the ATM Machine.
RITHIN 10B
If an invalid account number is entered:
Message will be displayed and the user will be asked to re-enter the account number. User can try
entering the account number unlimited number of times.
RITHIN 10B
* IF YOU ENTER YOUR PIN NUMBER WRONG 3 TIMES IN A ROW, THEN YOUR CARD WILL BE BLOCKED BY
THE SYSTEM.
Hence, the screen below will be displayed to you (no other option, but only EXIT). The CARD can only
be reactivated by Authorized users and your account number will no longer be accepted by this Virtual
ATM Machine.
RITHIN 10B
If a valid PIN number is entered:
This is only possible, if entered account number, and PIN number match with the database. You will be
shown all the services (the screen below) provided by bank. Such as, Withdraw, Transfer, Balance
Inquiry, Recent Transactions, PIN Change and an EXIT button.
Now, you can select your desired transaction by clicking on the buttons which are opposite to the
transaction name.
If you Select balance Inquiry:
Your current balance in the account will be displayed with your account number and name. How it
looks is shown below. The read option allows this Virtual ATM Machine to read out your name, account
number and your balance. This feature is something new, and is an advantage for blind people.
RITHIN 10B
Appropriate way of using the Transfer Money Service :
You can transfer money from your account into some other account (Business Partner, Employee,
Family member, Friend or anyone else) of the Bank. How it works is shown below.
RITHIN 10B
If an Invalid account number is entered for the Transfer money Service:
You will be shown an error message which is Invalid account number and this is how it looks. You will
have to enter a valid account number which exists in the bank in order to process the transaction.
* If you leave the input blank, then the amount you transfer will be $0, because you have left the field
blank.
RITHIN 10B
Using the Withdraw money service:
Withdrawing money in this machine is really simple, you can withdraw cash in seconds with a receipt.
This is how to looks like when you select withdraw.
RITHIN 10B
If you want to withdraw money more than your current balance:
This is not possible. Hence, you will be displayed an error message on the screen with your balance
which you help you choose valid amount of money to withdraw.
RITHIN 10B
RITHIN 10B
After you have completed the transaction, you will be re-directed to the main screen. Click on the EXIT
option to exit safely.
The next thing you will see is the Dont forget you card message and this looks like this.
By Clicking on ok you will be shown the first screen and hence you have successfully
closed /exit your session.
RITHIN 10B
ADMIN AREA:
This is the administrator screen for authorized users of the bank, who have the rights
to add new customers, modify data, delete the data, unblocking the ATM card
accounts. You will require a valid username and password to enter the admin area,
this is secured.
If you enter invalid data, you will not be permitted to enter the admin area. Hence,
the screen below will be shown.
RITHIN 10B
If you enter you enter valid username and password then this screen will be shown.
Admin has all the rights to modify, delete, add records or transaction details. The
options are, add new user, deposit money, view all records, view all deposits, view all
transfers, view all withdrawals, search users, admin communication, activate blocked
accounts, and logout.
RITHIN 10B
If suppose a customer wants to create an account in the bank, admin will click on this
option ADD NEW USER. This adds a new record into the main database. This is how
it looks like.
When all the data is entered correctly, the entered data will be successfully added to
the database. This is how it looks like.
RITHIN 10B
IF the account number is taken or not available:
It often happens, when account numbers get mixed. An Account number is the most
important thing, if this gets mixed, the balance the transaction, will be disrupted.
Clashes might occur. So in order to avoid this, we have kept a verification system,
which will verify first and then proceed. If the account number already exists, then
this is how it looks like.
RITHIN 10B
Depositing Money:
This option enables the admin to add money into the users account. Hence, this will
increase the balance of a certain user. This is how it looks like.
RITHIN 10B
Viewing all Records:
This option displays information about all the users present in this bank, their balance,
pin number, account number, name and other details. With various options such as
search, print etc. This is how it looks like.
This option displays all the deposits made by admin into a bank account, the amount
deposited to account number, the name of the customer, and most important the
Time. This is how it looks like.
RITHIN 10B
View all Transfers:
This option displays all the transfer transactions made by users. Transferred from, to
account, both the names of customers, amount which has been transferred, the status
of the transaction (Success or Failed) and most importantly time of transaction. All
these can be viewed by an authorized user of the bank. This saves a lot of time,
customer doesnt have to flip any slips and the bank doesnt need extra storage room
with piles of files, the data will be automatically updated in seconds. This is how it
looks like.
This option displays all the withdrawals made by a user. The admin can search records,
print records, edit records, add records, and even delete the records. This is how it
looks like.
RITHIN 10B
Search all Record/Display All user Information in a different manner:
This options display all records in the database of bank. The user information and
details. This is something similar to view all records option, but this is a different way
of displaying the customer information. (Not in tables). This is how it looks like.
* Admin Communication :
This option allows authorized users to send important messages to other admins of the
bank. This is something new, and useful for communication between the users. This is
how it looks like.
RITHIN 10B
* Unblocking blocked accounts :
This option allows authorized users to re-activate / unblock accounts which have been
blocked due to security reasons (entering PIN wrong 3 times in a row) . This is how it
looks like.
If the account is already active, then the message will displayed. And IF the entered
account number doesnt exist in the bank then the error message will be displayed.
To close the admin sessions, you just have to click on logout.
These are all the features provided for both admin and customers of bank in this
project.
EVALUATION
Objective: To create a Bank Database which will automatically synchronize with the
customers transactions; The Virtual ATM Machine.:
I did create a database that can hold records of customers. I created dummy data of customers to test if the
database and the machine are being synchronized, and it did. I managed to achieve this goal.
Objective: to allow authorized users to add new records (register new customers):
I made a form that does allow authorized users to add a new record with ease. When I tested it,
the results for normal data were as I expected, but not abnormal data and extreme data. I tried
adding a record with numbers as the name, address, email id and age with alphabets, and it
worked. This is because the only validation check on those fields was Character type, which
means that numbers can be added also. The systemdidntseeitasabnormaldata or extreme
data, but as normal data. I should have added another validation check to make sure numbers
couldntbeenteredintothosefields.ButIamsurethebankadminsarenotsocarelessto
enter numbers in this area. The function works absolutely fine.
Objective: BLOCKING the account, If user enters the PIN wrong more than 3 times:
I have successfully implemented this Blocking system, and it is really important because it keeps
the account secured, and it can always be re-activated in the bank. Hence, this objective is
done.
I had asked a few of my friends to try out the program and they had returned a few comments
or suggestions about the program which include:
The user interface could have been easier to use, and adding a record should be
available in the same form
When creating an admin account, other information should be asked as well, including
address, e-mail ID, phone number, first name, etc. for more security and less risk of
hackers
More protection should be provided to the data sources from viruses and any other
predicament that could result in the movement, loss, or damaging of the data from the
database.
Further Improvements:
Taking the suggestions above into consideration, any other further improvements that could be
made may include:
A much more fluid user experience, and if possible, everything should be done in one
form.
A wider gap between admin and users by storing more information about the admin to
prevent any hackers
A member option so users might also have the ability to edit, add, or delete the records.
These further improvements could be taken into consideration and help make the system a
better experience in the near future.
Technical Skill:
While making this project, I have learnt so much in the field of programming as well as
computer science in general. I had learnt how to design a fully database driven application from
the ground up and I had learnt to make the simple changes and correct the unnoticeable
mistakes that really do make a difference in the long run.
I had also acquired many programming skills such as creating public functions, and importing
systems, and also converting images into bytes to be stored in a database. In theory, I had also
learnt a lot of new things such as methods of conversion and how they may benefit the user
and the system or prove to be fatal for both the user as well as the system.
I am very pleased with my newly learned technical skills and I hope I may be able to use them
again in the many years to come.
------------------------------------------- ------------
END OF EVALUATION
-------------------------------------------------------