ONLINE BANKING - CLIENT/SERVER SYSTEM THE DEPARTMENT

ONLINE BANKING - CLIENT/SERVER SYSTEM THE DEPARTMENT
ONLINE BANKING A CASE STUDY FOR DYNAMIC DATABASE-DRIVEN
CLIENT/SERVER SYSTEM
HONG WANG
A MAJOR REPORT
IN
THE DEPARTMENT
OF
COMPUTER SCIENCE
PRESENTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS
FOR THE DEGREE OF MASTER OF COMPUTER SCIENCE
CONCORDIA UNIVERSITY
MONTREAL, QUEBEC, CANADA
JANUARY 2000
O HONG WANG, 2000
National Library
of Canada
Bibliothèque nationale
du Canada
Acquisitions and
Bibliographie Services
Acquisitions et
secvices bibliographiques
395 Wellington Street
OttawaON KlAON4
395. rue Weilingtm
OnawaON K 1 A W
CaMda
anada
The author has granted a nonexclusive licence allowing the
National Library of Canada to
reproduce, loan, distribute or sel1
copies of this thesis in microfom,
paper or electronic formats.
L'auteur a accordé une licence non
exclusive permettant à la
Bibliothèque nationale du Canada de
reproduire, prêter, distribuer ou
vendre des copies de cette thèse sous
la forme de microfiche/film, de
reproduction sur papier ou sur format
électronique.
The author retains ownership of the
copyright in this thesis. Neither the
thesis nor substantial extracts f?om it
may be printed or otherwise
reproduced without the author's
permission.
L'auteur conserve la propriété du
droit d7auteur qui protège cette thèse.
Ni la thèse ni des extraits substantiels
de celle-ci ne doivent être imprimés
ou autrement reproduits sans son
autorisation.
Abstract
Online Banking A Case Study for Dynamic Database-driven ClienVServer System
Hong Wang
With the arrival of the age of the intemet, the financial service community is provided
with tremendous opportunities and chalienges. Today's providers must consider the
Internet and on-line services besides their traditional non-online services. In this report,
the analysis, design and implementation details of an on-Iine banking appIication have
been described.
Many state-of-the-art technologies were used to build the dynamic
database-driven client/server system.
These techniques include scnpting languages,
cascading style sheets, dynamic HTML, active server pages, active data objects, active
server framework, design-time controls, ODBC and others. The implementation requires
the creation of web site, web pages and links to the database. The database-driven web
application was coded using VBScript, Javascript, Oracle and Microsofi Visual InterDev
6.0. The system fbnctions welf and can perform most of day-to-day banking activities.
iii
Acknowledgements
1 would like to thank my supervisor, Dr. Lixin Tao, for his great advice and help through
the process of doing this project. 1 would like to express my gratitude to Dr. B.C. Desai
for many comments and suggestions on my major report. My family provided support
that ensured the completion of this project.
Contents
.......................................................
1
1 Introduction
1.1 Problem Description.........................................................................................
2
1.2 Tools Used .......................................................................................................... 3
......................................... 5
2 Technology Overview
2.1 Why is Visual InterDev needed? ..................................................................... 5
2.2 Technologies....................................................................................................... 6
2.2.1
2.2.2
2.2.3
2.2.4
Clienr Script...................................................................................................................... 6
Server Script ......................................................................................................................
7
Active Semer Frameuvrk ...................................................................................................7
Scnpring h g u a g e s ....................................................................................................
. 8
3 Systems Requirements and Analysis
................9
3.1 User Characteristics .......................................................................................... 9
3 -2 System Access Privilege Control...............
.......................................... 1 0
.....
3 -3 Functional Requirement Definition .................................................................... 10
.......................................................................... IO
3.3.I
Durabase Requiremenîs................
.....
3-3.2
Semice Requiremenfs.......................................................................................................
12
......................................................... L3
3.4 Non-Functional Requirements.........
.
.
.
3.4.1
3.4.2
Product non-ficnctional requiremms ...............................................................................
Exremai non-funcrional requirements...............................................................................
4 Systems Design
................................
14
15
........17
4.1 Design Rationale................................................................................................
17
4.2 Implementation of Associations ...................
.....
18
4.2.1
4.2.2
...
...................................
Association betwen Subsystems. ......................................................................................
. . Subsystem ..............
Association wrrhrn
.
.
.
.............................................................. 2
4.3 Architecture ......................................................................................................
4.4 System Topology ..........................................................................................
19
0
22
-24
4.5 Module Description........................................................................................... 25
4.5.I
Module in User lnteqace Subsynem................................................................................. 25
4.5.2
MudulesinApplic(~~ionSubsy~fern
...................................................................................
4.5.3
DarobaseSubsystem......................
.
.............................................................................. 29
26
5 Implementation .........................e...........e.........
34
.
5.1 Project Setup....................................................................................................
-34
5.2 Site Diagram ....................................................................................................
34
5.3 Pages Specificatiow............
.
.
.........................................................................
36
5.3.1
..........................................................................................
Home Page ...................... .
.
36
5.3.2
Main Menu for Cunenî Cunoiners...................................................................................
37
5.3.3
Open an Accom for Currenî Cusfomers.........................................................................
4 0
5.3.4
Pay BiiL ....................................................................................................................
5.3.5
Check Balance .................................................................................................................
5.3.6
Transaction Hisro ry .......................................................................................................
5.3.7
ChnngeAddrcss............................................................................................................... 47
5.3.8
Change Passicnord ............................................................................................................
5.3.9
Logoui ................................................................................................................... 5
5.3.10
OpenAccou~forNewCustomers.................................................................................... 50
5.4 Instd procedure for fuiancial institutions......
4
. .....................................
2
44
4 5
48
0
52
5.4.1
Creare ODBC Syaem Dmo Source ...................................................................................
5.4.2
....................53
Run sianfile b d s q l under Oracle SQL*PLUS environment.................. .
.
Copy al1files for the online banking sysrern d e r che home directory of rlu? Wei5 semer ...53
5.4.3
52
6 Conclusion..................................e......................55
Appendix A
.......................................................... 57
User Manual .................................. 58
Appendix B
SQL Start File ............................... 59
Bibliography
65
Appendix C Source Code .........................e.......e
List of Figures
Figure 1 : The processing of an ASP by ASF ......................................................................
8
Figure 2: Subsystems with Event and Infornation Flow.................................................. 22
.................................................................. 24
Figure 3 : System Topology......................
Figure 4: Modular Structure of Event Handler Subsystem ............................................... 27
Figure 5 : Modular Structure of security module...............................................................
27
Figure 6: Customer Service Module ...............................................................................
29
Figure 7: E-R Mode1 .........................................................................................................
30
Figure 8: Site Diagram......................................................................................................
35
Figure 9: Home Page for Online Banking ........................................................................
37
Figure 10: Main Menu for Current Customers ......................
.
.
.
.
..............................
39
Figure 1 1 : Open an Account for Current Customers ........................................................ 41
Figure 12: Pay Bills .....................................................................................................
43
Figure 13: Check Balance .................................................................................................
45
Figure 14: Transaction History .........................................................................................
46
Figure 1 5: Change Address..............................................................................................
48
Figure 16: Change Password ..........................................................................................
49
Figure 17: Open an Account for New Customers .............................................................
52
vii
Chapter 1
1 Introduction
Electronic Commerce (e-commerce) is the buying and selling of goods and services or
It is the integration of
the tramferring money over the Internet or an Intranet.
communications, data management, and secunty capabilities to aliow business
applications to automatically exchange information related to the sale of goods and
services.
This can involve stores or banking activities.
Communications services
support the transfer of information from the onginator to the recipient. Data management
services define the exchange format of the information.
Security mec hanisms
authenticate the source of information, guarantee the integrity of the information
received, prevent disclosure of the information to inappropriate users, and document that
the information was received by the intended users. Standards have k e n established to
make the process easier and more secure.
E-commerce differs from traditional commerce in the way information is exchanged
and processed. TraditionaUy, information has been exchanged t hrough d i r a t, person-to-
person contact or through the use of the telephone or mail systems. In e-commerce.
information is conveyed via a communication network or some other electronic media.
In addition, the information accompanying a typical traditional business transaction is
usuaiiy acted upon by individuals involved in fulfüling the transaction; on the other hand,
with e-commerce, much of the transaction processing is automated. In this way, on-line
banking and e-commerce can provide the transacting parties with immediate. convenient
and secure means by which to transfer fuiancial vdue.
With the arrival of the age of the Internet, few wouid argue that e-commerce is simpIy
the most efficient distribution channel fiom the standpoint of both access and cost. E-
commerce will be the backbone of the new global economy in the next century, a
marketplace that can be entered fiom anywhere, which can give access to an
unimaginably diverse range of products and services.
For the lucky few financiai
institutions who have mastered e-banking, it will enable much more refined, real-time
tailoring of products and services to their customers. It will give them a better ability to
develop and price products, and to track market success. The Intemet is becoming a
familiar, trusted mass medium; and anytime, anywhere electronic banking is a perfect fit
for today's and tornorrow's time-pressured lifestyles. Any bank that is not planning to
link its customer's accounts to its Web site is gambling with its own swival. Online
banking will play a greater part for the consumers of the next generation. As such, online
security
will have to match the risk of more people using open networks for bank
transactions. Internet banking is taking off. The purpose of this project is to explore state
of the art technology to develop a dynamic database-driven Web application package of
e-banking system.
1.1
Problem Description
This online banking system is designed for financial institutions to deal with their basic
banking services. The system allows customers to open accounts, view account balances
and statement details, transfer funds between accounts, pay bills and change personal
information and passwords. Any customer is able to scan interest details, dong with
fiequently requested information for checking, swings, and certificate of deposit
accounts quickly and easily without interacting with bank clerks.
The system is
accessible to the potential and cunent clients with different privilege levels. In addition.
multiple users can access it at the same time, rather than personally standing in h e s for
ATM or banking clerks. The online banking system provides access 24 hours a day to
customers' accounts information. Therefore customers can enjoys the convenience of
financial controis of their accounts through Internet. The customers can also pay the bills
for merchants without writing checks and buying postal stamps.
In addition, the
customers can move fünds between bank accounts in a cost-free wayAccording to standard of software industry, the system described above belongs to
dynamic Web application. ï h i s application is very data-centric. MuItiple databases are
critical to the operation of the online banking. These databases contain aii of the
information about account types and details for each account type, and maintain customer
records, their account information and account transactions. This enormous amount of
information changes very frequently.
Customers c m access this information they need via a set of Web pages. The ability
to obtain current information via a Web browser is a cornpetitive advantage for on-line
banking systern. Customers will appreciate the personalized and interactive interfaces
that they use to make contact with an online banking. This differentiates online banking
from its non-online cornpetitors.
1.2
Tools Used
The o n h e banking system will be developed in Windows NT/98 environment. The
following toois W Ube used for its development:
Microsofi Visual InterDev 6.0, VBScnpt and Javascript: Used for building the web
applications.
Oracle 7.3 or higher: Used as database management to handle data storage,
retrieval, management and recovery of al1 persistent data.
HTML 4.0: Used for designing web pages.
ODBC: Serves as the connectivity between the Web server and the database.
Microsofi Intemet Explorer 4.0 or higher: Serves as a web browser to support user
interface that drives the display and handles al1 graphic layouts.
Microsoft Image Composer 1.5 and Paint Shop Pro 3.12: Used to produce images.
This report is organized as follows: Chapter 2 descnbes the technology used in the
system. Chapter 3 focuses on system requirements and analysis. System designs are
documented in Chapter 4.
Chapter 5 provides the implementation details, and
conclusions are given in Chapter 6.
Chapter 2
2 Technology Overview
2.1
Why is Visual InterDev needed?
The World Wide Web was onginally designed to transfer and publish static contents. A
user obtained a page by first specifying its Uniform Resource Locator (URL) to a
browser. then a Hypertext Transfer Protocol (HTTP) request was sent to the appropriate
server. The H ï T P response was received containing the Hypenext Markup Language
(HTML) source code for that page. Finally the browser interpreted and displayed the
information.
The development of new software technologies soon made it possible to provide more
interactive experiences for users. An HTML fde c m refer to aJava applet or an ActiveX
control. A client cm download and execute the software objects dynarnically on the
machine. It also became possible to initiate execution of a prograrn on a server when a
Web page was requested.
The Common Gateway Interface (CGI) was one of the
techniques used for this purpose. A CG1 prograrn can dynamicaliy generate an HTML
response for the browser.
However, a variety of problerns had arisen from CG1 and other approaches. First, for
each KITP request, a new process had to be initiated, which degraded server
performance. Second, it was very complicated to program Web applications by such
approaches. This is partly because ETITP is a "state-less" protocoL A connection is not
maintained between a client and the server and so each request is independent. Another
issue was that there was no standard way to perfom the tasks that were frequently
necessary for Web applications, such as dynamic generation of content from server
databases.
These problems fostered the need for an integrated development environment.
Microsoft Visual interDev 6.0, a development environment, is designed to solve these
problems. It belongs to a member of the Microsoft Visual Studio family of tools and is
used to create and manage dynamic Web applications quickly. Multiple tools are
included which enable the rapid design, development, testing, deployment, and
maintenance of dynamic Web applications. The major features of Visual InterDev
include site and page design, database integration, database design and management,
debugging, site management, and team development. It is powerful and can be used to
create database-driven Web applications, design the structure and appearance of a site,
build Web pages, debug client and server scripts, maintain the integrity of a site, and
operate in a team environment-
2.2
Technologies
Now we examine the technologies that are necessary to build the dynamic Web
application --- online banking system.
Client Script
A client script is a program that is embedded in a Web page. The code is interpreted by a
browser, which provides interactive expenence for an end user. Client scripts can b e
written in scripting languages such as VBScript, ~ a v a ~ c n ~ t ~
or* JScript.
* ~ * " ~ Each
~~
element on a Web page is represented by an object that may have properties, events, and
methods. This is known as the Dynamic HTML Object Model. Client scnpt can process
events generated by these elements.
Server Script
A server script is a program embedded in a Web page that is located in the server side.
The code is interpreted by server software and it plays a key role in a dynarnic Web
application. The Web page conraining server script is cailed an Active Server Page
(ASP) file. Server script is never sent to a client machine directly; instead, it dynamically
generates HTML and client script that are sent back to a browser. The Active Server
Frarnework (ASF) technology is used to process server script (see Figure 1). Server
scripts can be written in scripting languages such as VBScript, Javascript or JScript.
2.2.3
Active Server Framework
The Active Server Framework (ASF), a key technology to build dynarnic Web
applications, is a software executed in conjunction with a Web server. Its primary role is
to process Active Server Pages (ASP). The f'ramework is available in a web server such
as Microsoft Inremet Information Server (IIS)['~or Personal Web Server (PWS)[~]. 11s or
PWS is software that is used to process HTTP requests.
Figure 1 depicts the processing of an ASP. The sequence begins when a browser
requests a .asp file. That file is read and processed by the Web server. The scripting
engine of the ASF processes any server-side script commands. The response to the
browser is HTML and client-side script When a server-side scnpt is processed, it may
dynamically constniçt HTML ancilor client-side script and direct the ASF to write this to
a browser.
Figure 1: The processing of an ASP by ASF
In the odine banking application, some other software technologies are also used,
Open
including Cascading Style Sheets (css)['-'~~, Dynamic HTML (DHTML)['~~,
Database Connectivity (oDBc)~~',Stmctured Query Language (sQL)~'~,Active Data
Objects ( A D O ) ~and
~ ] Design-Time Convols C TC)[^.^^.
2.2.4 Scripting Languages
Client scripts and server scripts can be written in scripting languages such as VBScript,
JavaScript or JScript. VBScript is a scripting language that was developed by Microsofi
Corp. At this tirne, only Internet Explorer can interpret VBScript client code. Netscape
browsers do not support this language. Only Internet Information Server c m interpret
VBScript server code.
JavaScript is a scripting language that was developed by
Netscape. Both Intemet Explorer and Netscape Communicator support this language.
Jscript is a Microsofi's version of JavaScript.
Chapter 3
3 Systems Requirements and Analysis
3.1
User Characteristics
There are two kinds of users for the online banking system: Potential Customers and
Current Customers. They may be people or companies. They have different needs and
privilege levels to access the system.
Potentiai Customers: The Potential Customers do not have any accounts at
the online banking.
A Potential Custorner can open an account, which is
his/her/its first account at the online banking. M e r opening the first account,
the potential customer became a current customer.
Current Customers: The Current Customers have at least an account at the
online banking. They can:
J
Open additional accounts.
J
Check balances.
J
Query transaction history.
J
Pay bills.
J
Transfer funds between accounts.
J
Check or update personal information.
J
Change password.
3.2
System Access Privilege Control
The potentid customers have the lowest access privilege level. They can o d y look at
some services information and open an account. The current custorners have a relatively
higher access privilege level. A user ID and password are needed whenever a current
customer enters the existing accounts and opens new accounts. Once logged in, a current
customer c m change some information, such as password, address and phone number.
3.3
3.3.1
Functional Requirernent Definition
Data base Requiremeats
In order for on-line banking to work, the following fileddatabases are needed:
Customer File
The customer file contains al1 relevant information about customers: SIN, narne, date of
birth, gender, address, phone nurnber, user ID and password. For an individual, SIN,
name, date of birth and gender can not be changed once submitted by the customer when
opening the first account. For a Company, SIN means its registration numbers; date of
birth means its creation date; the gender is NIA. This file is used to check or update
personal information and change password. It is appended &er a potential customer
opened the first account and updated afier a current customer modified the personal
information and changed password.
Account Type File
The account type file contains a list of ail account types that the online banking provides,
including account type, account description, and interest rate.
The online banking
provides the following account types: checking, savings, investment, deposit, GIC and
students. No customer c m modi* this file.
Customer Account Information File
The customer account information file has a complete list of accounts already opened by
current customers, including account number, open date, balance, SM and account type
for each account. This file is appended after a potential customer or a current customer
opened a new account. It is used to check balances and get al1 account numbers and
types held by a customer.
Paymenf File
The payment file contains al1 information about customers' transactions, including
paying account number, receiving account nurnber, bill number, pay date, due date and
paid amount. If account numbers of both paying and receiving accounts belong to the
sarne customer, it means the customer is transfemng fund. Otherwise, it means the
custorner is paying bills. For either transferring fbnd or paying bills, paying account rnust
belong to the customer. This file is used when customers transfer funds and check
balance, view transaction history, transfer f h d s and pay bills.
Service Requirements
The services include most of day-to-day banking activities by ATM and banking clerks,
except withdrawing cash. The services are descrïbed as foilows:
Open an aecount: Both potential customers and current customers can open a new
account. But thete is some difference. Potential customers need to fd out fonns for
opening an account by providing personal information and account information. Current
customers just fil out f o m s with account information. Theû personal information has
already k e n stored in the database, and there is no need to provide personal information
again. Before submitting a forrn, a customer can modify, met for refilling, and cancel it.
Once a customer submits application for an account. the customer will be inforrned
whether the account has been opened successhilly. The current customers c m update
some persona1 information, such as password, address and phone number.
Pay bills: Customers can select one of their accounts they want to use for bill payment.
This is paying account. Customers can input arnount they want to pay for each bill. The
current date will be displayed in the columns of pay date and due date automatically. The
customer do not need to input the pay date since it is set as the current date and the
customer cm not modify it. For due date, the current date illustrates the input format of
due date. It is also convenient for the customer to modify since it is likely that the
customer just changes day rather than year and month. A customer can input arnount to
be paid, whom a bill should be paid for and bill number. The balance will be reduced
from the paying account. Meanwhile, the balance wiU be increased for the receiving
account.
Transfer funds: A customer can transfer money between his/her/its accounts. Before
submitting transfer requests, the customer needs to select where h d s are transferred
fiom and tu. and transfer amount. The transfer date is automatically displayed as the
current date. The balance will be reduced fiom the transfer-fiom account. Meanwhile,
the balance will be increased for the transfer-to account.
Account summary: A customer can get an account summary for his/her/its al1 accounts,
including account number, account type and balance. The accounts' changes can be
reflected immediately.
Transaction history: A customer can get transaction history for his/her/its al1 accounts.
This reflects al1 transactions perfonned during some last period, for exarnple, last week,
half of month, one rnonth. Transaction history includes transaction date, account number
of transaction-from, account number of transaction-to and transferring amount.
His/her/its accounts' changes can be reflected irnmediately.
Service for changing information: Customers can modiQ some information, such as
address, phone number and password. For password change, the old password should be
provided by the customer.
Non-Functional Requirements
Non-fùnctional requirements defme the system propenies such as its reliability and
constraints. For o n h e banking system, the non-functional requirements can be classified
into two categories: product non-functional requirements and external non-hinctional
requirements.
3.4.1
Product non-functional requirements
3.4.1.1
Cornputer Hardware and SoTtware Requirements
The online banking system should perform ali its functionality efficiently on the
followicg hardware and software environments:
*:*
Server side:
1. Minimum hard disk space: 1 GB
2. Minimum RAM: 64MB
3. An IBM compatible Personal Computer (EC) with CPU of Intel Pentium
200 or higher
4. Operating System: Microsoft Windows NT 4.0 or higher, Microsoft
Windo ws 95/98
5. Database Management System (DBMS): Oracle 7.3 or higher
*:O
Client side:
1. Minimum hard disk space: 500 MB
2. Minimum RAM: 16 MB
3. Any IJ3M compatible Personal Computer (PC) with CPU of Intel Pentium
200 or higher CPU can run the required software efficiently
4. Operating System: Windows 95/98, Windows NT 4.0 or higher
5. Minimum modem connection rate: 14400 bps (bitdper second)
6. Intemet Browser: Microsoft Intemet Explorer 4.0 or higher
3.4.1.2
Performance Requfrement
The online banking system should be a multi-user system, which means multiple
different users c m access the system concurrently and the system can stiil work correctly
and efficiently.
3.4.1.3
Effldency Requirement
In general, the average response time of the system should be less than thirty seconds
However, in the case of a very complicated query that demands a lot of calculations and
joining tables. the maximum respond time is set to five minutes.
3.4.1.4
Usabiüty Requirement
The interfaces of the system should be designed to be clear, simple and east to use and
understand. To increase the user friendliness, on-iine help should be built into the
system.
3.4.1.5
Robustness Requirement
In any natural disasters such as a sudden loss of electricity, the system should not 1 0 ~ ê
any information or data The system should maintain the integnty of the database al1 the
rime.
3.4.1.6
Reüabiüty Requirement
The system should be reliable to the users and its faiiure rate should be less than 0.05%.
3.4.2
External non-functional requirements
3.4.2.1
Safety Requirement
To insure the safety of the system, identifcation facilities must be implemented in order
to have different levels of privileges to access the system. In this way, unauthorized
access to the system can be prevented.
3.4.2.2
Privacy Requirement
The private information of each individuai stored in the system should be secured. Only
D and password are
the owner of data is allowed to access the information. User I
designed to achieve this goaL
Chapter 4
4 Systems Design
4.1
Design Rationale
The following key issues are considered in the design of Online Banking System:
Choice of Architecture
The o n h e banking system has to respond to asynchronous events from the customers
and the database. The customers are allowed to open accounts, check balance, view
transaction history, pay bills. transfer funds, change address and password thus to interact
with the system. The dynamic nature of the various objects such as account. payment,
transaction and balance contribute the system's dynamic characteristics. A combination
of interactive and d ynamic architecture best addresses these requirements.
Scalability
One of the key issues for any online system is its ability to scaie up. The online banking
system should be capable of handling increasing number of users with minimum effect
on the response time. By maintaining a set of active objects on the client machine. the
response time is vastly irnproved as most of the user requests are served locâlly. At the
same time the online banking system could handle more number of connections in a
given tirne. The overheads involved in such client side processing are negligible
compared to the features it provides.
0
Concurrency
The online banking system receives asynchronous events that need to be addressed
simuItaneously. The systern is divided into suitable independent sub-systems t o handle
such concurrent events.
Dynamic Update of Data
Data displayed on the client machine has to be continuously updated as new events are
recorded on the database. The Event Manager that receives the "pushed" event from the
database in turn interacts with the Accowit Controller to uicrementally refresh the
displayed information on the User ?nter$ace.
Consistency of data
One of the key issues in the design is the need to maintain consistency of data between
the Client, Server and the Database. The Account Controller and Event Manager
CO-
ordinate to maintain consistency of data across the system.
Persistence
In an effort to provide fault tolerance to the online banking system all active transactions
are stored and continuously updated in the database.
In case of a semer crash, the
transaction objects with theu latest balance could be retrieved.
4.2
Irnplementation of Associations
We identifed five sub-systems for the o n h e banking system: User interface subsystem.
Event Handler subsystem. Client Banking subsystem. Server Banking subsysiem.
Database subsystem. In this section, we will discuss their associations.
4.2.1
Association between Subsystems
Two-way association between the User ln&#ace subsystem and the Event hanüier
subsystwn : Icon has a pointer to the User Input handler. And the Display Hander
has pointer references to aU views in the User Intetjàce subsystem
Two-way association between the Event itaindler subsystem and the Cüent
Banking subsys&m: It is implemented by providing pointer references in the Account
Handler, Payment Handler and Customer Handler to the Account Controller. The
A ccount Controller, in turn, has a pointer reference to the Display Handler.
Two-way association between the Client Banking subsystem and the Server
Banking subsys&m: This is implemented by providing a pointer reference in the
Client Object Manager to the Server Object Manager. And also the Event Manager
has a pointer reference to the Account Controller.
The above associations support the design rationale of supporthg concurrency. For
examples, when the Client Object M m g e r is requesting new objects from the Server
Object Manager, the Event Manager could be pushing new events to the Accowt
Controller.
Two-way association beîween the Server Banking subsysiem and the Database
subsyslem: this is implemented by providing pointer references in the Account
Manager. Payrnent Munager, Customer Manager and Server Object Manager to the
databuse. The Manager Classes are provided with a pointer reference to the database
to store and to restore information tolfrorn the database. The Database employs
"push" type of event notification to enable instant update of information and
maintain perfect data consistency between the client. server and the database at ail
times. The Database has a pointer reference to the Event Manager to support this.
The above association enables support to the design rationale of dynamic update of
data, object petsistem and partiy to system scalability.
4.2.2
4.2.2.1
Association within Subsystems
Event Handkr Subsystem
Al1 associations in this subsystem are one-way associations. They are:
Between User Input ffanâkèr and the Accounr f f d k
implernented providing a
pointer reference in the User Input Handler to the Account Handler.
Beîween User Input Handier and the Puymen$ Handieor: implemented providing a
pointer reference in the User Input Handier to the fayment Hander.
Between User Input Randkr and the Cuslonier Handkc implemented providing a
pointer reference in the User Input Hander to the Customer Handler.
Between User lnput Handler a d the Display Handler: ùnplemented providing a
pointer reference in the User Input Hander to the Display Hander.
4.2.2.2
Cüent Banking Subsystem
Al1 associations in this subsystem are one-way associations. They are:
Between the Account ControUer and the Cüent Object Manager: by providing a
pointer reference in the Account Controller to the Client Object Manager.
Between the Account ConîroUer and the Active objects: by providing pointer
reference in the Game Conmoller to the Active objects.
4.2.2.3
Server Banking Subsystem
AU associations in this subsystem are one-way relationships. They are implemented:
Between Server Object Manager and Account/Payment/CustornerManager: by
providing pointer reference in the Server Object Manager to the Account Manager.
Payment Manager and Customer Manger.
Between the Event Manager and the Customer Manager: by providing pointer
reference in the Event Manager to the Customer Manager.
Between the Account Manager and the Account: by providing a pointer reference
in the Account Manager to the List of Accounts.
Between the Payment Manager and Payment: by providing a pointer reference in
the Payment Manager to the List of Payments.
Between the Customer Manager: by providing a pointer reference in the Customer
Manager to a List of Cusromers.
4.3
Architecture
Figure 2 illustrates the major cornponents of the oniine banking system architecture. The
key tasks of the online banking system is to handle concurrent events fiom externai users
and maintain consistency between data resident on the client, server, database and the
data displayed to the end user. Note that Open Account View 1 is for the curent
customers and Open Account View 2 is for the potential customers.
Figure 2: Subsystems with Event and Information Flow
The Online Banking System is a web-based client/server software application system.
which will be applied on a distributed computing environment. The technique of layered
architecture can provide one basis for geographic distribution.
From fùnction and
performance viewpoints, specification of fiinctions within distinct layers allows us to
keep similar h c t i o n s closely aligned.
Layering design can improve simplicity,
understandability and maintainability of the system. We identified the following various
sub-systems of the online banking system:
User Interface subsystem
Event Handler subsystem
Client Banking subsystem
Server Banking subsystem
Database subsystem
User Interface subsystem provides a user fkiendly graphical user interface for the
customer to provide and retrieve information.
Event Handler subsystem isolates the User Interjace subsystem fiom the Client Banking
subsysrem. It separates the physical events from the logical events. This enables much
easier debugging during implementation and also during upgrading the system when new
features are added.
Client Banking subsystem interacts with the Server Banking subsystern to fetch various
objects based on user requests. It is also responsible to continuously update the objects
resident on the client machine based on the events received fiom the Event Manager
which is located in the Server Banking s u e s t e m .
Server Banking subsystem serves various clients' requests by fetching objects from the
database.
It receives "pushed" events from the Database and updates the objects
resident on the Client Banking subsystem and Server Banking subsystem. For the client
side update, the Event manager communicates with the Client Banking subsystem. And.
the Event Manager is responsible for the semer side update. The Evenr Manager plays a
key role in maintainhg consistency of data between the Client, the Server and the
Database.
Database subsystem serves objects requested by the semer. It
&O
"pushes" events to
the Evenr Manager as new events are recorded on the database.
System Topology
4.4
11
User Interface
subsystem
11
Event Handler
subsystem
Cliect Banking subsystem
I
Server Banking subsystem
I
Database
Figure 3: System Topology
Figure 3 displays the layers and partitions of the architecture. The Client / Supplier is
denoted by the Client king above the Supplier, whüe a peer-to-peer relationship U
denoted by the subsystems king side-by-side.
The Even f Handler subsystern serves the User hterface subsysrern by notiQing the
Accounf Conb-oller to fetch requested objects. The Event HandZer subsystern uses the
User Interface subsystern to display idormation to the customers. The two sub-systems
serve each other to form a peer-to-peer relationship.
The Event Handier subsystem and Client Banking subsystern have a peer-to-peer
relationship. The User Interface subsystem is isolated fiom the Client Banking subsystern
by the Event Handler subsystem.
The Database subsystern serves the requests made by the Server Banking subsystem.
and pushes events as they are recorded on the database. They have CIient 1 Supplier
relationship.
4.5
Module Description
This section contains the description of each module in subsystems. It explains the
overall function and purpose of that module.
4.5.1 Module in User Interface Subsystem
There is only one module in this subsystem: user interface module.
4.5.3.2
User Interface Module
The User Interface moduie is composed of al1 levels of user interfaces on the client site,
which are the first and the o d y means for the user and the Odine Banking system to
communicate with each other.
Inside this module, not only can al1 interfaces be
developed using the same set of tools and be supported by the same interface
applications, but also are al1 interfaces tightly and dynarnically inter-related with each
other.
Any particular sequential combination of a set of user interfaces a c t d l y
represents the sequence of user inputs and system responses. Outside this module, fkorn a
bird's view of the system, this user interface module as a whole performs the sole
function of accepting user input on one side and passing the user message to every
module in Event Handler subsystem on the other side or vice versa.
4.5.2 Modules in Application Subsystern
In the online banking system, we c m cal1 Event Handier subsystem, Client Banking
subsystem and Server Banking subsystern as Application subsystem. Through user
interface, user triggers an event by clicking mouse or typing input on keyboard and
different modules in Event Handler subsystem, Client Banking subsystem and Server
Banking subsystem can handle and response the different fired events.
The Application subsystem contains two major modules as depicted in Figure 4:
1) The Security Module: This module performs the security check for user access
to the
system information and services. It verifies the user input, and passes the
checked result to the User Interface subsystem by displaying the different pages
according to the different checking result. This module is the bridge between user
interface module and other modules.
2) The Customer Service Module: This module provides services including
opening accounts, checking balances, paying bills, transfemng funds, view
transaction history, change addresses and passwords.
This module provides
services for current customers of Online Banking system with user IDs and
passwords.
Applfcation
Subsystem
Figure 4: Modular Structure of Event Handler Subsystem
The foUowing sections introduce the intemal component organization of these
modules in the Application subsystem.
4.5.2.1
Security Module
Figure 5: Modular Structure of seriurity module
The Security Module is shown in Figure 5. It is to check user whether has die right to get
the services requested.
I f the services a user asks for need security check. the user
interface will show a security check interface, ask user to input user identified ID and
password. The user interface passes the message to Security module. There are two
phases.
In phase 1, the format of ID and password are checked without involving
database. ID shouid consist of seven digits and password shouId consisted of string less
than eight characters.
If input format is correct, m e r check involved data stored
database is implemented in phase II.
If the user passes through the security check
correctly. the security module passes the control to other module corresponding to the
service user requested.
Otherwise, the security module will pass a message to user
interface, and inform that the user has no right to get the services.
1.5.3.4
Customer Service Module
The internai architecture of the customer service module is shown in Figure 6. This
module is composed of two components:
1 . The customer information component. This component processes user requests of
changing telephone nurnber, address and password.
2. The customer banking cornponent. This component is further composed of four sub-
components:
Open accounts
Pay bills
Check balances
Transaction history
Customer
Service
I
Customer
information
component
Change
Address
Banking
component
Change
Open
Check
Accounts
Balances
Bills
Transaction
Histov
Figure 6: Customer Service Module
4.5.3 Database Subsystem
The database subsystem stores al1 the data that the system can provide to its users and the
inter-relationship between these data as shown in ER diagram in Figure 7. Upon user
requests, the Event Handler subsystem may accordingly search database for information,
update data, or Save new data into the chtabase through Client Banking subsystem and
Server Banking subsystem. The Database subsystem is comected to Server Banking
subsystem by ODBC as middle ware. Through the query it can get data fiom or Save data
to database. The query is attached with each cornponent if that component need to access
database.
Entity-Relationship Model
4.5.3.1
The E-R diagram for the database is showed in Figure 7. We can have a relatively clear
view of the entire entity sets and the relationships among them. There are four tables al1
together.
Three basic tables store the general information of the bank and one
relationship table connects the three basic tables.
m
Customers
.
CustAcct
I
m
m
Figure 7: E-R Model
4.5.3.2
Assumptions
The database schema is designed under the following assumptions:
A customer is identified by a SIN. Every customer must supply his/her/its name.
datte of birth? gender, address, and phone number. Once a customer supplied
his/her/its SIN, name and date of birth and gender, the customer can not change
this information himself7herseWitself.
Each customer can have severai different kinds of bank accounts. For each kind
of account types, a customer can not have more than one account nurnber.
Each account is held by one individual. There is no joint account.
No monthly charge for any service.
4.5.3.3
Database Schema
The notations for the database schema are:
*:*
o3
P n m q Keys: in bold and underline.
Foreign Keys: in boId, italic and underline.
Entity Tables:
1
Customers (CustSIN, CustName, CustBirthDate, CustGender, CustAddr,
CustPhone, UserID, CustPasswd)
A customer can not change CustSIN, CustName, CustBirthDate and CustGender.
2
CustAcct (CustAcctNo, OpenDate, Balance, CustSRV,AcctTv~e)
Where Primary key (CustAcctNo),
Foreign key (CustSIN) references Customers (CustSIN),
Foreign key (AcctType) references AccountType (AcctType).
3
AccountType (AectTvne, AccDesp, InterestRate)
Relationship Table:
4
Payment (Pavin~AcctlVo.
Receivin
cctlVo, BillNo, PayDate, DueDate.
PaidArnount)
Where
Primary key (PavinpAcctNo. Receivin~AcctNo.PavDate)
Foreign key (PayingAcctNo) references CustAcct(CustAcctNo),
Foreign key (ReceivingAcctNo) references CustAcct(CustAcctNo),
Check (PayingAcctNo 0ReceivingAcctNo).
4.5.3.4
The referential integrity constrains are taken into account in the following cases:
+
When an attribute is added, modified or deleted fiom an entity, al1 the associated
relations should be updated if necessary. For example, if a new customer is
approved to open an account, once his/her/its personal information is recorded in
the Customers table, this information and ail account information must be added
in the CustAcct table.
+
If a relation R refers to a relation S via a set of attributes which forms the pnmary
key of S and the foreign key of R. Then, for a record in R, the vaiue of the
foreign key must be equal to the primary key of a record in S. For example,
relation CustAcct refers to Customers via the attribute CustSIN that is the
prirnary key of Customers and a foreign key of CustAcct. T ' e n the value of
CustSIN in CustAcct must be equal to the value of CustSIN in Customers.
+
In Payment table, PayingAcctNo can not be equal to ReceivingAcctNo. That
means that transfemng funds at the same account is nùt permitted.
Note:
Represents an entity
Represents a relationship
Represents a m-n relationship
The attributes in itaiic are the primary key.
The word in boid represents an entity.
Chapter 5
5 Implementation
5.1
Project Setup
First, create a Web project for this online banking application. The project name is
OraScottPro. Then, add a data comection ConnectOraScott for the data source narned
OraPcottDSN to the project. The data comection is located in the DataEnvironment of
globahsa of the project OraScottPro.
5.2
Site Diagram
A site diagrarn provides valuable information about the structure of a Web application. It
defuies the navigation relationships among a set of pages and specifies the pages that
appear on the global navigation bar. Figure 8 illustrates the site diagram containing the
pages for the oniîne banking application.
Default-asp
New Customer
Current Customer
Login:
User Name and
Password
MainMenuHome.asp
>
Left Frame
I
Right Frarne
-
i
Framekft. htm
MainMenu.asp
1
OpenAccount/
OpenAccountasp
ChangeAddr/
ChangeAddr-asp
Figure 8: Site Diagram
1
5.3
Pages Specifications
5.3.1
Home Page
File Name: Default.asp
Function:
Welcomes users and lets users browse the home page of the online banking application.
Descri~tion:
Once a user connects to the online banking through the Internet, the home page WU
appear on the screen as s h o w in Figure 9. There are two options, "Open an account" and
"Login" for a new customer and a current customer, respectively. A potential customer
can use the mouse to click on "Open an account". A current customer can use the mouse
to click on "Login"after inputting User D and Password. Then, the system checks if
information given by the user is correct Before login, the user can "Clear" to input again
or exit. After a correct login, the system wiU permit the user to use authorized options.
Otherwise, a re-login is required.
In~ut:
The user uses the mouse to click on one of the possible options on the user's screen, For
current customers, they need to provide their user IDs and passwords.
Oumut:
The system wiü pop up another window on the screen to show the user one
correspondïng Web page. For a new customer, it links the user to the hyperlink Figure
17. For a current customer, it links the user to the hyperlink Figure 10. Or emr
messages are given for incorrect login.
Constraints:
Among two options, the potential customers can access "Open an account" option, The
current custorners, who have user IDs and passwords, c m login to access more options.
Figure 9: Home Page for Oniine Banking
5.3.2
Main Menu for Current Customers
File Names; MainMenuHome.asp, FrarnetRRhtm, MainMenu-asp.
Function:
Lets current customers browse the main menu and selects options for them.
Descri~tion:
M e r a current customer logs in from the home page, the main menu will appezr on the
screen as shown in Figure 10. There are eight options: Home, Own Account, Pav Bills.
Check Balance, Transaction Rlston, Çhmpe Addnq, Change Pas$wor@,Lor Out
A current customer can use the mouse to click on one of options. There are dynamic
advenising bannen for commercial purposes.
I~Du~:
The user uses the mouse to click on one of the possible options on the user's screen at the
right and left sides of the screen,
Oumut:
The system will pop up another window on the screen to show the correspondkg Web
page. The following are some examples of these cases:
Home option: Links the user to this main menu.
Open Account option: Links the user to the hyperlink Figure 11. A form appears for
opening an account.
Pay Bill option: Links the user to the hyperlink Figure 12. The user can pay bills and
transfer hnds.
If both paying account and receiving account belong to the same
customer, the transfer means transferring money from one account to another account for
this customer. Otherwise, the transfer means paying bills and transferring money to other
customers' accounts.
Check Balance option: Links the user to the hyperlink Figure 13. A list of available
balances for all accounts owned by the user appears, including three columns: account
type, account number, current balance.
Transaction Histoy option: L W the user to the hyperiink Figure 14. A List of
transactions appears. including date. description, from. to, transferring arnount for the
selected account in some last statement period.
Change Address option: Links the user to the hyperlink Figure 15. This part permits
the user to update address and phone number.
Change Password option: Links the user to the hyperlink Figure 16. This part
permits the user to change password.
Log Out option: Links the user to the hyperlink Figure 9. This option lets the user to
Iogout €rom the main menu and go back to home page.
Figure 10: Main Menu for Current Customers
Open an Account for Current Customers
5.3.3
I le Na-
OpenAccount/OpenAccount.asp.
Function:
Open an account for c m n t customers.
This Web page gives a form to be fded out by the user as shown in Figure 11. The user
can subrnit the form after faing. During f i g the form, they can reset the fom, or
cancel the application before submission. Before the application c m be submitted, the
online banking rnust check if the user f-
all necessary information. mer subrnitting
the application, confirmation information wiii be shown.
TnDut:
The user fdls the form and subniits it by clicking on "Submit" button.
For some
information, the user can use the mouse to select one from the k t boxes, such as account
type. Current customers do not need to input personal intorrnation again when they open
a new account, since atl personal information has aiready been recorded in the database.
l2URw
If al1 information has ken properly filled out, the system wiil display acknowledge
information to the user.
Otherwise, error messages wiii appear on the screen and
indicates that more information is needed before submission.
Cons-
When an existing customer opens an account, the system checks if the SIN input
by the customer is the same as his/her/its SIN stored in the table Customers. Fust.
check if the SIN input by the customer exists; if yes, then check if the user I
D and
password input by the customer whiie logging in are corresponding to that with
the same SIN in the table Customers.
A current customer cm not open more than one account for the same type. If the
user selects the same account type as that he/she/it has already had, the system
will prompt the user to re-select account type.
a
The minimum deposit required to open account is $50.00.
Fipre 11: Open an Account for Current Customers
Pay Bill
File Na=
PayBillPayBillasp.
Function:
Cument customers use it to pay bills or transfer money from an account to another
account.
This Web page can give two options Tay" and "Reset", There is a list box for the user
to select a paying account which is owned by the user. Below the List box. there is a form
to be füled by the user as shown in Figure 12. For "Par option, the user c m use it to
pay pending biiis after filling out the forrn, including receiving account number, bill
number, pay date. due date and amount. HelShdt can reset paying bills by clicking
"Reset" button. He/ShMt can cancel paying bills by clicking "Back". This Web page
also provides the user to transfer money between two accounts. The user needs to select
transfer funds from which account and transfer funds to which account and inputs the
amount hdshdit wants to transfer. For transferring funds, both the paying account and
the receiving account are owned by the sarne user. The user can subrnit the uansfer after
selecting and inputting al1 information HdShellt also can cancel the transfer before
submission. Before the application can be submitted, the system checks if the user f&
ail needed information. After submitting the uansfer, confîhnation information is given.
InDut=
The user needs to select a paying account and input receiving account number, due date,
bill number and amount. The pay date is displayed as the current date automatically.
Then, press "Paf* button to pay. 'Reset" button to reset or "Back to canceL
OU~DU~:
If ail information has been properly selected and filied out, the system wiU display
acknowledge information to the user. Otherwise, error messages wiii appear on the
screen and indicates that more information is needed before submission.
Constrain&
When a customer pays bill, the system checks if current balance in the chosen
paying account is larger than the paid amount for the biU
*
When a customer pays bills, the customer must pay them one by one.
Figure 12: Pay Bills
43
'
5.3.5
.
I le Name:
Check Balance
C heckBalandCheckBalance.asp
Current customers use it to check the current balances of al1 accounts and generate an
account sumrnary.
Descrintion;
This Web page can give a List of available balances for ail accounts owned by the user as
shown in Figure 13.
Innu
No input is needed.
OutDut:
The system displays Figure 13.
Figure 13: Check Balance
5.3.6
Transaction History
File N a m : TranHistory/TranHistory.asp.
Function:
Current customers use it to view transactions for ail their accounts for a last period.
Descn~tion;
This Web page c m give a list of transactions after the user selects an account from a List
box of accounts and a statement period. if there is any transaction in the period for the
selected account. Othenuise, a message prompts the user that there is no transaction for
the period for this account.
In~ut;
The user press 'Submit" button afier selecting an account from a k t box and a statement
period. Before submission, the user can cancel his request by pressing "Cancei" button
OutDut:
A list of transactions appears as shown in the Figure 14, including date, description, fkorn,
to, amount, if there is any transaction in the period for the selected account. Otherwise,
there is a prompt to indicate that there is no transaction for the given account in the
selected period.
Figure 14: Transaction EUstory
46
Change Address
ChangeAddr/ChangeAddr.asp.
Current custorners change th& addresses and phone nurabers.
This Web page gives the user to modify hidherlits a d d m and phone number. When the
current customers press "Change Address" at the main menu, hisBer1its personal
information has k e n displayed in this page as shown in the Figure 15. Based on the
login information (User ID and password), the system automatically searches the
personal information kom the table Customers the given customer. After the user
modified the address and phone number, hdshdit presses "Modiff' button to change the
old address and phone number. Other personal information, including SIN, name, gender
a d date of birth, is also displayed on this page, but can not be changed. He/SheAt also
can cancel hidhedits modification More submission by click on "Back.
After
submitting the modification, confirmation information is provided.
InDut:
The user needs to input information to be modified, either address or phone number or
both. After input al1 the information. the user subrnits by clicking on "Modify" button.
C>utDut:
Confimation information wiii be given. Otherwise. an error message WU appear on the
screen and indicates that more information is needed before modification.
Figure 15: Change Address
5.3.8
Change Password
File Names; PassWord/Password.htm, Password.asp. Response.asp and Response2.asp.
Function;
Current customers change their passwords.
Descrintion;
This Web page provides the user to change hislhedits password. The user inputs the
current password and a new password. The new password needs to be re-entered for
confmation.
After the user modifïed the password, helshelit presses "Change" button
to fmish the change. He(ShdIt also can met the modification by clicking on %leai'
button and cancel the modification behre submission by click on "Back". After
submitting the modification, confimation information is provided.
InDut:
The user needs to input information to be modified, including current password and new
password. After input aii the information. the user submits by clicking on "Change"
QmUG
Confirmation information WU be given. Otherwise, an error message will appear on the
screen and indicates that more information is needed before modification.
Figure 16: Change Pasmord
49
5.3.9
Log out
Func-:
The curent customer uses it to log out and go back to home page of the online banking
systern.
When the current customers finished ail options they wanted to use, they use "Log Out"
to close their files. After they press "Log Out". the systern wiU close the user's account
information and go back to home page described in Figure 9.
IoDut:
No input is needed.
OutDut:
Home page Figure 9 appears.
5.3.10
Open Account for New Customers
File Name; OpenAccount/OpenAccountNewWaspP
Function;
A potential customer uses it to open an account.
This Web page gives two f o m to be fded out by the user as shown in Figure 17.
including personai information and account information. The user c m submit the forms
after filling. During filling the forms, the user can reset the f o m . HdShefIt also can
cancel the application before submission Before the application c m be submitted, the
online banking must check if the user has frlled a i i necessary information,
Aiter
submitting the application, c o n h a t i o n information wiU be s h o w to the user.
Inaut;
The user €dis two f o m and submits it by ciicking on "Submit" button. For some
information, the user can use the rnouse to select one from the list boxes, (such as
including day and month of date of birth (DO%), gender and account type.
Before
submitting the application, a customer can modify, reset for r e f m g , and cancel it.
Oumut=
If a l l information has been properly fil&
out, the system wiiI display acknowledge
information to the user. Otherwise, e m r messages will appear on the screen and indicate
that more information is needed before submissionConstraints;
When a new customer opens an account, the system checks if the re-entered
password is the same as the password. If yes, the re-entered password is stored;
otherwise, the system requires the customer to input password and re-entered
password again.
When a new customer opens an account, he/she/it is required to choose a User ID
for iater login, m e r the custorner chooses the User ID, the system checks if there
exists the sanie User ID in the table Customers.
corresponds to one customer to increase security.
Thus, each User ID uniquely
Figure 17: Open an Aecount for New Customers
5.4
5.4.1
Install procedure for financial institutions
Create ODBC Systern Data Source
ODBC Data Source Name: OraScottDSN.
Creation Procedure:
1.
On the desktop. double click M y Cornputer.
2. Double click Contml Panel.
3. Double click ODBC-
4.
In ODBC Data Source Administrator window, select System DSN and then click
Add to create a System Date Source.
5. In Create New Data Source window, select the driver Microsoft ODBC for
Oracle to set up a data source. and then click Finish.
6. M e r 5, in Microsoft ODBC for Oracle Setup window, input Data Source N ~ I I E
and then click OK.
as
7. Exit ODBC Data Source Administrator window to go back to desktop-
5.4.2
Rua start file banksql under Oracle SQL*PLUS
environment
Reference to Appendix C for the fde bank.sqL Run the start fde bank-sql to set up
database by creating tables and views. The user name and password to enter Oracle
SQL*PLUS is scott and tiger, respectively.
Execute the command under Oracle
SQL*PLUS environment:
SQL>start bank-sql
5.4.3
Copy ail files for the online banking systern under the home
directory of the Web server
In order to copy al1 fies for the online banking system under the home directory of the
Web server, we need two steps:
1. Create a sub-directory for the online banking system under the home director' of
the web server. Under Windows 95/98 environment, the web server is Personal
Web Server (PWS). Under Windows NT 4.0, the web server is Intemet
Information Server (11s). For example, under Windows 95/98, the home directory
is C:Unetpub\wwwroot.
Create the sub-directory OrPScottPro under the
directory wwwroot.
2. Copy OraScottPro.zip to the directory OraScottm. This .zip fde hcludes aU
the files for the onhe banking system.
directory O t a i S c o m .
Then, unzip OraScottPro-zïp to the
Chapter 6
6 Conclusion
We have designed and implemented an on-line banking web application, which is
database-driven web- based clientkerver system- This report documented in details the
technology and software used in the system, system requirements and analysis, system
design and irnplementations. User manual and source codes were
&O
provided. The
system has been designed to exploit advanced software and modern technology,
including the use of standard browsers, Visual InterDev, Javascript, VBScnpt, web
technology and secure database techniques, which enabled the robustness and security.
The whole system functioned well and performed aii the designed tasks of banking
activities during the demonstration Further extension and upgrade are possible, which
may make the system offer the fuii range of home banking activities through Internet,
including reordering checks and stopping payments, loan service and credit card service.
etc.
The Internet explosion and the possibility of direct digital interaction with large
numbers of home consumers presents tremendous opportunity and challenges to most
financial institutions to serve the bankts convenience-driven markets for banking services
and to reduce the business costs. With the speed with which the Internet is so widely
accepted, on-line banking WUbe a driving force for bankts business. It gives the user the
opportunity to bank at home, at the office, or anywhere fkom a cornputer.
appro ached the 2 1st century, on-line banking is getting more popular everyda y.
As we
There are two major developments regarding the Internet that wiil have a major
impact on the future of online banking services. The fxst is high speed. broadband
access, and the second is the subsequent convergence of the persona1 cornputer and
television set. Finally, wireless cable and digital sateUite delivery complement these new
media which wiU revolutionize online services. The bottom line of high speed. broad
bandwidth delivery is that the banks now have hil multimedia capabilities providing for
video, telephony, and sound on the web sites, and the convergence of cornputers and
television presents another major opportunity in the online delivery of fmancial services.
Home banking is truly the ultimate in convenience for the consumers.
Bibliography
[ I I Thomas A. Powell, HT.ML: The Complete Reference, McGraw-Hill, 1999.
[3] Steven Holner, J d c r i p t Complete, McGraw-Hill, 1 998.
[3] George Koch and Kevin Loney, Oracle 8: The Complete Reference, McGraw-Hill,
1997.
[4 J Aiex Homer, Dave Sussrnan and Brian Francis, Professional Active Semer Pages 3.0.
Wrox press, 1999.
[ 5 ] Vivian Neou, HTML 3.2 CD with JavaScripi for Windows95, Prentice Hall PTR,
1997.
[ 6 ] Murray, William H., JavaScript and HTML 4. O User's Resource, Upper Saddle River,
1999.
[7] Jan
L. Harrington, SQL Clearlv Explained, AP Professional, 1998.
[8] Don Benage, h i n g Microsofr Visual Studio, Que Corporation, 1998.
[9] Gary Comell, Learn Microsofr Visual Basic scripting edition now, Microsofi Press.
1998.
[ 1O] Eric Ladd, Using HTML 4.O, Java I. I , and Javascript 1.2, Que Corporation, 1998.
[ I l ] William G. Page, Using Oracle 8, Que Corporation, 1998.
[ 121 J. Cranford Teague, DHTML for the World Wide Web, Peachpit Press, 1998.
Appendix A
User Manual
To start the online banking, a user can access the following web site by Microsoft
Internet Explorer browser version 4.0 or higher:
h t @ : / N eb Server IP AddredOraScottPrn/DefaultOas~,
here Web Server IP Address is
dynamic depending on a specific fiancial institution's Web Server IP Address.
After visiting the above web site, customers c m use the online banking services as
foIlows:
1. For the current customers, they need to input theû User IDs and Passwords to
login,
2. For the new custorners, they do not have User IDs and Passwords before they
open their f ~ s accounts
t
on the o r n e banking. They can click Ooen an Account
on the home page to open an account,
3. For the current custorners, after login, they can access their accounts. They can:
-:-open accounts by clicking on "Open Account";
4- pay bills or transfer funds by clicking on "Pay Bill";
-3 check balances and get account summary by clicking on "Check Balance";
O view transactions happened in the past statement period by clicking
"Transaction History" ;
9 change addresses and phone numbers by clicking on "Change Address";
9 change passwords by clicking on "Change Password";
*:' go back io home page by clicking on "Log Out".
on
Appendix B
SQL Start File
This appendix iists the SQL s m file for the onlùie banking system. The start frle
banksql is used for quick and simple reporthg on aii of the tables and views in the
database. Its purpose is to illustrate ail column definitions for each table and view in the
database. including attribute name, type, size. etc. Before creating tables and views, we
drop them frrst and then create new ones each time when the system is setup. The start
füe also inctudes some initial data in each table for iliustration purpose.
Start file name: banlcsql;
Contents are iïsted as foilows:
rem file name: bank.sq1
drop table Payment;
drop table CustAcct;
drop table AccountType;
drop table Customers;
l*
rem
*4******
table Customers+'**l**
*/
create table Customers (
CustSIN
number(9).
CustName
varchar2(24),
CustGender
char(4).
CustBirthDate date,
CustAddr
varchar2(6û),
******* *
CustPhone
varc har2(12),
UserlD
varchar2(12),
CustPasswd
varchar2(12).
primary key (CustSIN));
insert into Customers values
1100000001, 'Jone Smith', 'M'. To-cim('12-May- 1946'. 'DD-MON-WYY'),
'123 High Steet West', '514-344398lt,'Jones','er2');
insert into Customers values
(100000002. 'BartSarjeant',U1.To-date('22-May- 1966'. 'DD-MON-YYYY'),
'345 G u y Steet West'. '5 14-3556982; 'bsar1.'pe94');
insert into Customers values
(100000003. 'Elbert Taibot', 34'.To-date('l2-Aug- 1966; PD-MON- YYYY').
'2432 Young Steet East'. '416-5674211'. 'd$e3','dfe6');
insert into Customers values
(100000004, 'PM~
Canada', 'AN: To-date('l2-Aug- 1966'. DD-MON-YYYY').
'321 Young Steet West', '416-56742 11'. 'sprint','dkr');
insert into Customers values
(100000005.'Bill Canada', 'AN', To-date(' 12-Aug- 1966, PD-MON-YYYY '),
'321 Gay West'. '5 14-33442 1 1'. 'bali'.'de34');
insert into Customers values
(100000006. 'Hydro Quebec', 'AN', To-date('l2-Aug- 1966: 'DD-MON-YYYY'),
'321 St. C a t h e ~ ''5, 14-5674211'. 'Hydro1,'kd4');
/*
rem * * f * f *+++f table AccountType
**4+**4****
*es*****
*/
create table AccountType(
Acc tType
varc har2( 16),
AccDesp
varchar2(50),
InterestRate
number(4,2),
primary key
(AcctType));
insert into AccountType values
('Checking', 'Checking is a uansacton account.', 0.12);
insert into AccountType values
('Savings'. 'Savings is for accumulating savings.', 2.15);
insert into AccountType values
('GIC', 'GIC is Guaranteed Investment Certificates.',
4.1 1);
insert into AccountType values
('Students', 'Students account is for students.', 0.15);
insert into AccountType values
('Deposit', 'Deposit makes money grow.', 2.10);
insert into AccountType values
('Investment', 'lnvestment is for the maximum return.', 4.19);
/*
rem * * * * * S * * *
table CustAcct ************ *****
*/
create table CustAcct(
CustAcctNo
number( lO),
CustSIN
number(9),
Acc[Type
varchar2(16),
OpenDate
date,
Balance
number(l0,2),
primary key (CustAcctNo),
foreign key (CustSIN) references Customers,
foreign key (AcctType) references AccountType);
insert into CustAcct values
( 1ûûûû1, lûûûûûûû 1, 'Checking',
To-date('O2-May- 1950'. 'DD-MON-=?.
3200.32);
insert hto CustAcct values
(100002.
100000002,
'Checking',
'DD-MON-
'Savings',
'DD-MON-
YYYY'),4567.83);
insen into CustAcct vaIues
(100003,
100000004,
YYYY'),
100.00);
insert into CustAcct values
( 100004.
100000005.
'Savings'.
To-date('09-Dec- 195 1',
'DD-MON-
'Savings',
To-date('l7- Jun-196 1',
DD-MON-
YYYY'),200.00);
insert into CustAcct values
(105,
100000006,
YYYY'),300.00);
/*
rem ********** table Payment
f
******************
*/
create table Payment(
BillNo
varchar2( 10).
PayingAcctNo
number( lO),
ReceivingAcctNo number(l0).
PayDate
date,
DueDate
date,
PaidAmount
number(10,2),
prirnary key (PayingAcctNo, ReceivingAcctNo. PayDate).
foreign key (PayingAcctNo) references CustAcct(CustAccN o ) ,
foreign key (ReceivingAcctNo) references CustAcct(CustAcctNo).
check (PayingAcctNo O ReceivingAcctNo));
insen into Payment values
(10234.
100001.
100003.
To-date('l2-May- 1999:
'DD-MON-YWY').
To-date('l2-May- 1999'. 'DD-MON-YYYY'),lSO.65);
insert into Payment values
(13434,
lûûûûI,
100004,
To-date('16-Dec- 1999',
'DD-MON-YYYY'),
To-date('l8-Dec- 1999', DD-MON-YYYY'),250.85);
insert into Payment values
f 13224.
100002,
100005,
To-date('l6-Dec- 1999,
To-date('l8-Dec- 1999', 'DD-MON-YYYY'),350,85);
/*
rem
View &om h
e
r
~
*/
/*
rem ************ SortedAcCtType****************
*/
create or replace view SortedAcctType as
select AcctType from AccountType group by AcctType;
select * from SonedAcctType;
'DD-MON-YYYY'),
Appendix C
Source Code
Some selected source code for the application is presented in this part.
File Name: Defaultas~
ditmb
diead>
acript language="JavaScriptN>
function TodayDateO {
now = new Date();
monthstring = new ObjectQ;
rnonthString[O]="January";
monthString[l]="Febmq";
monthString[2]="MarchW;
monthString[3]="Aprilw;
monthString[4]="May";
monthString[S]="June";
monthString[6]=" July";
monthSuing[7]="August";
;
monthString[8]="SeptemberW
monthString[9]="October";
monthString[lO]="November";
monthString[l 1]="Decembern;
document. writeh(monthString[now.getMont]
+ " " + now.getDate0 + "," +
now.getYear())
1
dscript>
elink rel="stylesheet"type="text/javascriptWhref="OnlineBank.js">
ciink rel="stylesheet" type="text/cssW
href="OnLineBankcut'>
dhead>
<body>
ecenterximg SRC="images/FLOWER3.gif'WIDTH=96" HEIGHT="74">
<img src-" imageilogon.gif" WIDTH="524"HEIGHT="75">
cimg SRC="imagesmOWER3.giV'WIDTH="96"HEIGHT="74">
&enter>
<p align="center">
d o m action="MainMenuHome.asp" method="post"id="f o m 1 name-" form 1" >
"
<div align="centerW>
<table border="OW
cellPadding="1" ceiiSpacing="5"width="559b"z
ct-d
align="nght">
cstrongxfont FACE="Verdana Ariai, Helvetica" SIZE="3"
color="crirnson">NewCustorner? c/strongxlfont>
dtd>
<id> <a bref=".JOraScottPro/OpenAccount/OpenAccountNew.asp">
cstrong><font FACE="Verdana, Aria Helvetica" SIZE="3"
coIor="mediumblue~l~~U~Open
an Account
</U>dfontx/strong>da>
dtd>
<tr><td>&nbsp;&nbsp;</td>d~>
<tn
<td align="rightW>
dont FACkWVerdana,Ariai, HeIveticaWSIZE="3" color="darkred"xb>
Custorner Login:dfont> </B>
<hd>
dtr>
ctn
d d align="rightW>
dont FACE="Verdana, Arial, Helvetica" SIZE="2"color="rnediumblue">
<b>User ID:c/font></Bx/td>
<td>
chput id="text1" name="Username"></tdWv>
<V>
<td align="right"xfont FACE="Verdana, Arial, Helvetica" SIZE="2"
coIor="rnediumblue"> cb> Password:dfont></STRONG></B></td>
d d > <input id="password1" name="passwordWtype-"password">dtd)</tr>
dtable>
ddin
cdiv align="centerW>
<table border="On ceIiPaddingsn1" cellSpacing=" 1" height="36" style="HEIGHT:
36px; WtDTH: 190px" width="29.5%">
<tr>
c t d x i n p u t id="submit 1" name="submit 1 " style="HEIGHT: 28px;
WIDTH: 75px" type="submitWvalue="Login"></td>
<td>Snput id="reset1" name="reset1" style="HEIGHT: 28px;
WIDTH: 75px" type="resetNvalue="C1earnxltd>
dtn
dtable>
</div>
dform>
<center>dont face="Arial"size="2"color="darkblue">
<script Ianguage="Javascript ">
TodayDateO;
dscrip t>
<a bref="mailto: hwang @cs.concordia,~a~~>
<img border="OWheight=lm32"src="images/e-mailgr width="92"></a>dfonb
dcenten
ccentencfont face="Arial" size='I2" color="darkblue">&nbsp;
< h g SRC="irnageslCopyright.gif'WIDTH="250 HEIGHT="3OW>
dcentençlfonu
' validate the
input data
UserID = Trim(Request.Form("Usemame'~)
Passwd = Trim(Request.Forrn("password"))
If UserID-"" or Passwd="" then
str = server.URLEncode("Pleaseinput your User ID and Password.'3
Response.Redirect("Response.asp?message= & s?r)
End if
Set connection = server.CreateObject(~lADODB.connection")
connection.Open "OraScottDSN","~cott~~,~Liger"
' sql
sqL="SELECT * " Sr "FROM Customers " & "WHERE UserID = "&UserlD&"' and " & "CustPasswd ="&Passwd&"' "
Set recordset = connection.Execute(sq 1)
'check if the input sid exists
if recordset.EOF then
str
-
server.URLEncode("Your User ID or/and Password are incorrect! Try it
again.")
Response.Redirect('~onse.asp?message=& str)
end if
<HTML>
<HEAD>
<TITLE> OnLine Banking (/TITLE>
</HEAD>
<FRAMESET COLS=" 136,"" BORDER='QO"FRAMESPACING="O"
FRAMEBoRDER='fof5
&RAME SRC="FrameLeft.htm" NAME="LeftFmmel' NORESIZE
SCROLLING="no" MARGINWIDTH="O" MARGINHJ3GHT=110'5
<FRAME SRC="MainMenu.asp" NAME='n/lainFrame" NORESIZE
SCROLLI NG="auto" MARGINW IDTH=="Ot5
dFRAMESET>
dHTML>
File Name: FrameLefLhtm
<htrnl>
<head>
ditle> OnLine Banking dtitle>
cmeta NAME="genentor" CONTENT="OnLine Banking's
<script language="JavaScript'S
function TodayDateO (
now = new Date();
monthstring = new ObjectO;
monthString[O]="January";
monthstring[ 1 ]="Februaryt';
monthS tring[2]="March";
monthS tring[3 j-"Apri 1";
monthString[4]="May";
monthString[S ]="June";
monthString[6]="July";
monthS tring[7]="August";
monthS tring[B]="Septernber";
monthS trin,o[9)="October";
monthStrin,a[ 1 O]='November";
monthstring[ 1 1 ]="DecemberU;
document. writeln(monthString[now.getMonth()]
+ " '' + now.getDate() + ", " +
now.gctYear())
>
var sid="mundanial';
function dynamic-image-on(imgName) {
if (version
=-
Activeimage
"3") {
= evaI(imgName
+ "-active.srcl');
document [imgNaine] .src = ActiveImage;
>
1
function dynamic-image-off(imgName) (
if (version
-
"3") {
Defau lt Image = eval(imgName
document [imgName] .src
1
1
whiIe(sid!="rnundania"){);
-
+ 'l-defauIt.src'');
Default Image;
whichbrowser
-
navigator.appName; //identi fy browser
Ver = parseInt(navigator.appVersion);
if (whichbrowser = "Netscape" && Ver >- 3 11 whichbrowser
Intemet Explorer" && Ver > 3) version = "3";
else version = "2";
if (version
-
"3") ( // if 3.0,load images
//image to show when not highlighted
i m c 1-default
= new
Image();
img_ 1 -default.src = "Images/HOME.gif ';
img2-default = new Image();
img_2-default.src
img3-default
=
=
"images/OPEN.gif';
new Image();
i mg-3-defau ksrc = "images/Pay.gi f ';
img-4-default
irng-4-default-src
= new
Image();
= "irnagesCheck-gif ';
img-5-default
= new
Image();
im~5-default.src = "imageflran 1 .gif ';
-
img_6~iefault new Image();
img-6-default.src
img-7-default
= "images/Addr.gif
= new
img7-defauksrc
i mg-8-defaii l t
Image();
= "images/Pass.gif";
= new
img8-default.src
';
Image();
= "images/ChanUser.gif
//image to show when highlighted
img_ 1-active
= new
i m c l -active.src
img-2-active
-
-
Image();
"images/HomeON.gif!";
new Image();
';
-
'Microsofi
-
img-2-active.src
"images/OpenOn.gif";
i m ~ 3 a c t i v e= new Image();
img_3active.src
img-4-active
-
irng4-activesc
img_Sactive
= "images/CheckOn.giP';
= new
=
-
Image();
-
Image();
"images/AddrOn.gif ';
= new
img7-active-src
imgJ3active
new Image();
= "images/TranOn.gif';
img-6-activesrc
img-7-active
"images/PayOn.gif ';
= new
img-5-active-src
img-6-active
=
Image();
"images/PassOn.gif ';
new Image();
imgJ3active.src = "images/ChanUserOn.giPr;
fiinction mouseHover(state)
C
var row = window.event.srcE~ement;
var colorchange
= ((state = "over") ?
row,style.backgroündColor= "red";
}
"#ffffOO" : "'3;
/* mouseOver is called when the mouse move over the catalog
table. The row that the mouse is over gets highlighted.
*/
function mouseOver() {
var element = window.event.srcElement;
while (element.tagName != 'TRI?
element = elernent.parentElement;
e1ement.style. backgroundColor = "yellow";
>
/* mouseOver is called when the mouse move off a row in the catalog
table. The hiliglited row retured to normal.
*/
function mouseout() {
var element
= window.event.srcElement;
while (element-tagName !- 'TRI')
element = e1ement.parentElement;
element,style.backgroundColor = "white";)
dscriph
clink rel="stylesheet" type-"text/cssU href-"Frarneleft.css'5
dhead>
<body>
<centep
c i m SRC="images/CART-Anim.gifl
~
WIDTH=" 1 30" HEIGHT=I1100">
dcenten
e t r x t d height=45 align="centern bgcolor='1ightgreenU><fontsize-5
color="darkredl'><b> Services
dtd>
dtr>
< t ~ - < t b < bref=".
a
JOraScottPro/MainMenu.asp"
onmouseout="dynamic~image~off(lmg_
t 7''
onmouseover=lldy~amic_image~on('ïmg_l
')"target=11MainFrame15
cimg alt="Home" border="O" name="img_l " src="images/HOME.gifl
WIDTH=" 137" HEIGHT="32'W>da>
dtd>dtr>
ctr><td>ca bref=".JOraScottPro/OpenAccount~OpenAccount.aspll
onmouseout="dynamic~image~off('img_2~"
onmouseover="dynarnic~image~on('img_2
3" target="MainFrame'5
cimg alt="Open Account" border="0" name="irng_Zu src="images/OPEN.gif"
WIDTH="137" HEIGHT="32">da>
dtd>dtn
c t r x t d > < a bref=".JOraScottPro/PayBi ll/PayBill.aspl'
onrnouseout="dynamic~image~off(img_33"
onmouseover="dynamic~image~on('img_3
3" target-"MainFrame5
cimg alt-I'Pay Bill" border="0" name="img_3" src-"irnages/Pay.gif"
WIDTH-"137" HEIGHT="32'5>da>
dtd></tn
<t r x t c l x a href="../OraScottPro/CheckBalance/CheckBaIance.aspl'
onrnoi1seout=~~dynamic~irnage~off('img_4~~~
onmouseover="dynamic~image~0n('img_4~~~
target="MainFrame15
<img al t='%heck balance" border-"O"
name="img_4" src="i mages/Check.g if'
WIDTH=" 137" HEIGHT="32'%a>
dtd>dtr>
e t r x t d x a hrcf-". JOraScottProlTnn History/TranHistory .asp1'
onmouseout="dynamic~image~off(imgt5
3"
onmoi~seover="dynamic~image~on(5mg_5
7" target='MainFrame'5
cimg alt='Transaction History" border="0" narne="img-5"
src="images/Trcm1 .gifl WIDTH-" 137" HEIGHT="32"></a>
dtd>dtn
<tn<td>ca href=ll.JOraScottPro/ChangeAddr/ChangeAddr.asp"
onmouseout="dynamic~image~off(im~6')"
onmouseover=11dynami~Cimageeon('img_6
3" target="MainFrame'5
cimg alt="Change Address" border="OMname="irng_6" src="images/Addr.gif'
WIDTH=" 137" HEIGHT="32'5>da>
dtd>dtn
ctn<td><a hret'=l1.JOraScottProlPassWord/Password.htm"
onmouseout="dynamic~image~0ff('img_7')~~
onmouseover="dynamic~image~on('img_7')"target="MainFrarneq5
<img ait="Change Password" border="Ot1name="img_7" src="irnages/Pass.gif'
WIDTH=" 137" H E I G H T = " ~ ~ " > ~ D
dtd>dtr>
<trxtd><a href-". JOraScottPro/Defauit.asp"
onmouseout="dynamic~image~off('irng_8
3"
onmouseover="dynam~mage~on('img8
3" target="_top15
4 m g alt="log Out" border-"0" name=="img_8"src-"images/ChanUscr.gif'
W IDTH-" 1 37" HEIGHT-"32'5>da>
</td></ti>
<tr><td height=35 align="center"bgcolor="lightgreenl">tfontsize-3
color="darkred"xb>
<script lang~rige='~JavaScript~5
TodayDate();
dscript>c/fonb
dtd>dtn
dtable>
dbodp
dhtmb
File Name: ~MainMenuasp
ehtrnb
<head>
<titie>OnLine banking</title>
elink rei="stylesheet"type=l"text/css"href="OnLineBank.css'5
dhead>
<body>
<centet>
<%Set ad = Server.CreateObject("MSWC.AdRotator")%>
CTO-ad.GetAdvertisement("RandomAd.txtl') %>
<br,
d o n t FACE="Verdana, Anal, Helvetica" SIZE="I '5
c a HREF=''javascript:1ocation.href=MainMenu.asp*~Refresh AD</a>
dfont>dcenter>
<centen
<font FACE-"Verdana, Anal. Helvetica" S IZE-" 1 '5Brnbsp;
dfontxkenten
cp nlign="ccnter15<stronrexfont FACE=Verdana, Arial. Helvetica" SIZE="4"
color="mediumblue">
Select One Service:
<tr>
c t d x a bref=". JOraScottPro/MainMenu.asp"target="MainFme'5
cimg SRC="images/H-Home.gifl border="O" WIDTH-"45"
WEIGHT="44">da>dtd>
c t d x a bref=".JOraScottPro/MainMenu.aspl'
target="MainFrame">Homeda>
<font FACE="Verdana, Arial, Helvetica" SLZE-"1 " x b >
<bnGo back main
menu</b>c/font>
dtd>
etba href="../OraScottPro/OpenAccount~OpenAccount.aspr1
targe t=' 'MainFrame ">
4 m g SRC="images/H-fumiture-gif" border="O"WIDTH="45"
HEIGHT=''44'5</a>dtd>
ctd><a href="../OnScottPro/OpenAccount/OpenAccount.asp1'
target="MainFrarne">OpenAccount</a>
<font FACE="Verdana, Arial, Helvetica" SIZE-" 1 " x b >
<br>Open a new account for the customerdb>dfont>
dtd>
cimg SRC="images/H-hardware-gir' border="O" WIDTH="45"
HEIGHT="44'5d~î>dtd>
<t&ca href="../OraScottPro/PayBilI/PayBill.asp1target="MainFrame'5
Pay BiIlda>
cfont FACEzHVerdana,Arial, Helvetica" SIZE="l "><b>
<bhPay bill using your
own accountsdb>dfont>dtd>
c t d x a href=ll.JOraScottPro/CheckBalance/CheckBalance.aspl'
target="MainFrarne">
4 m g SRC="images/H-motion.gir'border="0" W IDTH-"45"
HEIGHT="44'5da>dtd>
ct-a
href=".JOr~ScottPro/CheckBala.n~dCheckBaIance.asp~~
target="MainFrame"> Check B a l a n c e d e
<font FACE="Verdana, Arial, Hehetica" SIZE="l "><b>
<br>Check al1 your accounts balance, account types and
nu m bersdb-fon
t>dtd>
dtr>
<tr>
ctd><a bref=". JOnScottProlTranHistorylTranHistory.aspl'
target="MainFrame15
4rng SRC="images/H-textbooks.giflborder="OU WIDTH-"45"
HEIG HT="44">da></td>
e t d x a bref=". JOraScottProlT~nHistory/TranHistory.asp"
target="MainFrame1'>Transaction Historyda>
cfont FACE="Verdana, Arial, Helvetica" SIZE="1 " x b >
<br>Look at your transaction history up to 1 rnonthdb>dfont>
dtd>
c t d x a href-"../OraSc~ttPro/ChangeAddr/ChangeAddr.asp'~
target="MainFrarne">
< h g SRC=="images/H_tutors.gif'
border="0" WIDTH="45"
HE IG HT="44">da>c/td>
a d x a bref="- JOraScottPro/ChangeAddr/ChangeAddr.asp"
target="MainFnme1">
Change Addressda>
<font FACE="Verdana, Arial, Helvetica" SIZE-" 1 "><b>
<bnChange your address. telephone number by yourselfdb>dfont>
dtd>dtr>
<tr>
ctd><a href-". JOraScottPro/PassWord/Password.htm''
target="MainFrame">
cimg SRC="images/H-vehicles.giP' border=l10"WIDTH="45"
HEIGHT="44">da> dtd>
<td><a href=I1../OraScottPro/PassWord/Password.html'
target="MainFramelXhange P a s s W o r d d ~
cfont FACE=lVVerdana,Axial, Helvetica" SIZE-" 1 '5cb>
<br>Change your login password for securitydb)</font>
dtd>
c t d x a href=".JOmScottPro/Home.htm"target="-top's
tirng SRC="imapes/~patties.gif'border="ûO"
WIDTH="45"
HE IG HT="44">da>d td>
<td>ca bref=". JOraScottProlDefauIt.asp" target=I1-top's
Log Outda>
cfont FACE="Verdana, AriaI, Helvetica" SIZE=" 1 ' k b >
<br>Log out and back to home pagec/b>c/font>
dtd>
dtn
File Name: 0 ~ e n A c c o u n t . a ~ ~
<%@ Language-VBScript %>
<% ' VI 6.0 Scripting Object Mode1 Enabled %>
<!-#inc lude file-". JScriptLi brary/pm.asp"-->
<% if StartPageProcessing() Then Response.End() %>
<FORM name=thisForm METHOD=post>
chtrnb
<head>
<meta NAME="GENERATOR" C~ntent=~'Microsoft
Visual Studio 6.0'5
<SCRIPT ID=serverEventHandlersVBS LANGUAGE-vbscript RUNAT=Server>
Sub bntSave-onclick()
UserID =Session('WserlD")
Passwd =Session("Passwd")
Accttype = Trim(lstAcctType.getValue(lstAcctType.seIected1ndex))
OpenDate
= Trim(bctOpenDate.value)
Balance = Trim(txtBalance.value)
Balan = CDbl(Ba1ance)
Custsin= FindCustsin(UseriD, Passwd)
accno=txtAcctNo.value
If Balance = "" then
txtMsg.value-'The open balance is required."
exit sub
Etseif Balane50 then
txtMsg.value-"Your minimum deposit is less than $50."
exit sub
Elseif CheckAcctType(Custsin, Accttype)o"" then
t~tMsg.value=~You
have had "&AcctType&" account, please select another
type."
exit sub
End if
'after checking the balance is not empty and then change it to be Double Precision.
Set connection=Server.CreateObject(11ADODB.Connection'1)
connection.Open "OraSc~ttDSN","scott~~,'~tiger"
sqINewAccount = "INSERT INTO CustAcct (CustAcctNo, CustSIN, AcctType,
OpenDate, Balance) " & VALUES ("&accno&", "&Custsin&", "&Accttype&"', " & -
'Tobate("'&OpenDate&"', MM/DD/YYY Y '), "&Balan&")"
Set rstOpenAccount=connection.Execute(sqlNewAccount)
connection.close
txtP~sg.value="Yournew account has k e n opened successfully. "
End Sub
$et CustSIN of the existing customer from the table Customers.
Function FindCustsin(ByVa1 userid, passwd)
Set connectionC=Server.CreateObject(11ADODBBConnection~~
connectionC.Open "OraScottDSN", "Scott", 'Tiger"
sql-CSIN="SELECT CustSIN FROM Customers " & " WHERE UserlD ="&userid&"'and " &"
CustPasswd ="'&passwd&""
Set recordsetC=connectionC.Execute(sql~CS IN)
FindCustsin=CLng(Trirn(rec~rdsetC(~~CustSiN")))
connectionC.close
End function
'check if this customer has had this kind of account types
funct ion CheckAcctType(Custsin, Accttype)
Set connection=Server.CreateObject('1ADODB.Connection'~
connection-Open "OraScottDSN","~cott~~,I~tiger"
accttypesql="sclect AcctType from CustAcct " & "where (CustSUV="&Custsin&" and Ac~tType=*'&Accttype&~~')"
Set recacctt ype=connection.Execute(accttypesq1)
if recaccttype-EOFthen
CheckAcctType='"'
el se
CheckAcctType=recaccttype("AcctTypel')
end if
connection.close
end function
Function CreateAccNo()
'create a CustAccNo
Set connection=Server.Cre~teObject('~ADODB.Connection~~
connection.Open l'OraScottDSN1',llscott'l,"tiger"
accnosql="select CustAcctNo from CustAcct where CustAcctNo>-all("&"select A-CustAcctNo from CustAcct A)"
Set maxaccno = connection. Execute(accnosq1)
CreateAccNo=clng(trim(maxaccno("CustAcctNo")))+
connection.close
End Function
Sub ChangeDate-onclick()
orgdate=Date()
dd=CStr(DatePart("d",orgdate))
mm=CStr(DatePart("m",orgdate))
yy=CStr(DatePart("yyW",orgdate))
dd 1 =Crnt(dd)
mm 1 =CInt(mrn)
if d d l >OAnd dd1 < = 9 then
dd="Ofl+dd
elseif mm 1 > O And mm 1 <= 9 then
mm="O"+rnrn
end if
End Siib
Sub thisPage-onshow()
Cal 1 ChangeDate-oncl ick()
i
End Sub
<table Align="centerl'wi~ith=~~75%'5
<tnttd><STRONG><FONT color-brown face='"'>Notes:
dFONT>(/STRONG>
dtd>dt r>
<tr><td><FONT color=royalblue face=""><STRONG>1 . You can not open the account
types you have had.dFONT> c/STRONG>(/FONT>
dtd>dtr>
<tr><td>tFOhT color=royalbIueface='"'><STRONG>2. The minimum deposit
required to open account is $50.00. dSTRONG>(/FONT>
dtd>dtn
dtable>
<P align=center>cFONT color-mediumslateblue
face='"'>~STRONG>Account
No.dSTRONG>(/FONT>(/P>(/TD>
<TD style="WTDTH: 15px" width=l 5>c/TD>
<TD bgColor=whea&
al ign=center><STRONGxFONT
color=mediumslateblue face="">Account ypedFONT>dSTRONG>dP>dTD>
cTD style-! WIDTH: 15px" width- 1 S>c/TD>c/TR>
ctr><td bgColor=wheat,
c=Pal ign=center>cFONT color=mediurnslateblue
face=""><STRONG>OpendFONT><FONT color-mediumslateblue
face="5Date</FONT> (/STRONG> d P >
ctd style='WIDTH: 15px" width- 1 S> dtd>
ctd bgColor=wheat>
cdiv aiign="center"><FONT color=mediumslateblue
face="'kSTRONG>Open DepositclSTRONG>4FONT>ddiv>
etd style=!WIDTH: 1 Spx" width- 1 5
dtd>dtr>
d t a b le>dp>
<script language='~avascripttt
RUNAT = "Server15
/* mouseover is called when the mouse move over the catalog
table. The row that the mouse is over gets highlighted.
*/
function mouseOver() (
var eIement
-
window.event.srcElement;
while (element.tagName != 'TRI9
element = element-parentHement;
e1ement.siyle.backgroundColor = "yellow";
/* mouseOver is called when the mouse move off a row in the catalog
table. The hilighted row retured to normal.
*/
function mouseout() (
var element = window.event.srcElement;
whiie (elernent-tagNamc!= 'TRI')
element = eIement.parentE1ement;
element.sty1e.backgroundColor
-
"white";
dbodp
c70 ' VI 6.0Scripting Object Mode1
Enabled %>
c% EndPageProcessing() %>
</FORM>
dhtmb
File Name: O~enAccountNew.as~
<%@ Language=VBScript %>
<% ' VI 6.0Scripting Object Mode1 Enabled %>
<! --#inchde file="../-ScriptLi brary/pm.aspf'-->
<% if StartPageProcessing() Then
Response.End() %>
<FORM name-thisForm METHOD-postr
<htm I>
<head>
<meta N A M E = " G E N E R A T O R f 'Content-"Microsoft Visual Studio 6.0'5
Sub bntSaveonclick()
Accttype = Trim(lstAcctType.getValue(lstAcctType.selected1ndex))
OpenDate = Trim(txtOpenDate.value)
Bal
- Trirn(txtBalance.value)
name=Trirn(txtName.value)
gender-Trim(lstGender.getValue(1stGender.selectedhdex))
bday-Trim(lstbday.getValue(lstbday.selected1ndex))
b m o n th=Trim(lstbmonth.getValue(selectedIndex))
byear=Trim(txtbyear.val ue)
dob=bday&ll-"&brn~nth&'~l 9"&byear
custsin = Trim(txtCustSIN.value)
address=Trim(txtAddr.vaIue)
phone l =Trim(txtCode.value)
plione2=Trim(txtTe1Code 1 .value)
phone3=Trim(txtTelCode2.~alue)
phone="("&phone 1 &")"&phoneZ&phone3
useID=Trim(txtUseriD.value)
passwd=Trim(txtPasswd.val ue)
repasswd=Trim(txtRePasswd.vrilue)
accno=txtAcctNo.value
Balan = CDbl(Ba1)
If name = "" then
txtMsg.vaiue=''Your name is required, please input it."
exit sub
Elseif len(byear)oZ then
txtMsg.value="Please input your Iast two-digit year of birth."
exit sub
Elseif len(custsin) 0 9 then
txtMsg.value="Please input your 9-digit SIN."
exit sub
Elseif address = "" then
txtMsg.value-"Your address is required, please input it."
exit sub
Elseif len(phone l ) 0 3 then
txtMsg. value-"Please input 3-digit area code."
exit sub
Elseif len(phone2) 0 3 then
txtMsg.value=="Pleaseinput first 3 digits of your phone no."
exit sub
Elseif len(phone3) 0 4 then
txtMsg.~alue=~~lease
input last 4 digits of your phone no."
exit sub
Elseif useiD = "" then
txtMsg.value="Please select your user ID. "
exit sub
Elseif FindUserID(use1D) then
txtMsg.value='This UserID has been chosen by sornebody else. please
select another one. "
exit sub
Elseif passwd = "" then
tx tMsg.value="Your password is required."
exit sub
Elseif repasswd = "" then
txtMsg.value="Please re-enter your password."
exit sub
Elseif passwdorepasswd then
txtMsg.value='Two passwords are not same. Please re-enter your
pâssword.~~
txtPasswd.value='"'
txtRePas~wd.value='~~~
exit sub
Elseif Bal = "" then
txtMsg.value='The open balance is requ ired."
exit stib
Elseif Balan40 then
tx tMsg.value-'The minimum deposit to open account is $50."
exit sub
Elseif ChcckAcctType(custsin, A c c t t y p e ) ~ " "then
txtMsg.value="You have had "&AcctType&" account, please select another
type?
exit sub
End if
'nfter checking the balance is not empty and then change it to be Double Precision.
custsin=CLng(custsin)
Set connection=Server.Create0bject("AD0DB.Connection1~
connection.Open "OraScottDSN","scott","tiger"
'append a record in the Customers table
custsql= "INSERT INTO Customers(CustSIN, CustName,CustGender, " & "CustBirthDate, CustAddr,CustPhone,UserID,CustPasswd) VALUES(" &
custsin & ","I & name & "Z1' & '"I&
gender &"', To-date("& dob &"', 'DD-MON-YYYY '), "' & address & " *,"I
& phone & "', "& -
" "&useID&"',"'& repasswd &"3"
Set newcustrecord = c~nnection.Execute(c~stsql)
'Add a new record to CustAcct
sqlNewAccount = "INSERT INTO CustAcct (CustAcctNo, CustSIN, AcctType,
OpenDate, Balance) " & "VALUES ("&accno&", "&custsin&", "'&Accttype&"', " & 'To-date("&OpenDate&"', 'MM/DD/YYYY 3, "&Balan&")"
Set rstOpenAccount-connection.Execute(sq1NewAccount)
connection.cIose
txtMsg.value="Yoitr new account has been opened successfully. "
End S u b
'Check if userid chosen by the new customer has already been selected by searching
the table customers.
Function FindUserID(ByVa1 userid)
Set connectionC=Server.CreateObject(1~ADODB.Connection'~
connectionC.Open "OraScottDSN". "Scott", 'Tiger"
sq1-UserID="SELECT UserID FROM Custorners " & -
" WHERE UserID = "&userid&""'
Set recordsetC=connectionC.Execute(sq1-UseriD)
if not recordsetc-EOF then
Find UserID-TRUE
else
FindUserIhFALSE
end if
End function
'check if this customer has had this kind of account types
function CheckAcctType(Custsin, Accttype)
Set connection=Server.CreateObject(1~ADODB.Connecti~nfi~
connection.Open "OraScottDSN","scott","tiger"
accttypesql="select AcctType from CustAcct " & "where (CustSIN="&Custsin&"and AcctType="&Accttype&"~"
Set recaccttype=connection.Execute(accttypesql)
if recaccttype.EOFthen
CheckAcctType=""
else
CheckAcctType=recaccttypef'AcctType")
end if
cnd îùnction
Fu nction CreateAccNo(j
'create a CustAccNo
Set connection=Server.CreateObject(1tADODB.Connection1~
connection.Opcn "OraScottDSN","~cott",~'tiger"
ac~nosql=~~select
CustAcctNo from CustAcct where CustAcctNo>=aIl("&~
"select A.CustAcctNo from CustAcct A)"
-
Set maxaccno connection.Execute(accnosql)
CreateAccNo=clng(trim(maxaccno("CustAcco))+
1
End Function
orgdate=Date()
dd=CS tr(DatePart("dl',orgdate))
mm=CStr(DatePart("ml',orgdate))
yp=CStr(DatePart("yyyy", orgdate))
dd 1 =CTnt(dd)
mm 1 =Clnt(mm)
i f d d l >OAndddI c - 9 t h e n
dd="OU+dd
elseif mm 1 > O And mm 1 <= 9 then
mm=" 0 +mm
II
end if
End Sub
Call ChangeDate()
tx tAcctNo.value=CreateAccNo()
tx t B a l a n ~ e . ~ a l ~ e = ~ ~ 5 0 . 0 ( ) ~ '
End Sub
cTAB LE align=center background-"" bgColor=blanchedalmond border- l
ceI1Paddinp l cellSpacing= l wid th=85%>
<P aIign=centen<FONT color-maroon face=Arial size=3xSTRONG>Personal
Information dSTRONG>dFONT>dP>
<TBODY>
<TR>
cTD width=20% bgColor=wheat style="BACKGROUND-COLOR:pcachpuff;
COLOR: mediumslateblue">cSTRONG~NarnedSTRONG~~/TD~
cTD width=45% style="BACKGROUND-COLOR:
#eeaOad15>dTD>
<TD style="BACKGROUND-COLOR:peachpuff 'xSTRONG><FONT
color=rnedi urnslateblue face="">SINdFONT>(/STRONG>
cTD style="BACKGROUND-COLOR:#eeaOad15
<STRONG style="BACKGROUND-COLOR:
#eeaOad">c/STRONG>
<TR>
<TD style="BACKGROLJND-COLOR:peachpuff'xFONT
color=mediumslateblue face-""
style-"BACKGROUND-COLOR:
#fSdeb3'5<STRONG style="BACKGROUND-COLOR:
peachpuff'
>AddressdSTRONGx/FONT>(/TD>
<TD colspan-3 height4 style-"BACKGROUND-COLOR: #eeaOad; HEIGHT:
6pxf'x/TD></TR>
<TR>
<TD sty lc="BACKGROUND-COLOR: peachpuff"xF0NT
color=mediurnslatebIue face-""
style="BACKGROUND-COLOR:
#fSdeb35<STRONG
style="BACKGROUND-COLOR:
peachpuff"
>PhonedSTRONG>(/FONT>
<TD height=6 style-"BACKGROUND-COLOR: #eeaOad; HEIGHT: 6pxt5
<TD styIe="BACKGROUND-COLOR:
peachpuff">cSTRONG><FONT
color=mediumslateblue fa~e="~5>User
ID<IFONT>(/STRONG>
<TD style="BACKGROUND-COLOR:
#eeaOadt5
<Tb
cTD styie="BACKGROUND-COLOR:
p c h p u f f '><STRONG><FONT
coior=rnediumslateblue face="" style-"BACKGROUND-COLOR:
peachpuf f 5PassworddFONT>dSTRONG)<ITD>
cTD h e i g h t 4 style="BACKGROUND-COLOR:
#eeaOad; HEIGHT: 6pxN>&nbsp;
dTD>
<TD styIe="BACKGROUND-COLOR:peachpuff'5cFONT size=2
style="BACKGROUND-COLOR:
peachpuff 'xSTRONGxFONT
color=mediumslatebluexFONT~Re-enter
Password&nbsp;~/FONTx/FONT>~/FONT~~FONT
color=mediumslateblue~dFONT></STRONG>
cTD styIe="BACKGROUND-COLOR:#eea0adt5
dTD>
dTR>dTBODY>dTABLE>
<P align=center style="BACKGROUND-COLOR:
linent5&nbsp;eFONT color=maroon
face-Arial size-3
style="BACKGROUND-COLOR:
#ffdab9'kSTRONG style="BACKGROUNDCOLOR: linentl>AccountInfomationdSTRONGx/FONT>
<P alignzcenter style="BACKGROUND-COLOR:l i n e n 5
ctable align="center" border-" 1 " cellPadding="l " cellSpacing-" 1 " width-"70%"
bgColordeea0ab borderlolor-white borderColorDark-siategray
borderColorLight-whi te>
<TR>
<TD bgColor=wheat width=30%
style="BACKGROUND-COLOR:
peachpuff 5
<P align=centen<FONT cotor=mediumslateblue
face="'5<STRONG>&nbsp;Account Typec'STRONG>clFONT></P>dTD>
ctd width=30%> d t d >
ctd bglolor-wheat style="BACKGROUND-COLOR:
peachpuff 5
t d i v a1ign="center">cFONT color=mediumslateblue
face="'kSTRONG>Open
DepositdSTRONG>(/FONT>ddiv>
c t d style='WIDTH: 15px" width=15>dtd>
dtr>dtable>dP>
(INPUT name=reset style="HEIGHT: 25px; WIDTH: 60px" type-reset value=Reset>
-&enter>
<script language="javascript"RUNAT = "Server15
/* mouseover is called when the mouse move over the catalog
table. The row that the mouse is over gets highlighted.
*/
var eiement = window.event.srcE1ement;
while (eiement-tagName != 'TR")
element = e1ement.parentElement;
eiement.sty1e.backgroundColor = "yellow";
/* mouseover is called when the mouse move off a row in the catalog
table. The hilighted row retured to normal.
*/
function mouseOut() (
var element = window.event.srcE1ement;
while (elernent-tagName != 'TRI')
element = element-parentElement;
element.style.backgroundColor = "white";
}
<% ' VI 6.0 Scripting Object Mode1 Enabled %>
<% EndPageProcessingO %>
c/FORM>
dhtmb
<%@ Language=VBScript%>
c% ' VI 6.0 Scripting Object Mode1 Enabled %>
<!--#indude file-". J-ScrïptLibrary/pm.asp"->
c% if StartPageProcessing() Then Response.End() %>
cFORM name=thisForrn M E T H O D - p o s ~
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTMIf/EN">
cFI7'Mb
<HEAD>
<META content="texthtml; charset=unicode" http-equiv-Conten t-Type>
<%
Accts = Trim(lstAccts.getVafue(lstAccts.selectedhdex))
ReAcct = Trim(txtReAcctNo.value)
BillNo=Trim(txtBiIINo.value)
PayDate = Trim(txtPayDate.value)
DueDate = Trim(txtDueDate.value)
Arnount=Trim(txtAmount.value)
' validate
the input data
If ReAcct = "" then
txtMsg.value-'The receiving account number is required. "
exit sub
Elseif Amount = "" then
txtMsg.value="Amount is required, please input it."
exit sub
End if
àfter checking the balance is not empty and then change it to be Double Precision.
Amt = CDbl(Amount)
ReAcctNo=CLng(ReAcct)
Set conne=Ser~er.CreateObject(~
'A DODB.Connection'~
conne.Open "OraScottDSN","scott","tiger"
look up custacctno corresponding to clccts
~ q I ~ ~ ~ t a c c t n ~custacctno
= ' ~ ~ e l efrom
~ t custacct A, customers C " & "
where (UserID ="&Session('WserID'~&"' and
If
CustF'asswd ='l&Session(f'Passwd")&""'&-
"
&-
" and C.CustSIN=A.CiistS IN and AcctType="'&Accts&"')"
Set rstacctno= conne.Execute(sqlciistacctno)
Check if balance is enough for PaidAmount in table CustAcct
checkbalanccsql="select balance from custacct " & ''where custacctno="&acctno&""
Set rstc heckbai=conne.Execute(checkbalancesq1)
bal=CDbl(Trim(~-stcheckbal(~'balance")))
txtMsg.value='Your balance is "&bal&", not enough for "&Amt&"."
Exit Sub
Efse
'append a record in the Payment table
paysql- "TNSERT INTO Payrnent(Bi1INo,PayingAcctNo,
ReceivingAcct No, " & TayDate, DueDate, PaidAmount) VALUES("'&BillNo&'" "&accmo&","
k
""& ReAcctNo &", To-date("'& PayDate &"', MM/DD/YYYY')," &-
'To-date("&DueDate&"', 'MM/DD/YYYY 7, "&Amt&")"
Set paybillrecord = conne. Execute(paysq1)
iipdate paying account balance
updpayiri.gbal= "UPDATE CustAcct Set Balance=Balance-"&Arnt&" "
&-
"Where CustAcctNo-" & acctno & ""
Set rstupdpaybal=conne.Execute(updpayingbal)
iipdate receiving account balance
updreceivingbal= "UPDATECustAcct Set Balance=Balance+"&Amt&""
&-
'Where CustAcctNo="& ReAcctNo &""
Set rstupdrebal=conne.Execute(updreceivingbal)
txtMsg.value="paid successfully"
End if
End Sub
orgdate=Date()
dd=CStr(DatePart("d'',orgdate))
mm=CStr(DatePCut("m",orgdate))
yy=CStr(Datef art("yyyy", orgdate))
dd 1=Chtjdd)
mm i =Clnt(mm)
iFdd1 > O And dd1 c= 9 then
dd="OM+dd
elseif mm 1 > O And mm1 <= 9 then
rnm="O"+mm
end if
End Sub
End Sub
<centerxbr>
c i m g SRC="../images/PayBiIl.gif'WIDTH="33411HEIGHT="43">
dcent e n
<p al ign=cent e n
<FONT color=mediumslateblue face="'kSTRONGzcFOM color=navy face=""
size=4>Paying Accounts&nbsp;&nbsp;&nbsp;&nbsp;dFONT>dSTRONG>
<FONT color=chocoIate>dFONT>
d~'
<P '
<TABLE align=center border- 1 cellPadding= 1 cellSpacing=l width=75%
bgCoior=#aOd 1 fû borderColor4800000 borderColorDak=#800000
borderColorLight=#808080 styIe="BACKGROWND-COLOR:#aOd I f8">
<TR>
cTD align=left colSpan=2 style="BACKGROUND-COLOR:
peachpuff; TEXTALIGN: Ieft; width=SO%xP><FONT face="" size=2><FONT face=""size=3>tFONT
color=mediumslateblue face="">tSTRONG>Receivingc/STRONGWFONT>
<STRONGxFONT color=mediumslateblue face="">Account
No.dFONT>dSTRONG>
dTD>
<TD colSpan=2 width=SO% stylc="BACKGROUND-COLOR:#eeaOad15
c/TD>
<TR>
<TD style="BACKGROUND-COLOR:peachpuff kSTRONG><FONT
colot-=mediumslateblue face=="">DueDatedFONT>clSTRONG>c'TD>
cTD style="BACKGROUND-COLOR:#eeaOad15
dTD>
</TR>(/TABLE>
t I N P U T id=reset 1 narne=reset 1 type-reset value=Reset>&n bsp;<b>&nbsp:
dp>
<p al ign=centen<strong>
t f o n t face="Arial " s i z e = " 4 5
<A Iiref-". JMainMenu.aspQ5BackdA>
clFont>clstrong>dpAB>dFONT>
</BODY>
<% ' VI 6.0 Scripting Object Mode1 Enabled %>
<% EndPageProcessinp() %>
dFORM>
</HTML>
File Name: C heckBalanceasp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W 3 HTMU/ENQt>
<HTML>
<HEAD>
<META content="text/htrnl; charsct=unicode" http-equiv=Content-Type>
<%
' validate the
input data
UserID=Session("UserID")
Passwd=Sess ion("Passwd")
Set connection = server.CreateObje~t(~~AD0DB.connection~')
connection .Open "OraScottDSN","~cott~~,~~tiger"
'
sql
sqlCheckIn="SELECT * " & TROM Customers " & -
"WHERE UserlD = "&UseriD&"'and " & l r C ~ ~ t P=a"'&Passwd&"'
~~~d
"
Set rstCheckTn = connection.Execute(sq1CheckIn)
'check if the input sid exists
If rstCheckhEOF Then
str = server.URLEncode("UserlDorfand PassWord are incorrect! Try it again.")
Resp~nse.Redirect(~'JCheckBalance/Response.asp?message='l& SU)
End if
Set connection = server.CreateObject("ADODB.connection")
connection.Open "OraScottDSN","scott",''tiger"
' sql
checking if the user exists
sqlBalance="select A.CustAcctNo, A-AcctType, A.Balance " & -
"FROM CustAcct A , Customers C
"&-
'WHERE UserlD = "&UsertD&"' AND " & "CustPasswd = "'&Passwd&"' AND " & "C.CustSIN=A.CustSIN "
Set rstBalance = connection.Execute(sqlBalance)
su = server.URLEncode("You have not had an account yet.")
Response.Redirect(~Response.asp?message= & str)
else
%>
<BODY bgColor=linen>
<center><bn
cimg SRC="../images/Check 1 .gifl WIDTH-"334" HEIGHT-"43'5
dcenten
c p e c e n t e n d a b l e border-" 1 " bgColor4efaOac al ign-centen
<TBODY styk="BACKGROUND-COLOR: #eeaOad15
ctr Aiign="middle15
ctd width="30%" style="BACKGROUND-COLOR:peachpuff; WIDTH:
30% "><P><font Size="3" face="%eFONT
coIor=mediumslateblue~~FONT
face='Times New Rornan"~~FONTxSTRONG~Account
No.dFONT>
dSTRONG>dP>dFONT>(/FONT>(/FONT>dtd>
ctd width="30%" style="BACKGROUND-COLOR:peachpuff; WIDTH: 30%'5<font
S ize="3" face=""xFONT
color=mediumslateblue face='Times New Romanl'xSTRONG~Account
Type(/FONT>c/STRONG>dfont>c/td>
ctd width='30%" style="BACKGROUND-COLOR:peachpu*, WIDTH:
30%"><FONTcolor=mediumslateblue face='Times New Roman"
size=3><STRONG>BaIancedSTRONG>dFONT~td>
ctn
ctd Align="middlef5<font Size="2"face="Aria115
<%= r~tBalance(~'CustAcctNo")
%>dfont>
ctd Align="left'f>dont Size='2" face="Arial">
Loop
connection.close
End If
%>
dFONT>dtd>
dtndTBODY>
dtable>dcenter>
File Name: TranHist0rv.a~~
<%@ Lmguage-VBScript%>
<% ' VI 6.0 Scripting Object Mode1 Enabled %>
<!--#inclde fi le-".J-ScriptLibrary/pm.aspU--3
c% if StartPageProcessingO Then Response.End() %>
cFORM name-thisForm METHOD-posb
cHTMb
CHEAD bgColor=linen>
<META content="text/html; charset-unicode" http-equi~~ontent-Type>
<p al ign=cen ten<STRONG>cFONT cotor=medi umslateblue face="" size=4>Statement
Periodc/FONTx/STRONG>
dp>
c p al ign=cen ter><FONT color=mediitmslateblue face=""
size=4~cSTRONG>Account&nbsp;c/STRONG~c/FONT>
Accts = Trim(lstAccts.getValue(lstAccts.selected1ndex))
Period= CLng(Trim(lstPeriod.get Value(lstPeriod.selected1ndex)))
Select Case Period
Case 6
NewDate=DateAdd("dl', -6, Date())
Case 14
Ne wDate=DateAdd("dU,- 1 4, Date())
Case 29
NewDate=DateAdd("dl', -29, Date())
End Select
Set conne=Server.CreateObject(llADODBBConnection~~
conne.Open "OraScottDSN","scott","tiger"
'lookup custacctno cot-responding to accts
sqlcustacctno="select custaccmo from custacct A, customers C " & -
" w here (UserID =*'&Trim(Session('UserID"))&"'and " &" CustPasswd ="'&Trirn(Se~sion("Passwd"))&~~~~&"
and C.CustSIN=A.CustSTN and AcctType="&Accts&"~"
Set rstacctno- conne.Execu te(sqlcustacctno)
'get corresponding records from the Payment table
transq l="SELECT PayingAcctNo,ReceivingAcctNo,PayDate.Bill No." & "PaidAmount from Payrnent " &
,
"Where (PayingAcctNo="& acctno &" or " & -
"ReceivingAcctNo="& acctno &") and
PayDate>To-date("'&NewDate&"'.
'MM/DD/YY 7"
Set tranrecord = conne.Execu te(transq1)
<P'
<table border-" 1 " bgColor=##efaOacalignxenter borderColorDark=lightslategny
borderColorlight-white>
<TBODY style='T3ACKGROUND-COLOR:#eea0acig5
ctr>
<td align="midd1eustyle="BACKGROUND-COLOR:
peachpuff 'xSTRONG><FONT cotor=mediurnslateblue face='"'
style="BACKGROUND-COLOR:
peachpuff '>NO
transaction during the period.c/FONT>(/STRONG>
dtd>
<%
conne.close
Exit Sub
ELSE
%>
<P'
<table border="1 " bgColor=##efaOacalign-center borderColorDrirk-lightslategray
borcierColorLiglit=white>
cTBODY style="BACKGROUND-COLOR:#eeaOad15
<tr Align="middlen>
ctd wid th="5OUstyle="BACKGROUND-COLOR:
peachpuff '><STRONG><FONT color-mediumslateblue face='"SDate
dFONT>(/STRONG>dtd>
ctd ~idth=~'70I'
style="BACKGROUND-COLOR:
peachpuff"><STRONG><FONTcotor=rnediumslateblue face=""
style="BACKGROUND-COLOR:
perichpuff"~Descriptionc/FONT~dSTRONG~dtd~
ctd width='701'style="BACKGROUND-COLOR:
peachpuff 'xSTRONGXFONT
color=mediurnslateblue face-""
style="BACKGROUND-COLOR:peachpuff '>FrorndFONT>dSTRONG>
dtd>
ctd width="70" styIe="BACKGROUND-COLOR:
peachpuff k S T R O N G x F 0 N T color=mediumslateblue face=""
S~~~~=~'BACKGROUND-COLOR:
peachpuff">ToclFONT>dSTRONG> dtd>
ctd width="5OWbgColor-#eeaOad style-"BACKGROUND-COLOR:
peachpuff k S T R O N G x F O N T color=#7b68ee styie="BACKGROUND-COLOR:
peachpuff'5AmountdFONT>(/STRONG>dtd~
dtr>
<%
Do Untii tranrecord.EOF
fpayingno=tranrecord.Fields("PayingAcctNol')
freceivingno=tranrecord.Fields("ReceivingAcctNo~~
fdate=tranrecord.FieId~(~
F ay Date")
fdesc=tranrecord.FieIds("BiIlNo")
farnount=tranrecord.Fields("PaidAmount")
%>
<tr><td>
cfont Size="3">
c%= tranrecord(TayDate") %>
dfont>dtd>
ctd Align="middlel">
cfont Size="35
c%= tranrecord("Bil1No") %>
dfont>c/td>
ctd Al ign="middleW
bgColor==#eeaOad>
<font Size="35
<% =tranrecord("PayingAcçtNo")%>
dfont>dtd>
ctd
Aiign="middlet5
<font Size=T '5
~%=tranrecord(~'ReceivingAcctNo")%>
dfont>dtd>
etd Al ign="rniddlef5
d o n t Size=="3'5
<%=tranrecord("PaidAmount")%>
dfontx/td>
c%
tranrecord-MoveNext
bop
End If
conne.close
End Sub
%>
cp align=centen<strong>tfont face="Arialn size="4">
<A href="../MainMenu.asp">Bac k d A >
d f o n t></strong>dp>
(/BODY>
<% ' VI 6.0 Scnpting Object Mode1 Enabled %>
<% EnciPageProcessing() %>
c/FORhb
dHTML>
File Name: ChangeAddr.asn
<%@ Language-VBScript %>
<% ' VI 6.0 Scripting
Object Mode1 Enabled %>
c!--#inchde file-". J-ScriptLibrary/pm.asp"-->
c% i F StartPageProcessing() Then Response.End() %>
<htmI>
<head>
crneta NAME="GENERATOR1'Content-"Microsoft Visual Studio 6 - 0 5
<script ID="serverEventHandlersVBS" LANGUAGE="vbscript" RUNAT="Server15
Sub thisPage-onshow()
End Sub
sqlcustorner = "Select * From Ciistomers " & 'Where UserID = "'&TheiD&"'AND " & "CUStPasswd = "&Pass&"' ''
End Sub
Sub Btn-Modify-oncl ick()
TheiD=Session('UserlD1')
Pass =Session('Passwd")
IF addr = "" then
txtMessage.va1ue-'The address is required"
exit sub
ElseIF phon = "" then
txtMessage.value='The phone no. is requ ii-ed"
exit sub
end if
txtMessage.~alue=~'~'
Set connection=Server.CreateObject('1ADODBBConnection'~
connection.Open "ûraScottDSN","scott", I'tiger"
sql-Modify="UPDATE Customers SET " & -
" CustAddr="' &addr& "', " & " CustPhone=" &phon& "' " & -
" WHERE UserID- *'&TheID&"'AND " & " CustPasswd = "&Pass&"' "
Set
rstChmgeAddr=connection.Execute(sql~M~ify)
txt~Message.value="Youraddress andor phone no. updatedtl
End Sub
<P>
etabte border="I " cellPadding="l " ccliSpacing="l" height-" 123"style="HEIGHT:
1 47px; WIDTH: 372px" width="65.74%"align="center"bgColor=#aOd 1f8
borderColor4800000 borderColorDark=##808080
borderCoIorLight=#800000>cTBODY style="BACKGROUND-COLOR:
peachpuff 5
ctn
<td align="rightU
styIe="BACKGROUND-COLOR:
peachpuff; COLOR: mediumslateblue'5
cDIV align=lef~STRONG>SINdSTRONG>dDIV>dtd~
<td styIe="BACKGROUND-COLOR: #eeaOad15
dtd>dtr,
<tn
ctd align="rightMstyle="BACKGROUND-COLOR:peachpufF1xDIV
align=Ieft><STRONG>tFONT color=mediumslatebIue
face='Tirnes New Roman" size=3
style="BACKGROUND-COLOR:
peachpuffl>NamedFONT>(/STRONG></DIV>dtd>
ctd sty le="BACKGROUND-COLOR: #eeaOad15
cltd>dtn
cTR>
<TD align-right style="BACKGROUND-COLOR:peachpuff5cDIV
aliçn=left><STRONG)<FONT color-mediumslateblue face-""
style-"BACKGROUND-COLOR:
peachpufi7'>GenderdF0NT>(/STRONG>(/DIV></TD>
<TD style="BACKGROUND-COLOR:#eeaOad''>c/TD>c/TR>
tTR>
cTD align-right style="BACKGROUND-COLOR:peachpuff'><DIV
align=left><STRONG>cFONTcolor.~mediumslateblue
face="%Date of BirthdFONT>dSTRONG>dDIV>dTD>
<TD style="BACKGROUND-COLOR:#eeaOadt5>dTD>dTR>
<tr>
<td align="right"style="BACKGROUND-COLOR:peachpuff 5 < DN
align=teft><STRONGxFONTcoior=rnediumslateblue
face='"5AddressdFONT>(/STRONG></DIV>dtd>
ctd styIe="BACKGROUND-COLOR:
#eea0ad15
dtd>dtr>
ctn
ctd align-"right" style="BACKGROUND-COLOR:peachpuff 5eDIV
aIign=left><STRONG><FONTcolor=rnediumsIateblue
face="">PhonedFONT></STRONG><STRONG><FONT
color=mediumslateblue face="">No(/FONT>dSTRONGz-.dDIV>
c î d sty le="BACKGROUND-COLOR: #eeaOad"></td>
dtr>dTBODY>c/table><lp>
</body>
<% ' VI 6.0 Scripting Object Mode1 Enabled %>
c% EndPageProcessingO %>
€/FORM>
c/htrnl>
File Name: Password.htm
<htrnl>
chead>
<meta NAME="GENERATOR" Content-"Microsofi Visual Studio 6 - 0 5
<title>dtitle>
c'head>
<body bgColor=i inen>
<P'
ccenteneimg src=".Jimages/PasswdO.gif' WIDTH="393" HEIGHT="4015
d c e n ter>
<forrn action='Fassword.asp" method="post" id="form 1 " name="form 1 '5
<div>
cbIockquote>
<p align="left"><strong><FONT
face=AriaI><FONT color=darkblue>
c'FONT></FONT>(/strongr&n bsp;c/p>
c p align="leFtl'xstrong><FONT
face=Arial
color=darkbli~e>&nbsp;&n
bsp;&nbsp;&nbsp;&nbsp;&n bsp; &nbsp;&nbsp;&nbsp; Please
fil1 the below fields to change your password.
dFONTx/strong></p>
<blockquote>
<bloc kquote>
<table border="0" cellPadding=" 1" cellspacing-" l n widtli='75%'5
ctn
<td><strong>tFONT color~seagreenface=.4rial>Current
Password:</FONT>dstrong>dtd>
<td>
<input id=l'ppaword 1 " name="OldPassHtype="password14c'td>dt~
<tr>
a d x f o n t color="navy"
face="Arialllz<strong>&nbsp;&nbsp;&nbsp;&n b s p n b s p ; n b p <FONT
color=chocolate face="'5New
Password:4FONT>(/strong>c/font></td>
<td>
<input id='"password2"narne="NewPass I " type="password'~td>dU>
<blockquote>&nbsp;dblockquote>
<blockquote>
<table border="O" cellPadding-" 1 " cellSpacing-" 1" height=I3Gu
style="HEIGHT: 36px; WlDTH: J 9Opx" width='29.5%" align-centen
<tn
<td>cinput id="submit 1 " name-"submit 1" style="HEIGHT: 28px; WIDTH:
7Spx" type=ll~~bmit'l
value="Change">dtd>
<td>
cinput id=I1reset1 " name-"reset 1 " style="HEIGHT: 28px; WIDTH: 75px" type="resetV
value-" Clear "></td>c/tn</tabIe>dblockquote>
<p al ign=centeocstrong>
cfont face-"Arial" si~e="4~5
<A hre f-". JMainMenu.aspt5BackdA>
c/font>dstrong>dp>
File Name: Passwordase
<%
OldPass = Trirn(Request.Forrn(llOldPass"))
NewPass 1 = Tt-im(Request.Forrn("NewPass1 '1)
NewPass2- Trim(Request.Form("NewPass2"))
TheID=Session("UserID")
Pass =Ses~ion(~'Passwd'')
If (OldPass="" or New Pass 1="" or NewPass2="" ) then
str = server.URLEncode(''Eithercurrent or new password is NULL! ")
Response. Redirect("../PassWord/Response.asp?message= & str)
ELSEIF OldPass O P a s then
str = server.URLEncode("1ncorrect old password, try again.")
Response.Redirect("../Password/Response.asp?message= & str)
ELSEIF NewPass 1o N e w P a s s 2 Then
str = server.URLEncode("You dontt confirm your new password!")
R e s p o n s e . R e d i r e c t ( " . J P a s s w o r d / R e s p o n s m = & str)
end if
Response. Write("S tudent Id:"&ThelD&"<bn'7
'Response.Write("OldPa~s:~~&OldPass&"<b~'~
'Response.Write("NewPass 1 :"& NewPass 1 & "<br>")
'Response.Write("NewPass2:"& NewPass2 & 'kbr>")
Set connection = server.CreateObje~t(~'AD0DB~connection")
connection.Open lïOnScottDSN", "scott". "tiger"
sql-UpdatePasswd='UPDATE Customers SET " & -
" CustPasswd- "'&NewPass1&rH' " & " WHERE UserID= "&TheID&"' AND " & "
CustPasswd
=
"'&Pass&"'"
Set rstPasswd=connection.Execu te(sql_UpdatePasswd)
Session("Passwd") = NewPass 1
str = server.URLEncode("Your password have been changed!")
Response.Redirect(".JPassWodResponse2asp?essage= & str)
File Name: Responsc.as~
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W 3 HTMTNEN15
cHTh'lb
<HEAD>
<META content="text/htrnl;ctiarset-unicode" http-equiv-Conten t-Type>
<%= Request.QueryString("message'3
%><BODY
bgColor=navajowhite>cp>ccente~b>
db>-dcenter>
<P>cSTRONG><U><FONT face-Arial><A
href="Password.htrn"~BackdA~c/FONT~dU~dSTRONG>dP>
<P>&nbsp;dP>
(/BODY>
dHTMb
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising