You are on page 1of 62

CHAPTER ONE INTRODUCTION

1.1 BACKGROUND INFORMATION


The introduction of online banking in Nigeria has heralded a new dimension in the banking system to the public and network. Customers can now access their account position from their various offices or even homes. One astonishing fact about the Internet is that it is available 24 hours and the banks website is on the net which is available to people all the time. Many companies or organizations have benefited from this innovation and the banking world is not left out of this great innovation they know that with the Internet they are readily available to their customers. With online banking customers dont face the stress in the banking hall and they can still transact with their bank online right in their houses, offices or anywhere. This innovation will save banks from employing more workers and most importantly they can serve their customers with good service and comfort. You can now know the balance in your house, have your mini statement printed out, withdraw and deposit from anywhere.

ONLINE BANKING DEFINED


Online banking is a term used for performing transactions, payments, withdrawals, checking account balances, deposits, etc. over the internet through a bank's secure website. This can be very useful, especially for banking outside bank hours (which tend to be very short) and banking from anywhere where internet access is available. In most cases a web browser such as Internet Explorer

is utilized and any normal internet connection is suitable. No special software or hardware is usually needed. In online banking a customer accesses his or her accounts from a browser, software that runs Internet banking programs resident on the banks World Wide Web server, not on the users PC. Net Banker defines a true Internet bank as one that provides account balances and some transactional capabilities to retail customers over the World Wide Web. Online banks are also known as virtual, cyber, net, interactive, or web banks. According to industry analysts, electronic banking provides a variety of attractive possibilities for remote account access, including:

Availability of inquiry and transaction services around the clock Worldwide connectivity; Easy access to transaction data, both recent and historical; and Direct customer control of international movement of funds without intermediation of financial institutions in customers jurisdiction by Richard Insley, Hussam Al-Abed and Trent Fleming, BOL Gurus

1.2 STATEMENT OF PROBLEM The design for this project is to build an application using java that will solve the problems related to the following: 1. Customers require long waiting hours before banking transactions can be completed and they require the use of tally numbers which was the in-thing for customers waiting to cash money. 2. Danger of carrying huge sum of money in cash from one destination to another.

1.3 AIMS AND OBJECTIVES OF THE STUDY The primary aim of the project is to develop an application using java which will: 1. Enable a customer to withdraw, deposit cash, check balance enquires generate statements, and create new accounts. 2. To solve the problem of long waiting hours in banks before banking transactions can be completed and to change the system of using tally numbers which was the in-thing for customers waiting to cash money. 3. To speed up banking transaction and improve efficiency. 1.4 METHODOLOGY This work is achieved with java programming language coupled with Microsoft SQL which serves as a database, which stores, updates, validates and keeps information about the type of transaction being done, when it is done and how it is done. The validation is done on the server side with the help of java programming language using a class in java package that is the http servlet. This work can only be viewed with the help of servlet, which serves as the server. This application will allow a customer to Deposit, and even check account balance as well as printing out a mini statement for the type of transaction that has been committed.

The design for this project is to build an application using java that will allow the customers: 1. Open an account 2. Deposit cash 3. Withdraw cash 4. Enable balance enquires 5. Generate statements 6. New user account can be created using applications for it.

1.5 SIGNIFICANCE OF STUDY


Following the trend in advance countries, we cannot close our eyes and pretend that the carrying of excess cash about is not becoming obsolete. Even if we do we can not ignore the various advantages posed by such practices like the possible loss of life at the event of armed robbery attack, the frustrating inconvenience and stress in carrying large sum of money in cash from one destination to another and the possible mitigation of the currency in circulation in the country because of constant mis-handling.

Furthermore, Nigeria cannot be left out in the scheme of things and must therefore strive to keep pace with the rapid technological development all over the world and must carve a niche for herself in the global village by been comprehensively involved in the global electronic commerce that is in vogue.

1.6 LIMITATION Transactions such as withdrawals, deposits or fund transfer will have to be carried out in the physical presence of the customer or his representative. This is to enable the bank officials verify and append such transaction as well as serve as a security measure.

This application will not be treating the other diverse and robust sections of the banking institution. It is limited to the services provided by the front office desk. The front office desk encompasses the teller services and the customer services section.

The teller services form the core of banking operators. It handles the task of updating customers accounts with deposit as well as withdrawals made on it. The customer services section handle duties such as: 1. Opening and closing of all forms of accounts 2. Issuing of cheques /configuration of cheques 3. Periodical payments 4. Issuing of statement of accounts 5. Checking of account balance

CHAPTER 2 LITERATURE REVIEW


2.1 OVERVIEW OF ONLINE BANKING
ORIGIN OF ONLINE BANKING First offered in 1995, online banking is the latest twist in the ever-growing world of technology. Now that over 68% of U.S. households have access to the Internet, banks customers are discovering that it's easier and more expedient to do the following online:

Check account balances. Balance a checkbook. Transfer money between accounts. Track recent account activity. Authorize electronic bill payments. Request copies of past statements and processed checks. Order travelers, cashiers, and regular checks. Issue stop payment requests. Apply for auto, mortgage, home equity, student, or personal loans.

The advent of the Internet and the popularity of personal computers have presented both an opportunity and a challenge for the banking industry. For years, financial institutions have used powerful computer networks to automate millions of daily transactions, often the only paper record is the customer's receipt at the point of sale. Now that its customers are connected to the Internet via personal computers, banks envision similar economic advantages by adapting those same internal electronic processes to home use.

Banks view online banking as a powerful "value added" tool used to attract and retain new customers while helping to eliminate costly paper handling and teller interactions in an increasingly competitive banking environment. BRICK-TO-CLICK BANKS Today most large national banks, many regional banks and even smaller banks and credit unions offer some form of online banking, variously known as PC banking, home banking, electronic banking or Internet banking. Those that do are sometimes referred to as "brick-to-click" banks are yet to offer online banking, The challenge for the banking industry has been to design this new service channel in such a way that its customers will readily learn to use and trust it. After all, banks have spent generations earning our trust; they will not like to risk that on a Web site that is frustrating, confusing or less than secure. Most of the large banks now offer secure, fully functional online banking for free or for a small fee. Some smaller banks offer limited access or functionality; for instance, you may be able to view your account balance and history but not initiate transactions online. As more banks online banking will likely become as commonplace as automated teller machines. VIRTUAL BANKS Virtual banks are banks without bricks; from the customer's perspective, they exist entirely on the Internet, where they offer pretty much the same range of services and adhere to the same federal regulations as your corner bank. Virtual banks pass the money they save on overhead like buildings and tellers along to you in the form of higher yields, lower fees and more generous account thresholds. 7

The major disadvantage of virtual banks revolves around ATMs. Because they have no ATM machines, virtual banks typically charge the same surcharge that your brick-and-mortar bank would if you used another bank's automated teller. Likewise, many virtual banks won't accept deposits via ATM; you'll have to either deposit the check by mail or transfer money from another account.

ADVANTAGES OF ONLINE BANKING


1. Convenience: unlike your corner bank, online banking sites never close; they're available 24 hours a day, seven days a week and they're only a mouse click away. The number of customers who choose online banking as their preferred method of dealing with their finances is growing rapidly, many people appreciate the convenience. Online banking usually offers such features as electronic bill payment and the downloading of bank statements for import in a personal finance program. There is a growing number of banks that operate exclusively online. 2. Ubiquity: If you're out of state or even out of the country when a money problem arises, you can log on instantly to your online bank and take care of business, 24/7.

3. Transaction speed: Online bank sites generally execute and confirm transactions at or quicker than ATM processing speed. 4. Efficiency: You can access and manage all of your bank accounts, including IRAs, CDs, even securities from one secure site.

5. Effectiveness: Many online banking sites now offer sophisticated tools, including account aggregation, stock quotes, rate alerts and portfolio managing programs to help you manage all of your assets more effectively. Most are also compatible with money managing programs such as quicken and Microsoft money.

DISADVANTAGES OF ONLINE BANKING


1. Start-up may take time: In order to register for your bank's online program, you will probably have to provide ID and sign a form at the banks branch. If you and your spouse wish to view and manage your assets together online, one of you may have to sign a durable power of attorney before the bank will display all of your holdings together.

2. Learning curve: Banking sites can be difficult to navigate at first. Plan to invest some time and/or read the tutorials in order to become comfortable in your virtual lobby.

3. Bank site changes: Even the largest banks periodically upgrade their online programs, adding new features in unfamiliar places. In some cases, you may have to re-enter account information. 4. Fraud: Some customers avoid online banking as they perceive it as being too vulnerable to fraud. The security measures employed by most banks are never 100% safe, but in practice the number of fraud victims due to online banking is very small. Indeed, conventional banking practices may be more prone to abuse by fraudsters than online banking. Credit card fraud, signature forgery and identity theft are far more widespread "offline" crimes than malicious hacking. Bank transactions are generally traceable and criminal penalties for bank fraud are high. Online banking can be more

insecure if users are careless, gullible or computer illiterate. An increasingly popular criminal practice to gain access to a user's finances is phishing, whereby the user is in some way persuaded to hand over their password(s) to the fraudster.

SECURITY ISSUES IN ONLINE BANKING


Protection through single password authentication, as is the case in most secure internet shopping sites, is not considered secure enough for personal online banking applications in some countries. Online banking user interfaces are secure sites (generally employing the https protocol) and traffic of all information - including the password - is encrypted, making it next to impossible for a third party to obtain or modify information after it is sent. However, encryption alone does not rule out the possibility of hackers gaining access to vulnerable home PCs and intercepting the password as it is typed in (keylogging). There is also the danger of password cracking and physical theft of passwords written down by careless users. Many online banking services therefore impose a second layer of security. Strategies vary, but a common method is the use of transaction numbers, or TANs which are essentially single use passwords. Another strategy is the use of two passwords, only random parts of which are entered at the start of every online banking session. This is however slightly less secure than the TAN alternative and more inconvenient for the user. A third option, used in many European countries and currently being trialled in the UK is providing customers with security token devices capable of generating single use passwords unique to the customer's token (this is called two-factor authentication or 2FA). Another option is using digital certificates, which digitally sign or authenticate the transactions, by linking them to the physical device (e.g. computer, mobile phone, etc). While most online banking in the United

10

States still uses single password protection, the FDIC has issued regulations requiring that banks implement more secure authentication mechanisms by the end of the year 2006. Banks in many European countries (including the Scandinavian countries, The Netherlands, Austria and Belgium) are offering online banking for e-commerce payments directly from customer to merchants.

2.2 REVIEW OF RELATED FINDINGS


Online banking is growing in popularity, with nearly 23 million Americans expected to pay their bills and access their financial accounts online by 2004, according to research firm IDC. In 1999, some six million households used the Internet to do at least some of their banking, according to the firm. "Banks of all sizes are acknowledging that consumer demand for online banking is reaching a critical point," said Shaw Lively, research manager for online financial services at IDC. "As the number of U.S. online banking households grows, banks will need to stop thinking about the Internet as an alternative channel, and instead think of it as a mainstream channel every bit as important as branches, call centers and ATMs." Entrepreneurs have been slow to adopt online banking with good reasons. But some banks are trying hard to win them over. In theory, the convenience and simplicity of online banking make it a godsend for busy entrepreneurs. Yet recent surveys show that small-company CEOs are slow to migrate their business banking online, lagging behind consumers and big companies. A survey released in December 2004 by Forrester Research found that while small-business owners are active internet users, only 19 percent of those surveyed were actively using online

11

banking, and just 13 percent were actively paying bills online. The "Small Business Research 2005 Study," performed by Edgar, Duma & Co., a global financial services and payments consultancy, and Collective Dynamics, a management and technology consulting firm, found that while 57 percent of responding entrepreneurs used online banking daily or weekly, only half paid their bills online; 28 percent had no interest at all in online banking. Why? The most commonly cited reason, reports John Bresnahan, director at Edgar, Dunn & Co., was concern about internet security. "Businesses of this size are very conscious of security," echoes Anita Campbell, CEO of Small Business Trends, a website that monitors trends in the global small-business market. "Every time we have one of these scares about credit card numbers or banking records being compromised, that gives business owners pause."

ONLINE BANKING THREATENED BY CONSUMER SECURITY FEARS A survey commissioned by internet security company Entrust has suggested that increasing concerns over online fraud is leading to a reduction in the use of internet banking by US consumers. The survey found that 18% of those questioned had either decreased their use of online banking or stopped using it completely in the past 12 months, due to concerns regarding the security of their online identity. Unsurprisingly, almost all of those interviewed indicated their willingness to go through additional online security, but most were wary of paying for it. The findings may put constraints on how financial institutions can address the issue, driving them toward more innovative market solutions.

12

Kevin Simzer, senior vice president at Entrust said, "The urgency of this problem demands immediate action, especially when considering the financial impact of customers reverting to more expensive channels to conduct their banking transactions." ONLINE BANKING USE WIDESPREAD STUDY FINDS A majority of adults are comfortable monitoring their finances and paying bills over the Internet, while older people remain more cautious, according to a Yahoo-commissioned study released Thursday. In an online survey of 2,687 people, 64 percent said they check their bank account balances primarily online and 56 percent said they use the Internet as their primary way to check their investment portfolios. The percentage who said they pay their bills primarily over the Internet (43 percent) was the same as for those who said they pay bills through the mail. Half said they trade investments mostly online, while only 15 percent said they still make investment trades in person, the study found. Meanwhile, identity theft worries have increased in response to recent high-profile security breaches. Two-thirds of single and married adults with dependent children said they were more concerned about online identity theft now than they were a few years ago, as did eight out of 10 retirees, or so-called empty nesters who have grown children, said Richard Kosinski, who works with Yahoo's advertisers in the financial services sector. However, the increase in e-mail fraud and phishing--techniques used to get sensitive information by, for instance, luring people to fake Web sites and prompting them to type in their data--is not so worrisome that it is scaring people away, he said.

13

One in five single or married people with dependent children surveyed said such fraud has not caused them to avoid accessing their financial information online, while one in three retirees and empty nesters said the same. "One of the key findings of the study is that the Internet is the leading medium for most financial activities," Kosinski said. RSA SECURITY ANNOUNCES KEY FINDINGS FROM ANNUAL FINANCIAL

INSTITUTION CONSUMER ONLINE FRAUD SURVEY Report shows 73% of account-holders feel financial institutions should deploy stronger authentication, and 89% believe banks should monitor online banking sessions for irregular activity. Bedford, Mass., March 14, today released key findings from its annual Financial Institution Consumer Online Fraud Survey. Conducted in November 2005, the online survey asked 402 U.S. adults for their opinions on online banking authentication and e-mail fraud, such as phishing. Key results of the survey include: * 73% of account-holders believe that financial institutions should replace username-andpassword log-in with stronger authentication for online banking * 89% of account-holders would like their banks to monitor online banking sessions for signs of irregular activity or behavior similar to the way that credit card transactions are monitored today * 59% would like their bank to contact them when something suspicious is detected * 79% of account-holders are less likely to respond to an e-mail from their bank due to scams including phishing; this is up from 70% in the2004 survey * 65% of account-holders have seen either 'a slight increase' or 'no change' in the amount of phishing e-mails they have received. 14

The RSA(R) Cyota Anti-Fraud Command Center (AFCC), which scans over one billion e-mails per day confirms: the number of phishing attacks has remained close to 2,500-3,300 attacks per month for the last eight months, with only a small increase each month. "It is important to preserve the speed, simplicity, ease of use and convenience of the online banking channel. Consumers seem to feel comfortable with the notion of their financial institution monitoring their online activity and contacting them when something suspicious is detected, just as they've become accustomed to for years in the credit card space," said Chris Young, senior vice president and general manager of RSA Cyota Consumer Solutions. When asked for their views on online banking authentication, 73% of respondents answered that they feel banks should use some kind of stronger authentication than basic and static usernamesand-passwords for online banking. When presented with several options, including hardware tokens, watermarks for mutual authentication, and risk-based authentication, the majority of respondents (74%) selected risk-based authentication as their preferred method. Risk-based authentication involves a behind-the-scenes assessment of the user's identity based on factors including log-on location, IP address and transaction behavior -- which can be supplemented with out-of- band phone calls or secret questions for transactions that are deemed high- risk. -- 43% responded that they would use a token if the bank provided one for free. -- 55% responded that they would like to use a watermark for reverse authentication; 46% felt that it is most important to see the watermark on any computer they log-in from, and not just their primary computer. Account-holders expect their banks to monitor online banking activity According to the survey, 89% of account-holders would like their banks to monitor online banking sessions for signs of irregular activity or behavior -- similar to the way that credit card transactions 15

are monitored today, and 59% feel that banks should contact them if any suspicious activity is detected. In addition, 52% felt that their bank should be liable for fraud executed within the online banking site. Trust in the e-mail channel continues to drop; phishing is here to stay 79% of account-holders expressed that, as a direct result of scams such as phishing, they are less likely to respond to an e-mail from their bank -- up from 70% in November 2004. In addition, 65% of account-holders have seen either a slight increase or no change in the amount of phishing emails they have received. The Company's 24x7 AFCC concurs that the amount of phishing attacks it has monitored has hovered around the 2,500-3,300 per month mark for the past eight months, with only a slight increase each month. This is in contrast to its November 2004 survey, in which consumers said that the number of phishing attacks had doubled between April and November 2004. While this trend affirms that the explosion of phishing attacks seen in 2004 has died down, it also confirms that phishing is not a passing trend: it is an entrenched type of fraud that is not going away. The survey also shows that account-holders are looking to their banks and their ISPs to protect them from phishing: 45% of account-holders feel that an ISP blocking service for phishing would be effective, and 68% would like their ISP to offer such a service. The surveys mentioned were commissioned by Cyota prior to the RSA Security acquisition in December 2005, and administered by Infosurv, an online market research company.

16

BACKGROUND AND BRIEF HISTORY OF THE BANKING SECTOR IN NIGERIA


The Nigerian financial services have undergone fundamental change in the past two decades. These changes have radically redefined the structure, number of players and levels of competition in the industry. The main driver of these changes is technology, which will continue to play a critical role. All financial services whether developed or imagine perform two fundamental functions (Fry 1995).

1.

Administering a countrys payment mechanism

2.

Intermediating between savers and investors.

In the evolving market, while the fundamental principle of strategy still applies, the explosion of capabilities and use of electronic networking and other multiple services delivery channels are forcing organizations to think about business in new ways. Some banks are gradually becoming uncompetitive since they do not have the means to deliver banking services at real time across their branches network. Also, the attitudes of the members of the staff to customer do not help matters. It then therefore follows that apart from efficient technology platform, change in attitudes of operators is a son-qua-non for improved service delivery standard.

Two important factors have no doubt contributed immensely to the need for development of the Nigerian banking industry. These factors include:

1. Revolution in telecommunication (mobile telephone e.g. GSM) 2. Information technology (IT)

17

Of these two forces, bankers will do well to concentrate more on the role information technology, since this is the only driving force that he can readily control. Therefore, it is obvious that information technology through the deployment and implementation of an online banking system will play a major role in maintaining a competitive edge. One aspect of computer technology that could make this a reality is networking. The impact of networking will ensure the integration of all departments, regional admiration offices and the key branches on the network. It will also make a reality, the dream of taking banking to the customers doorsteps and abode. In essence, networking has made the electronic global banking a reality and not just a dream. The banking industry has always been one of the largest users of information technology. This is understandable in view of the large amount of information management carried out by banks on a daily basis. This has led to online banking or what is referred to as electronics banking in todays technology. In the information age, the electronic bank has come to stay. Banks have come to stay. Banks have come a long way from the days of ledger cards and manual filling systems. Every bank now wants to be an electronic bank. The transition from batch processing to any semblance of networking or online processing was painfully slow and disparate, until 1986. With the deregulation in the banking system in Nigeria, there was a proliferation of many new banks with fewer branches. These banks were sophisticated in operation and its attempt to embrace information technology was geared towards efficient and faster services right from their inceptions. As a result, there was increased market pressure on the traditional banks to innovate and adopt new technology as customers began to demand more sophisticated product and increased efficiency in service delivery. Some of the large banks were not left out of this competition pressure and responded by aggressively pursuing expanded products and market opportunities even beyond their frontiers.

18

DEPARTMENT WITHIN THE BANKS


Generally, most of not all banks have the outline below sections at their branch platform, and covenant university bank is not an exception. TELLER SERVICES: this actually is the core of the everyday banking transaction CUSTOMER SERVICES: forms the core for the provision of solution to customers requests. OPERATION SUPPORT: handles the clearing system of the bank. FOREIGN DEPARTMENT: deals with the international banking services such as foreign currency transfer, domiciliary accounts as well as acting as a bureau de change ADMINISTRATIVE DEPARTMENT: deals directly with the up keep of the staff welfare, provision of stationery as well as beautification of the banking environment. ADVANCE DEPARTMENT: deal with the handling of loans and risk assets management services. TYPING POOL: deals with the handling of the banks secretarial duties.

19

CHAPTER3
SYSTEMS DESIGN/DESIGN METHODOLOGY 3.1 DATABASE DESIGN
The database schema defines the way the users view the data. It is called a logical view of the database. The schema is merely a logical representation of the data and its relationships. The use of keys, embedded pointers, and chains are means of physically implementing the desired logical relationships. A key is a data element or group of data elements that uniquely identify a record from all others of the same type. An embedded pointer is a data element within the database record that contains the address/location of a related record in another part of the database.

The figure below represents a schema showing a logical representation data and relationships at it relates to the application that is to be developed. TABLES AND RELATIONSHIPS LOGIN Account Number Pass code Balance DESCRIPTION OF TABLES STATEMENT Account Number Pass code Tran Type Amount Date

DATABASE:

Serial No

20

DATABASE: Create database

LOGIN TABLE: Create table login { Account_Number Password Balance Serial No} } int constraint pk-accno primary key(Account_Number) varchar (25) int, int constraint id-ser identity (1, 1)

Create table statement ( Account_Number Login, Password Tran type Amount Date ) varchar (25), varchar (25) default Deposit, int, dateline default (getDate ()) int constraint fk-accno foreign key(Account-Number) references

21

3.3 DESCRIPTION OF TABLES


Data constraints/triggers/validation tables 1. The ATMLogin table: has a field i.e. Serial No that allows automatic increment of numbers. 2. The statement table has a date field that makes use of the Date function call i.e. gets the system date.

3.4 ERD: (ENTITY RELATIONSHIP DIAGRAM)


Entity can be seen as anything that can be distinctly identified. The entity in this scenario is the customer of the bank.

The diagram below shows the attributes that the entities of this system should have:

Statement

Login Account Numbers

Account Number

Password

Passwords

Transaction type

Balances

Amount

Serial Numbers

22

CUSTOMER REQUIREMENTS as indicated in the ERD DIAGRAM ABOVE 1. List of inputs into the system Account Number Password Amount

2. Lists of outputs from the system Account Balance statement Mini-statement report

3.5 INTERFACE DESIGNS (FORMS) FORMS


Forms are used to input data for each table which form the database of the system. For this reason, it discussed under the design. A well-designed form satisfies the criteria for consistency, flexible entry, economy and organization. List of Forms to be created are as follows: 1. DefaultPage.java 2. ATMEntryForm.java

Form Name ATMEntryForm.java DefaultPage.java

Description Used For accounts

registering

new

Controls on the form Input text fields, radio command/push buttons Input text fields, radio command/push buttons

buttons, buttons,

Used for transactions

23

3.6 DEVELOPMENT CYCLE


When creating the system it is necessary to maintain the integrity of the bank, ensure that customers are provided with the services they need and that the information been provided is valid.

3.6.1 PROCESSES INVOLVED WHEN A CUSTOMER IS CREATING ACCOUNT


1. A Customer enters his or her information, the information go to the middle tier (Entry process2), which checks for validity of the form.

2. The middle tier checks if data are entered into the fields.

3. Ensuring the data enters, it then checks if the password is not less than 5 letters and also makes sure the pass code and repass code are equal.

4. Ensuring all this, it then checks if the opening balance is more than 500 and also makes sure the user enters a number

5. Having considered these conditions, the (middle tier) opens a connection to the database and puts in the valid information of the user and prints it out.

24

Enter customers information

Connect to Dbase And prints out

Entry process to validate form

Activity diagram

25

3.6.2 STEPS INVOLVED WHEN A CUSTOMER TRIES TO MAKE A TRANSACTION


1. The customer fills in the form; the middle tier (counter2) checks if fields are not left blank, ensuring that none of the space is left blank; it goes on to validate the data entered. 2. Counter2 checks validity of the user base on the account number and pass code specified when the user logs on. 3. It checks the type of transactions, depending on the user, could be deposit, withdrawal, balance check or mini statement. 4. The transaction type is deposit, it takes in new value and add to the old values and updates the login table. 5. The transaction type is withdrawal, it takes the old value, subtracts it with the new value which is stored in a container. 6. They transaction type is balance, takes the balance from the database on the account number and pass code. 7. The transaction type is the mini statement, collects all the records from the database through the use of the account number and password and also displays the available balance from the database. 8. Finally Default Page links to Counter and also provides a back link to home page and new account Entry Form

26

ACTIVITY DIAGRAM

Customers login

Counter 2 validates the field

Statement page/transaction type

Deposit

Withdrawal Subtract new amount from old balance and update table

Mini statement

Balance Check balance form the table only

Add new amount to old amount and update the table 27

CHAPTER FOUR
DESIGN IMPLEMENTATION 4.1 PREAMBLE
The implementation process includes phases for programming, system specification, testing, installation and post implementation evaluation. Implementation is the coordination of the user department and the data processing department in getting the new system into operation. It is a time in which a program must be designed to conform to the requirements set out in the system specification. The details on the system specification are now properly planned out with the output result being produced.

4.2 IMPLEMENTATION METHODS


This method usually is employed when changing over from the existing system to a new system it is also referred to at times as SWITCH METHODS.

FOUR TYPES OF CHANGE POWER METHODS: 1. PARALLELSWITCHING:


This is the choice for the system that is replacing existing system. In this method, the former system operates unchanged when the system is first installed and both are running for a whole. The output of both systems is then compared until discrepancies are resolved.

28

2. DIRECT/IMMEDIATE SWITCHING
This is a method whereby the old system is brought to an end and the new system implemented. Then for as much as such a system is to be successful, the computer system must have been thoroughly tested and proven before the commencement of its operation.

3. GRADUAL SWITCHING
Certain parts of the system are installed at first, and segment action may be based on time cycles with daily processing proved out before the end-of-month processing types.

4. PILOT SWITCHING
This is a situation where the new system is run with previous data so that result can be compared with the old.

4.3 DEPLOYMENT OF THE SYSTEM


The system can be deployed using the following method the parallel switching method. The change over from the existing system to the proposal system is necessary after the system has been tested and proved to be efficient. The recommendation methods for the change over are the parallel conversion, which make it possible for the management to cross check the result.

4.4 PROGRAM SPECIFICATION


A starting requirement which is fundamental to the implementation of our design details is:

1) The programming language must be java programming language.

29

2) A web design tool that can interact with the database, will display text and other format, and will communicate effectively with a web server.

4.5 PROGRAM MODULES:


This application will consist of the following modules: Modules to Calculate Deposit Transaction Modules to Calculate Withdrawal Transaction Modules to display Account Balance and Mini-statement Account Report Modules to Record New Account Holders Registration

4.6 CHOICE OF PROGRAMMING LANGUAGE USED?


Based on the above specification, the choice of programming language for this project includes java language coupled with Microsoft SQL. The validation is done on the server side with the help of servlet.

JAVA PROGRAMMING LANGUAGE


Java is a powerful programming language, it is a portable language and can run on different computers. Java programs go through five phases to be executed. These are editing, compile, load, and verify, execute.

SERVLET: This work can only be viewed with the help of servlet which serves as the server. Servlet has become so popular they are now supported directly. All servlets must implement the servlet interface of javax.servlet. 30

MICROSOFT SQL
Microsoft SQL is a powerful program to create and manage the database. It has many built in features to assist in constructing and viewing information. SQL is much more involved and is a more genuine database application than other programs. Microsoft SQL serves as a database which stores, updates, validates and keeps information about the type of information and the type of transaction being done and when it is done and how it is done.

HYPERTEXT MARK UP LANGUAGE (HTML)


HTML was invented as a means of distributing non-linear text, called hypertext, to multiple points across the internet. One documents links to another through pointers called HYPERLINKS.

HYPERLINKS are embedded instruction within a text file that link it to separate file. The global text of linked document across the existing internet framework grew into what is known as the World Wide Web (WWW).

Hypermedia is an extension of hypertext it includes images, video, audio, animation and other multimedia data types, which can be incorporated into HTML documents. The web can be accurately described as a hypermedia system.HTML is a cross platform language that works on windows, and UNIX platforms.HTML and web are client/server systems. A mark up language is very different from a programming language. Program files and data files exist separately in traditional applications. In a mark up language, the instruction and data resides in the file. In

31

addition, HTML does not provide data structures or internal logic, as do procedural languages such as C or Pascal.

HTML is easier to use and has become the standard method of encoding information for web documents.HTML facilitates data exchange through a common document format across different types of computer systems and networks on the web. HTML interpreters are programs that HTML pages render them to user as text programs formatted in accordance with the embedded instructions e.g. Netscape Nangator and Microsoft Explorer, these two program are called web browsers.

CREATING AN HTML PAGE


HTML document can be created in text editor, including the windows platform editor, Notepad. Any formatting instruction embedded in a file by a world processing program for example will prevent the file from functioning as an HTML document. if you are creating your page for use on the web you will eventually need to upload the file to a web sewer, which is sewer specifically designed to handle Hypertext Protocol (HTTP) request.

UNDERSTANDING LINKS
What makes the World Wide Web a web is the links that connect page to other files across the internet? The ability to create hyperlink is in fact that more fundamentals than the ability to include multimedia objects in your HTML documents. An even user with non-graphical browsers. The critical element is the ability to move from page by clicking on linked text or images. A text hyperlink is a section of text that is specifically tagged as a link. An image or icon may also be enclose in anchor tags and used as a link to another. In both cases clicking the link will take the user to the destination of the link. You can link not only to external files, but within the current

32

files as well. On a long program, you can jump between sections of the page with links such a link is called an internal link. An internal and external link can be created with anchor tag.

THE ANCHOR TAG


Links are created with the anchor tag {A}. The anchor tags are container tags surrounding the text or image (or both) to be used to specify the links hypertext reference. You can specify a fully qualified URL or a relative URL reference file, page or site. The syntax for using the anchor tag to create a link is as follows: {A HREF=URL} linked text or image (or both) {/A}

CREATING AN ACCESSIBLE PAGE


An accessible web page has two characteristics: first, it should have a user friendly interface or front end. This interface requires the use of techniques such as conservative cascading style sheets and web-safe color palette. Secondly, the page should perform across a network.

4.7 ONLINE BANKING SYSTEM REQUIREMENTS


HARDWARE REQUIREMENTS: 1. A PENTIUM 2 OR 3 500MgHz series minimum, 156 MB Ram and SVGA monitor SOFTWARE REQUIREMENTS: JDK1.3. 1 Java software, Jsdk2.1 Servlet software, IExplorer 5.0 and above

33

4.8 SYSTEM MAINTENANCE


The maintenance of system improves its life span and efficiency of the program. This maintenance is necessary for both the hardware and software aspects of the system. A system consultant can be called on regular basis to perform system check.

HARDWARE MAINTENANCE
These are: 1) The system must be continually used in well ventilated and air conditioned room.

2) All devices should be properly connected to the appropriate power supply.

3) To prevent malfunctioning of the system, food and drinks should be kept away from the computer and its peripherals.

SOFTWARE MAINTENANCE
These are: 1) Back up of the program should be made available and kept in cool place to avoid corruption 2) The programmer should be contacted in case of problems with the program or qualified system analysts

34

4.9 USER TRAINING


The users of this application would need some training in order to have knowledge of how to use the system effectively, but the duration or time will depend on the knowledge of the user on the use of computer systems. If the user has no prior knowledge on the use of the computer system, the training will have to start form the introduction to basic knowledge of computer before the user is taught how to use the new system efficiently. On the other hand if the user has basic knowledge about computers it will be easy for the user to use this application because the programming language used java has graphic user interface features that makes it very easy to use the system.

4.10 SYSTEM SECURITY


Security is generally defined as the freedom form danger or as the condition of as the condition of safety. To ensure the protection of data in a the system against unauthorized, disclosure, modification, or destruction.

OBJECTIVES OF SYSTEM SECURITY INCLUDE THE FOLLOWING: 1. Confidentiality is preserving authorized restrictions on information access disclosure, including means for protecting personal privacy and proprietary information A loss of confidentiality is the unauthorized disclosure of information. 2. Integrity Guarding against improper information modification or destruction and includes ensuring information non-repudiation and authenticity A loss of integrity is the unauthorized modification or destruction of information. 3. Availability: Ensuring timely and reliable access to the use of information A loss of availability is the disruption of access to the use of information in an information system.

35

The potential problems that can arise from a poorly secured system include the following: 1. Denial of service 2. Compromising the integrity of the information 3. Disclosure of information To avoid the problems stated above: The most common form of authentication (username/passwords) can be in use in this application. Users identification and password for the application are known by the authorized user. The users identification and password will enable them to use the application and access will be denied to an unauthorized person from accessing the records. In this application the user identification is the ACCOUNT NO and a unique PASSWORD. Passwords are used to verify that the user of an ID is the owner of the ID. The ID password is unique to each user and provides a means of holding users accountable for their accountable for their activities on the system.

36

CHAPTER FIVE
5.1SUMMARY
Online banking has come a long way in the history of banking in the developed world. Its rapid development has been greased by the wheels of the evolution in the computer and information technology, which has witnessed immense versatility and variety that makes it difficult to be isolated from the general technology driven financial services. Further more in advanced countries, online banking in its various dimensions has been fine-tuned into sublime and sophisticated services that offer profound convenience, safety and ease of transaction made available to all calibers of customers at the cheapest rate possible.

5.2 DISCUSSION
Banks compete to acquire more customers because it is the customers money that keeps a bank running.

People will use a bank that has alternative products that will make banking less stressful. The efficiency and speed which a bank provides its customers with his account details is a determinant factor for choosing a bank.

Banks are constantly trying to device carrier ways of providing customers with their account information. Provision of access to this information is thus very vital for the success of a bank. The advantage of this project is that customers can view his account details and avoid the problem of congested banks. Cashless transactions are the new ways of carrying out transactions, especially those involving large amounts of money.

37

With time and at the rate of which information technology is expanding, all these components will soon become reality in Nigeria.

5.3 RECOMMENDATION
With regards to the introduction of the new system to the organization, there is need for review and maintenance as well as adequate provision made to ensure that the following steps are taken into consideration.

1 .There should be regular and constant measurement of system performance. Hence, there is a need to regularly see that the operation of the new system is not hindered in any way neither in any of the materials used in completing its working capability be carelessly handled.

2. Training of staff who will serve as users in operating the new system is also recommended for proper and effective usefulness of the new system in the organization.

3. Constant system testing should be done and constant usage of the new system will serve as away of testing the continuous perfect working condition of it.

4. An agreement should be reached for regular maintenance of the system which will make the new system to last longer. Likewise, to ensure the security of the new system and materials involved.

5. Unauthorized and untrained personnel should not be permitted by the departmental head to work with the new system. This help to reduce the risk of introducing viruses, which are delicate into the system, and to avoid these viruses from destroying the entire system.

38

5.5 CONCLUSION
This application promises to solve problems such as inconveniences and danger of carrying huge some of money around and it will reduce the problem of waiting in the bank for hours before transactions can be completed. It is a very attractive product that banks in Nigeria can incorporate into their systems in order to acquire more customers because of its efficiency. This step will definitely transform the nations banking industry.

39

REFERENCES
Banking broadcasts, A Magazine For banking and IT professionals, kindle banking system publications series. Electronic Banking (2002): Times Magazines, February 8,pp 50-51. Technology and Banking (1999): The Guardian Newspaper, Monday December 6 pp. 15 Okoloba E., Okpara S, Saleh S, (2000): Electronic banking CIBN (1998) The Challenges of Information Technology The Nigeria Banker Iyamolere S. (1998) Technology and Banking in the next millennium Security fears - Computer Business C:\Documents and Settings\Web banking threatened by consumer http://sev.prnewswire.com/computer-electronics/20060314/NETU03314032006 FIL-103-2005Authentication in an Internet Banking Environment. URL accessed on 2006-04-02. Entrepreneur, Oct, 2005 by C.J. Prince Elinor mills CNET News.com Published on ZDNet News: June 23, 2005,

40

APPENDICES PROGRAM LISTING:


import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http*; public class My_DefaultPage extends HttpServlet { //This page is displayed with the help ofthe servlet method doGet() //it creates a form for existing users to fill and send their transactioninforamtion Public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException { resp.setContentType("text/html"); PrinterWriter out=resp.getWriter(); out.print/n("<html>"); out.print/n("<head><title>Covenant University Community Bank</title>"); out.print/n("Script language='javaScript'>"); //This script function disables the Amount field if the balance check or mini statement options are checked out.print/n("function setAmount(){"); out.print/n("if(document.form1.radioBtn.value=='Balance Check'//document.form.1.radioBtn.value== Mini Statement)"); out.print/n("{document.form1.amount.disabled=true}"); //This script function enables the Amount field if the withdrawal or deposit options are checked out.print/n("function disableAmount(){"); out.print/n("if(document.form1.radioBtn.value =='Withdrawal'//document.form1.radioBtn.value=='Deposit')"); out.print/n("{document.form1.amount.disabled=false}"); out.print/n("</scrpit><Head>"); out.print/n("<body bgcolor='Orange'text='red'>"); out.print/n("<center><b><font size='6'<marquee>COVENANT UNIVERSITY COMMUNITY BANK</MARQUEE><BR> COUNTER<br></font></b></center>"); out.print("<form name='form1 method='post' action='M_Counter2'>"); out.print/n("<center>"); out.print/n("<table>"); out.print/n("<tr>"); out.print/n("<td>"); out.print/n("<p>ACCOUNT NO:</P>"); out.print/n("</td>");

41

out.print/n("<input type='text'name='acc'"); out.print/n("/<td>"); out.print/n("</tr>"); out.print/n("</tr>"); out.print/n("</td>"); out.print/n("<p>PASSWORD:</P>"); out.print/n("</td>"); out.print/n("<td>"); out.print/n("input type='PASSWORD'name='pass'>"); out.print/n("</td>"); out.print/n("</tr"); out.print/n("<tr>"); out.print/n("<td>");out.print/n("<td>"); out.print/n("<p>TRANSTYPE:</P>"); out.print/n("</td>"); out.print/n("</td>"); out.print/n("input type='radio' name='radiobutton' value='witdrawal'>"); out.print/n("font size='3'<b>Withdraw"); out.print/n("<input type='radio' name='radiobutton' value='balance enquiry'>"); out.print/n("Balance"); out.print/n(",input type='radio' name='radiobutton' value='ministatement'>"0; out.print/n('Ministmt"); out.print/n("<br>"); out.print/n("<input type='radio' name='radiobutton' value='deposit'>Deposit</b></font></td>"); out.print/n("</tr>"); out.print/n("<td>"); out.print/n("<td>"); out.print/n("<p>AMOUNT:</P>"); out.print/n("</td>"); out.print/n("<td>"); outprintln("<in out type='text' name='amt'>"); outprintln("</td>"); outprintln("</tr>"); outprintln("</tr>"); outprintln("</td width='41%'>"); outprintln("<input type='submit' name='Submit' value='PROCESS THE TRANSACTION'>"); outprintln("</td>"); outprintln("</td width='59%'>"); outprintln("<input tye='reset' name='Submit2' value='Reset'>"); outprintln("</td>"); outprintln("</tr>"); outprintln("</table>"); outprintln("</center>"); outprintln("<a href='http://localhost:8080/servlet/M_ATMEntryForm'>SIGN UP</a>"); outprintln("</fom>"); outprintln("<p>&nbsp</p>"); outprintl("</body>"); outprintln("</html>"); } }

42

//THIS CODE IS FOR MY COUNTER 2 //Importing the necessary package to be used import java.io.*; import javax.servlet.*; import javax.servlet.http.*; impirtjava.sql*; //creating the class public class M_counter2 extends HttpServlet{ //Global variables to be use static Connection connection; statement statement ResultSet result; //Constructor of the class public M_ATMCounter2(){ try{ //loadind and registering the driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Establishing the connection connection= DriverManager.getConnection("Jdbc.Odbc:covenant_university_community_Bank","sa""); statement =connection.createStatement(); }catch(SQLException sqlex){} catch(ClassNotFoundException cnfex){} } //Initialising the servlet public String getServletInfo(){ return"ATMCounter Servlet"; } //calling the method to be used in the program public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException.ServletException{ response.setCounterType("text/html"); PrintWriter out=new printWriter(response.getWriter()); //Creating an object of the type string //Ment to hold the values from DefaultPage String acc = (String)request.getParameter("acc"); String pass=(String)request.getparameter("pass"); String radiobutton=(string)request.getParameter("radiobutton"); String amt=(String)request.getParameter("amt"); int acctnolen=acc.length(); int passwdlden=pass.length(); if((acctnolen==0//(passwdlen==0)){ out.print/n("<html><head><title>Invalid Entry!!!</title></head><body bg color =Orange>");

43

out.print/n("<center><h4>Fields cannot be left empty</h4><br><center><h5>Try again</center></h5></center>"); out.print/n("<hr color ='blue'"); out.print/n("<a href='http://localhost:8080/servlet/My_DefaultPage'>Back</a>"); out.print/n("</body></html>"); else{ processData(out,acc,pass,radiobutton,amt); } } public void processData(PrintWriter out,String acc,String pass,String radiobutton,String amt){ //Converting the data to small letters(lowercase) acc =acc.toLowerCase(); pass=pass.toLowerCase(); radiobutton=radiobutton.toLowercase(); if(radiobutton.equals("balance enquiry")// radiobutton.equals("ministatement")) doAccountReaad(out,acc,pass,radiobutton); else{ try{ //Amt to integer data type int amount=Integer.parseInt(amt); queryDbase(out,acc,pass,radiobutton,amount); } catch(NumberFormatException nfex){ out.print/n("<html><head><title>invalid Entry!!!</title></head>body bg color=Orange>"); out.print/n("<center><h4>Invalid amount type specified!...please enter a number</h4><center>"); out.print/n("<hr color='blue'>"); out.print/n(",a Href= 'http://localhost:8080/servlet/My_DefaultPage'>Back</a>"); out.print/n("</body></html>"); return; } } } //Method ment to chack if account number and password exist public void query Dbase(PrintWriter out,String acc,String pass,String radiobutton,int amount){ //Retrieving data from the databaase String str="select* form Login_table where AccNp+"+acc+"[password]="'+pass+""; result=statement.executeQuery(str); if(result.next()){

44

//If it exist,call this method startTransaction(out,acc,pass,radiobutton,amount); } else{ //Error to be displayed, if it does not exist out.println("<html><head><title>Invalid Entry!!!</title></head><body bg color=Orange>"); out.print/n("<center><h4>Account does not exist </h4></center>"); out.print/n("<hr color='blue'>"); out.print("<a href='http://localhost:8080/servlet/My_DefaultPage'>Back</a>"); out.print/n("</body></html>"); } }catch(SQLEXCEPTION Sqlex){ out.print/n("<html><head><title>Exception</title></head><body bg color=Orange>"); out.print/n(sqlex+" <h4><center>Occured</center></h4>"); out.print/n("<hr color='blue"'); out.print("<a href='http://localhost:8080/servlet/My_DefaultPage'>Back</a>"); out.print/n("</body></html>"); } }

public void startTranscation(PrintWriter out,String acc,String pass,Strimg radiobutton,int amount){ //Checking if transaction type is withdrawal or deposit. if(radiobutton.equals("withdrawal")//radiobutton.equals("deposit")) doTran(out,acc,pass,radiobutton,amount); } public void doTrans(PrintWriter out,Stringass,String pass,Strimg radiobutton,int amount) { //Cheching if transaction type is withdrawal or deposit. if(radiobutton.equals("withdrawal")||radiobutton.equals("deposit")) dotrans(out.acc,pass,radiobutton,mount); } public void do Trans(PrinyWriter out,String pass,String radiobutton,int amount){ try{ //Retrieving data base on the accout number and password of the user. String str ="select* from Login_table where AccNo="=+acc=+"

45

and [password]="+pass+"'; int newbal=0; result = statement.executeQuery(str); result.next(); int oldbal =result.getInt("Balance"); if(radiobutton.equals("witdrawal")){ if(oldbal > amount){ newbal=oldbal.amount; out.print/n("<html><head><title>Newbal</title></head><body bg color=Orange>"); out.print/n("<center><h4>Your Withdrawal Amount is <font color='red'>"+amount+"</font><br>"); out.println("Your current balance is<font color='red'>"+newbal+"</font></h4></center>"); out.println("<hr color='blue'>") out.println("<a href='http://localhost:8080/servlet/My_Defaultpage'>Back</a>"); out.println("</body></html>"); //Updating login table. str="Update Login_table set Balance="+newbal + "where AccNo="+acc +"and [password]="=PASS="; statement execute(str); //inserting new values in statement table str="inserting into statement_table(AccNo, [Password],TranType,Amount)values("'+acc+"',"'+pass+"',"'+radiobutton+"',"'+amount+")"; statement.execute(str); } else{ int newbal=0; result=statement.executeQuery(str);r RESULT.next(); int oldbal=result.getInt("Balance"); if(radiobutton.equals("witdrawal){ if(oldbal>amount){ newbal=oldbal-amount; out.print/n("<html><head><title>New bal</title></head><body bg color=Orange>"); out.print/n("Your current balance is <font color='red'>"+newbal+"</font></h4></center>"); out.print/n("<hr color='blue'>"); out.print/n("<a href='http://calhost:8080/servlet/My_DefaultPage'>Bacxk</a>");

46

//updating login table str="update Login table_table setBalance="+newbal+"where AccNo="'+acc+'"and[password]="'+pass+""; statement.execute(str); //inserting new values in statement table str="Insert into Statement_table(AccNo, [password],Trantype,Amount)values("'+acc+"'+pass+","+radiobutton+","+amunt+")"; statement.execute(str); } else{ //Message displaying when error occur out.print/n("<html><head><title>Small money</title></head><body bg color=Orange>"); out.print/n("<center><h4>Your account balance is less than amout to be drawn<font size='4'>!!! </font><br>CANNOT withdraw<br>"); out.print/n("You have:<font color='red'>"+oldbal+"</font>left</h4></center>"); out.print/n("<a href='http://localhost:8080/servlet/My_DefaultPage'>Back</a>"); out.print/n("</body></html>"); return; } } else{ //if transaction type is deposit,do this newbal=oldbal+amount; out.print/n("<html><head><title>New Amount</title></head><body bg color=Orange>"); out.print/n("<center><h4>Your Deposit Amount is<fontcolor='red'>"+amount+"</font><br>"); out.print/n("Your current balance is<font color='red'>"=newbal+"</fot></h4></center>"); out.print/n("<hr color='blue'>"); out.print/n("<a href= 'http://localhost:8080/servlet/My_Default'>Back</a>"); out.print/n("</body></html>"); //Updating login table str="Update Login_table st Balance="newbal+"where AccNo="'+acc+"'and[password]="'+pass+""; statement.execute(str); //inserting new values in statement table str=?"Insert into Statement_table(AccNo, [password],Trantype,Amount)values("'+acc+","+pass+","+radiobutton+","+ amount+")"; statement.execute(str);

47

} } catch(SQLExceptionsqlex){

outprint("<html><head><title>Exception</title></head><body b color=Orange>"); out,print("<h4><center>"+sqlex+"Caught</center></h4>"); out.print("<hr color="bluue"'); out.print("<a href='http://localhost:8080/servlet/My_DefaultPage'>Back</a>"); out.print/n("</body></html>); } } public void doAccountRead(PrintWriter out,String acc,String pass,string radiobutton){ //check for user validity try{ String str="select*from Login_table where AccNo="'+acc+"'and[password]="'+pass+""; result=statement.executeQuery(str); if(result.next()){ //if result exist it calls this doAccountStatement(out,acc,pass,radiobutton); } else{ out.print/n("<html><head><title>Invalid Entry...</title></head><body><center><h1>"); out.print/n("AccountInvalid!!!!!<hr><br>Account Does Not Exist!!!<i>please register</i?./h1>); out.print/n("<a href= 'http://localhost:8080/servlet/My_DefaultPage'></i></a>"); out.print/n("</center></body><html>"); } } catch(SQLException sqlex){ out.print/n("<html><head><title>Exception</title><body bg color=Orange><h4>"); out.print/n(sqlex+"Returned </h4>"); out.print/n("<hr color+'blue'>"); out.print/n("<a href='http://localhost:8080/servlet/My_Default'>Back</a>"); out.print/n("</body></html>"); } } public void doAccountStatement(PrintWriter out,String acc,String pass,String radiobutton){ //checking for the type of transaction if(radiobutton.equals("ministatement")){ //Retrieving data from the database base on the account and password of the user

48

String str="select Date Trantype,Amount from statement_table where AccNo="'+acc+"'and[password]="'+pass+""; String str1="select balance,SerialNo from Login_table wher AccNo="'+acc+"'and[password]="'+pass+""; try{ result=statement.executeQuery(str1); result.next(); out.print/n("<html>"); out.print/n("<head><title>Ministatement</title>"); out.print("</head>"); //JavaScript function ment for displaying the date and time base on the system time out.print/n("<script language="jscript'>"); out.print/n("var totDate=()"); out.print/n("var day=totDate.getDate()"); out.print/n("var month=totDate,getMonth()+1"); out.print/n("var year=totDate.getyear()"); out.print/n("var hour=totDate.getHours()"); out.print/n("var mins=totDate.getMinutes()"); out.print/n("var sec=totDate.getseconds()"); out.print/n("var period=(hour>=12)?'P.M':"A.M""); out.print/n("document.write('<b>Day: </b>')");

out.print("document.write('<b>+day+":"+month+':'+year+'</b>)"); out.print/n("document.write('<b><font color=brown>***********</font>\ +'Time:'+hour+':'+mins+':'+sec+':'+period+'</b>')"); out.print/n("</script>"); out.print/n("<bodybg color='lavender'text='purple'>"); out.print/n("<center>"); out.print/n("<h1>COVENANT UNIVERSITY COMMUNITY BANK LTD<H1>"); //Retrieving of data and aso applying names to coloumns out.print("Mini Stmt&nbsp;&nbsp;&nbsp;&nbsp;Sr.No:"+ result.getInt("serialNo")+"&nbsp;&nbsp;&nbsp;&nbsp;A/c.No:"+acc+"<br><br>"); out.print/n("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type Of transaction&nbsp;&nbsp;Amount in =N="); out.print/n("<hr width=90%>"); //closing the object and thesetof result. result.close(); out.print/n("<Table border=0 cellspacing=40>"); result=statement.executeQuery(str);

49

//Retrieving of next record while(result.next()){ out.print("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+result.getInt("Amount")+"\n"); } result.close(); //Retrieving data from the database String str2="select balance from Login_table where AccNo="'+acc+"'and [password]="'+pass+""; result=statement.executeQuery(str2); result.next(); out.print/n("&nbsp;("<tr><td><b>Avail Balance: </b></td><td></td><td></td><td></td><td></td><td><b><font color=blue>"+result.getInt("Balance")); out.print/n("</font><b></td></tr></table></center>"); out.print/n("<p align=right><a href='http://localhost:8080/servlet/My_Defaultpage'><i>Back</i></a></p>"); out.print/n("</body></html>"); } }catch(SQLException sqlex){ out.print/n("<html><head><title>Exception</title></head><body bg color=Orange><h4>"); out.print/n(sqlex+"Thrown.</h4>"); out.print/n("<hr color='blue"'); href='http:/localhost:8080/servlet/My_DefaultPage><i>Back</i></a>"); out.print/n("</body></html>"); } } } }

50

//This code goes for the entry process import java.io.*; import java.sql.*; import java.servlet.*; import javax.servlet.*; import javax.servlet.http.*; public class M_EntryProcess extends Http Servlet { String accStr,passStr,repassStr, balStr; String str, str2; int balv; Connection connection; PreparedStatement st; PrintWriter out; public M_EntryProcess (); { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection=DriverManager.getConnectio("jdbc:odbc:Covenant_University_Community_Bank_LTD ","sa"," "); }catch(SQLException cnfex){} } public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException { response.setContentType("text/html"); PrintWriter out=response.getWriter(); StringaccStr= (String)request.getParameter("acctxt").toLowercase(); String passStr= (String)request.getParameter("passtxt").toLowercase(); String repassStr= (String)request.getParameter("repasstxt").toLowercase(); String balStr= (String)request.getParameter("baltxt").toLowercase(); int accStrlen=accStr.length(); intpassStrlen=passStr.length(); int repassStrlen=repassStr.length(); intbalStrlen=balStr.lengthh(); if((accStrlen==0||(passStrlen==0)||(repassStrlen==0)||(balStrlen==0)) { out.print|n("<html><body bgColor=blue><center>h2>"); out.print|n("Please ensure all Fields are Entered"); out.print|n("<br>THANKS</h2><br>"); out.print|n("<a href='http://localhost:8080/M_EntryForm'><i>Back</i></a>"); out.print|n("</center></body></html>");

51

} else validateData(out,accStr,passStr,balStr); } public void validateData(PrintWriter out,StringaccStr,String passStr,StringbalStr) { try { balv=Integer.parseInt(balStr); if(balv<500) { out.print|n("<html><body bgColor=blue><center><h2>"); out.print|n("Please...your opening account balance must be greater than or equal to =N=500</h2><br>"); out.print|n("<a href='http://localhost:8080/servlet/M_EntryForm'><i>Back</i></a>"); out.print|n("</center><body></html>"); } else createAccount(out,accStr,passStyr,balStr); } catch(NumberFormatException nfex) { out.print|n("<html><body bgColor=blue><center><h2>"); out.print|n("Invalid money type...please re-enter Amount!</h2>"); out.print|n("<a href='http://localhost:8080/servlet/M-EntryForm'><i>Back</i></a>"); out.print|n("</center></body></html>"); } } public void createAccount(PrintWriter out, String accStr,StringpassStr, String BpbalStr0 { try { connection=DriverManager.getConnection("jdbc:odbc:Covenant_University_Community_Bank"," sa"," "); str="insert into login_table(AccNo,[password],balance) values(?,?,?)"; st=connection.prepareStatement(str); String a=accStr; String b=passStr; String c=balStr; st.setString(1,a); st.setString(2,b); st.setString(3,c); st.execute();

52

str2="insert into sttement_table(AccNo,[password],Amount) values(?,?,?)"; st=connection.prepareStatement(str2); st.setString(1,a); st.setString(2,b); st.setString(3,c); st.execute(); out.print|n("<html><body bgColor=orange><center><h1>"); out.print|n("Conhratulations!...</h1><h2>Your account has been created, Thank You!</h2>"); out.print|n("<a href='http://localhost:8080/servlet/DefaultPage'><i>Click Here to view account created</i></a>"); out.print|n("</center></body></html>"); }catch(SQLException sqlex) { out.print|n("<html><body bgColor=blue><h1>"); out.print|n(sqlex+",/h1>"); out.print|n("</body></html>"); } } }

53

//This other code is for the ENTRY FORM import.java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class atmentryform extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException{ res.setContentType("text/html"); PrintWriter out=res.getWriter(); out.print("<html>"); out.print("<script language='jscript'>"); out.print("function fun(){"); out.print(" document.form1.acctxt.value=parseInt(Math.random()*999999);"); out.print("</script>"); out.print("</head>"); out.print(" <body bg color='blue' onload='fun()'>"); out.print("<h1><center>Customer Entry Form </center></h1>"); out.print("<hr>"); out.print("<marquee><p size='2'>we give you the best in banking allover the world</p></marquee>"); out.print(" <center>"); out.print(" <form name=form 1 method=post action= http://locslhost:8080/servlet/M_ENTRYProcess>"); out.print(" <table>"); out.print(" <tr><td>Account No:</td><td><input type=text name=acctxt></td></tr>"); out.print(" <tr><td>Password:</td><td><input type=password nampasstxt></td></tr>"); out.print(" <tr><td>repassword:</td><td><input type=password name=repasstxt></td></tr?"); out.print(" <tr><td>Balance:</td><td><input type=text name=baltxt></td></tr?"); out.print("<tr><td><input type='submit' name='submit' value='submit'</td><td><input type='reset' name='reset' value 'reset'></td></tr>); out.print("</form>"); out.print("</center>"); out.print(",/body>"); out.print("</html>"); } }

54

DATABASE STUCTURES
DATABASE: Create database

LOGIN TABLE: Create table login { Account_Number Password Balance Serial No} } int constraint pk-accno primary key(Account_Number) varchar (25) int, int constraint id-ser identity (1, 1)

Create table statement ( Account_Number Login, Password Tran type Amount Date ) varchar (25), varchar (25) default Deposit, int, dateline default (getDate ()) int constraint fk-accno foreign key(Account-Number) references

55

PROGRAM INPUT AND OUTPUT:

56

57

58

59

60

61

62

You might also like