You are on page 1of 61

REGIONAL CENTRE ANNA UNIVERSITY TIRUNELVELI REGION TIRUNELVELI-7

UCI-76 SOFTWARE ENGINEERING LABORATORY

RECORD NOTEBOOK
BY MOHAMED AADHIL.M (109510016) M.TECH-DUAL DEGREE (CSE)

REGIONAL CENTRE ANNA UNIVERSITY TIRUNELVELI REGION TIRUNELVELI-7

BONAFIDE CERTIFICATE
Certified that this Software Engineering Laboratory (UCI-76) Record submitted for the award of Dual Degree B.Tech/M.Tech(CSE) is the bonafide work of...of Department of Computer Science and Engineering, Regional Centre, Anna University Tirunelveli Region in VII Semester during the period of July-November 2012. Date:

Signature of Faculty-in-Charge

Signature of HOD

Submitted for the Practical Examination held on ..

Internal Examiner

External Examiner

CHAPTER NO. 1. 2. 3. 4. 5. 6. 7.

NAME OF CHAPTER PROBLEM DESCRIPTION SRS DESIGN IMPLEMENTATION TESTING RESULT CONCLUSION

PAGE NO.

MARKS

SIGNATURE

ONLINE BANKING SYSTEM


PROJECT REPORT

CHAPTER 1

PROBLEM DESCRIPTION

Introduction

The objective of the project is to design and develop secure online Banking Application. This site enables the customers to perform the basic banking transactions by sitting at their office or at homes through PC or laptop. The customers can access the banks website for viewing their Account details and perform the transactions on account as per their requirements. With Internet Banking, the brick and mortar structure of the traditional banking gets converted into a click and portal model, thereby giving a concept of virtual banking a real shape. Thus today's banking is no longer confined to branches. E-banking facilitates banking transactions by customers round the clock globally.

The primary aim of this software is to provide an improved design methodology, which envisages the future expansion, and modification, which is necessary for a core sector like banking. This necessitates the design to be expandable and modifiable and so a modular approach is used in developing the software. Anybody who is an Account holder in this bank can become a member of online banking. He has to fill a form with his personal details and Account Number.All transactions are carried out online by transferring from accounts in the same Bank. The software is meant to overcome the drawbacks of the manual system.

CHAPTER 2

SOFTWARE REQUIREMENTS SPECIFICATION

Table of Contents
1.Introduction .......................................................................................................................................... 6 1.1.Purpose ................................................................................................................................. 6 1.2.Scope .................................................................................................................................... 6

2.Problem Description ............................................................................................................................. 6

3.Software Requirement and Specifications ............................................................................................. 7 3.1.Introduction .......................................................................................................................... 7 3.2.Existing System .................................................................................................................... 8 3.3.Proposed System ................................................................................................................... 9 3.4.Developers Responsibilities Overview................................................................................... 9 3.5.Functional Requirements ....................................................................................................... 9 3.6.Software and Hardware Specification .................................................................................. 10 3.6.1.Hardware ............................................................................................................. 10 3.6.2.Software .............................................................................................................. 10

4.Modular Description ........................................................................................................................... 10 4.1.Input Design ....................................................................................................................... 10 4.2.Input Stages ........................................................................................................................ 11 4.3.Input Types ......................................................................................................................... 11 4.4.Input Media......................................................................................................................... 11 4.5.Output Design ..................................................................................................................... 12 4.6.Output Definition ................................................................................................................ 12 4.7.Output Media ...................................................................................................................... 13

5.Requirement Specification .................................................................................................................. 13

1. Introduction:
1.1 Purpose: The main purpose for preparing this document is to give a general insight into the analysis and requirements of the existing system or situation and for determining the operating characteristics of the system. 1.2 Scope: This Document plays a vital role in the development life cycle (SDLC). As it describes the complete requirement of the system. It is meant for use by the developers and will be the basic during testing phase. Any changes made to the requirements in the future will have to go through formal change approval process.

2. Problem Definition
This system carries out account creation and transaction processing through internet that provides an entire range of banking services online. It contains mainly three modules namely accountlat creation, transaction and Reports. The first module is account creation for a new user. The account can be Savings account, Term (Fixed) account. The details of the customer and his account are being fed to the database through a registration form which is validated by the bank prior to addition to the database. Once the request is approved the user can remit the amount and open the account. The second module consists of the various transactions that the customer can carry out. The main transactions include deposit, withdrawal and money transfer. In this module bank administrator gives the user ID and password in order to perform online transactions. The user is also given the privilege to change his password which will be automatically updated to the database. Each account holder can deposit and withdraw money into the bank through this module. The withdrawal will be controlled by the rules of the account. The module also helps the account holders in transferring a particular sum of money from one particular account to another one through online facility. Here also, the amount transferred will be controlled by the rules of the account. The third module provides administrator to view all the details till to-date. It also contains money transaction details.

3. Software Requirement and Specifications: 3.1 Introduction 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. During this phase the existing system was studied. The data flow in the existing system was studied .As part of the analysis, various documents for account opening, money transferred issuing, Cash withdrawing, customer information reports, and transaction reports were all collected. These were used in later stages to design the computerized forms used the existing system was determined. The deliverable for this stage was documentation on the existing system. The system study is the first phase in the system life cycle. It involves studying the ways an organization currently retrieves and process data to produce information with the goal of determining how to make it better. For this, system analyst should develop alternative system and evaluate each terms of cost, benefit and feasibility. The term analysis, design and development are used in sequence, because in practice this sequence of steps used to construct computer based information system. System analysis includes the investigation and possible changes to the existing system. Analysis is used to gain an understanding of the existing system description and set of requirements for a new system. If there is no existing system, then analysis only defines the requirements. Development begins by defining a model of the new system and continues this model to a working system. The module of the system shows what the system must do to satisfy these' requirements. Finally, the data models are to a database and processed to user procedures and computer programs.

3.2 Existing System The system will check the users existence in the database and provide the set of services with respect to the role of the user. The application is based on three-tier architecture. The cipher key obtained will help to find the fraud application. The business logic helps in authenticating the application, authorizing the users and providing services. The technologies are chosen by keeping the compatibility and performance as the constraints for the application.

Further Drawbacks of the Existing System:


The following are the drawbacks of the existing manual System. Time Delay: In the existing system, information related to all transactions is stored in different registers. Since all the transactions are stored in different registers it takes lot of time to prepare different reports. Redundancy: As the information passes through different registers, each register is consolidated and sent to next register. So the same information is being tabulated at each register, which involves lot of complication and duplication in work, thus it causes redundancy. Accuracy: Since the same data is compiled at different sections, the possibility of tabulating data wrongly increases. Also if the data is more, validations become difficult. This may result in loss of accuracy of data. Information Retrieval: As the information is stored in the particular Format, it can only be retrieved in the same format. But if it is to be retrieve in different format, it is not possible. Storage Media: In the existing system, data transaction being stored on too long registers it is very difficult to refer after some time. Reports: At the various reports are tabulated manually. They are not such Attractive and require

more time. They do not provide adequate help in maintaining the accounts. Enquiry: Enquiry for different level of information is much more difficult. On Line enquiry of data is not possible.

3.3 Proposed System System analysis will be performed to determine if it is feasible to design information based on policies and plans of the organization and on user requirements and to eliminate the weaknesses of the present system. General requirements are: 1. The new system should be cost effective. 2. To augment management, improve productivity and services. 3. To enhance User/System interface. 4. To improve information qualify and usability. 5. To upgrade systems reliability, availability, flexibility and growth potential.

3.4 Developers Responsibilities Overview


The developer is responsible for Developing the system, which meets the SRS and solving all the requirements of the system? Demonstrating the system and installing the system at client's location after the acceptance testing is successful. Submitting the required user manual describing the system interfaces to work on it and also the documents of the system. Conducting any user training that might be needed for using the system. Maintaining the system for a period of one year after installation

3.5 Functional Requirements:


Inputs: The major inputs for Anti Phishing The Fraud Detection in Online Banking can be categorized module -wise. Basically all the information is managed by the software and in order to access the information one has to produce one's identity by entering the user-id and password. Every user has their own domain of access beyond which the access is dynamically refrained rather denied. Output: The major outputs of the system are tables and reports. Tables are created dynamically to meet the requirements on demand. Reports, as it is obvious, carry the gist of the whole information that flows across the institution.This application must be able to produce output at different

modules for different inputs.

3.6 Software and Hardware Specifications: 3.6.1 Hardware: Processor RAM Hard Disk Intel Core i3 3GB 10 GB of Free space

3.6.2 Software: Operating System Front End Back End Server : Windows Vista or later : JSP(Java Server Page) : HSQL : Apache TomCat

4. Module Description:
Phishing attacks use both social engineering and technical subterfuge to steal consumers' personal identity data and financial account credentials. Social-engineering schemes use 'spoofed' e-mails to lead consumers to counterfeit websites designed to trick recipients into divulging financial data such as credit card numbers, account usernames, passwords and social security numbers. Hijacking brand names of banks, e-retailers and credit card companies, phishers often convince recipients to respond. Technical subterfuge schemes plant crime ware onto PCs to steal credentials directly, often using Trojan key logger spyware. 4.1 Input Design: Input design is a part of overall system design. The main objective during the input design is as given below: To produce a cost-effective method of input. To achieve the highest possible level of accuracy. To ensure that the input is acceptable and understood by the user.

4.2 Input Stages: The main input stages can be listed as below: Data recording Data transcription Data conversion Data verification Data control Data transmission Data validation Data correction 4.3 Input Types: It is necessary to determine the various types of inputs. Inputs can be categorized as follows: External inputs, which are prime inputs for the system. Internal inputs, which are user communications with the system. Operational, which are computer departments communications to the system? Interactive, which are inputs entered during a dialogue. 4.4 Input Media: At this stage choice has to be made about the input media. To conclude about the input media consideration has to be given to; Type of input Flexibility of format Speed Accuracy Verification methods Rejection rates Ease of correction Storage and handling requirements Security Easy to use

Keeping in view the above description of the input types and input media, it can be said that most of the inputs are of the form of internal and interactive. As Input data is to be the directly keyed in by the user, the keyboard can be considered to be the most suitable input device. 4.5 Output Design Outputs from computer systems are required primarily to communicate the results of processing to users. They are also used to provide a permanent copy of the results for later consultation. The various types of outputs in general are: External Outputs, whose destination is outside the organization. Internal Outputs whose destination is within organization and they are the Users main interface with the computer. Operational outputs whose use is purely with in the computer department. Interface outputs, which involve the user in communicating directly with

4.6 Output Definition

The outputs should be defined in terms of the following points:


Type of the output Content of the output Format of the output Location of the output Frequency of the output Volume of the output Sequence of the output

It is not always desirable to print or display data as it is held on a computer. It should be decided as which form of the output is the most suitable. For Example Will decimal points need to be inserted Should leading zeros be suppressed.

4.7 Output Media: In the next stage it is to be decided that which medium is the most appropriate for the output. The main considerations when deciding about the output media are: The suitability for the device to the particular application. The need for a hard copy. The response time required. The location of the users The software and hardware available.

Keeping in view the above description the project is to have outputs mainly coming under the category of internal outputs. The main outputs desired according to the requirement specification are: The outputs were needed to be generated as a hot copy and as well as queries to be viewed on the screen. Keeping in view these outputs, the format for the output is taken from the outputs, which are currently being obtained after manual processing. The standard printer is to be used as output media for hard copies. 5. Requirement Specification: The Project Anti-Phishing Fraud Detection in Online Banking is mainly designed to maintain the security for the user accounts by encrypting and decrypting the passwords using anti-phishing concept. Phishing is a trick to trap a user to give his/her personal information. A Hacker creates a duplicate website which is a replica of the original genuine website. Now, the Hacker sends an e-mail to a user (here, a bank customer) giving a link and saying that his account needs to be updated or his account has been locked and asking him to send his account details immediately. Now, the customer may fall for his trick and clicks the link, because the link would look similar to the genuine banks link (under which, the hackers URL is hidden in that). Now, when the link is clicked, the customer is re-directed to that fake website (created by hacker). Customer thinks that he has reached a genuine website and gives his account details and personal details thinking that the e-mail is from genuine website. The account details are now re-directed to the Hacker. Thus, the Hacker is successful in cheating the customer.

CHAPTER 3

DESIGN

MODELLING
LIST OF UML DIAGRAMS:
1.Use Case Diagram .............................................................................................................................. 16 1.1.User Creation ...................................................................................................................... 16 1.2.Customer Transaction ......................................................................................................... 17 2.Class Diagram .................................................................................................................................... 18 3.Sequence Diagram .............................................................................................................................. 19 3.1.Account Creation ................................................................................................................ 19 3.2.Transaction ......................................................................................................................... 20 4.Collaboration Diagram ....................................................................................................................... 20 4.1.Account Creation ................................................................................................................ 20 4.2.Transaction ......................................................................................................................... 21 5.State Diagram ..................................................................................................................................... 22 5.1.Account Creation ................................................................................................................ 22 5.2.Transaction ......................................................................................................................... 23 6.Activity Diagram ................................................................................................................................ 24 6.1.Account Creation ................................................................................................................ 24 6.2.Login Validation ................................................................................................................. 25 6.3.Transaction ......................................................................................................................... 25 7.Component Diagram........................................................................................................................... 27 8.Deployment Diagram ......................................................................................................................... 28

1.USE CASE DIAGRAM:

1.1. User Creation

1.2. Customer Transaction

2.CLASS DIAGRAM:

3.SEQUENCE DIAGRAM: 3.1. Account Creation

3.2. Transaction

4.COLLOBORATION DIAGRAM: 4.1. Account Creation

4.2. Transaction

5.STATE DIAGRAM: 5.1. Account Creation

5.2. Transaction

6.ACTIVITY DIAGRAM: 6.1.Account Creation

6.2. Login validation

6.3. Transaction

7.COMPONENT DIAGRAM:

8.DEPLOYMENT DIAGRAM:

CHAPTER 4

IMPLEMENTATION

LogIn :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-html" prefix="html" %> <%@ taglib uri="http://devel.cyclos.org/tlibs/cyclos-core" prefix="cyclos" %> <html:html> <c:choose><c:when test="${not empty loggedUser}"> <head> <meta http-equiv="refresh" content="0;URL=${pathPrefix}/home"> </head> </c:when><c:otherwise> <jsp:include page="/pages/general/layout/head.jsp" /> <cyclos:customizedFilePath type="style" name="login.css" var="loginUrl" groupId="${empty loggedUserId ? cookie.groupId.value : ''}" groupFilterId="${empty loggedUserId ? cookie.groupFilterId.value : ''}" /> <link rel="stylesheet" href="<c:url value="${loginUrl}" />"> <jsp:include flush="true" page="/pages/access/includes/loginDefinitions.jsp" /> <cyclos:includeCustomizedFile type="static" name="login.jsp" groupId="${empty loggedUserId ? cookie.groupId.value : ''}" groupFilterId="${empty loggedUserId ? cookie.groupFilterId.value : ''}" /> <script> if (!is.ie6) { var td = $('loginRegistration'); var div = $('loginRegistrationDiv'); if (td && div) { div.style.height = (td.getHeight() - 10) + "px"; } } ensureLoginForm(); </script> </c:otherwise></c:choose> </html:html>

Login form :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-bean" prefix="bean" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-html" prefix="html" %> <%@ taglib uri="http://sslext.sf.net/tags/sslext" prefix="ssl" %> <%@ taglib uri="http://devel.cyclos.org/tlibs/cyclos-core" prefix="cyclos" %> <script> var myProfile = ${empty myProfile ? false : myProfile}; var maxImages = ${empty maxImages ? false : maxImages}; var canChangeName = ${empty canChangeName ? false : canChangeName}; var canChangeEmail = ${empty canChangeEmail ? false : canChangeEmail}; var canChangeUsername = ${empty canChangeUsername ? false : canChangeUsername}; </script> <cyclos:script src="/pages/members/editProfile.js" /> <c:choose> <c:when test="${myProfile}"> <c:set var="titleKey" value="profile.member.title.my"/> </c:when> <c:when test="${byBroker}"> <c:set var="titleKey" value="profile.member.title.of"/> </c:when> <c:when test="${isAdmin}"> <c:set var="titleKey" value="profile.member.title.of"/> </c:when> </c:choose> <ssl:form action="${formAction}" method="post" enctype="multipart/form-data"> <html:hidden property="member(id)"/> <c:set var="imageRowSpan" value="${5 + fn:length(customFields)}" /> <c:if test="${isAdmin || byBroker}"> <c:set var="imageRowSpan" value="${imageRowSpan + 2}" /> </c:if> <c:if test="${!isAdmin && !byBroker && groupFilters != null}"> <c:set var="imageRowSpan" value="${imageRowSpan + 1}" /> </c:if> <table class="defaultTableContent" cellspacing="0" cellpadding="0"> <tr> <td class="tdHeaderTable"><bean:message key="${titleKey}" arg0="${member.name}"/></td> <cyclos:help page="profiles#member_profile"/> </tr> <tr> <td colspan="2" align="left" class="tdContentTableForms"> <table class="defaultTable"> <tr height="1"> <td colspan="3"></td>

<td rowspan="${imageRowSpan}" valign="top"> <cyclos:images varName="images" images="${images}" editable="true" style="float:right;" /> </td> </tr> <c:if test="${isAdmin || byBroker}"> <tr> <td width="25%" class="label"><bean:message key="member.group"/></td> <td nowrap="nowrap" colspan="2"><html:textproperty="member(group).name" styleId="groupText" readonly="true" styleClass="large InputBoxDisabled"/> </td> </tr> <c:if test="${!isAdmin && !byBroker && groupFilters != null}"> <tr> <td width="25%" class="label"><bean:message key="member.groupFilter"/></td> <td nowrap="nowrap" colspan="2"><input name="groupFilters" type="text" readonly="true" class="medium InputBoxDisabled" value="${groupFilters}" /></td> </tr> </c:if> <tr> <td width="25%" class="label"><bean:message key="member.username"/></td> <td nowrap="nowrap" colspan="2"><html:text property="member(user).username" maxlength="20" readonly="true" styleClass="medium InputBoxDisabled required"/></td> </tr> <tr> <td class="label"><bean:message key="member.name"/></td> <td nowrap="nowrap"><html:text property="member(name)" readonly="true" styleClass="large InputBoxDisabled required"/></td> <td valign="bottom" class="label" style="text-align:center;" nowrap="nowrap"><cyclos:escapeHTML><bean:message key="profile.member.hide"/></cyclos:escapeHTML></td> </tr> <tr> <td class="label"><bean:message key="member.email"/></td> <td nowrap="nowrap"><html:text property="member(email)" readonly="true" styleClass="large InputBoxDisabled ${localSettings.emailRequired ? 'required' : ''}"/></td> <td nowrap="nowrap" valign="top" align="center"><html:checkbox property="member(hideEmail)" styleClass="checkbox" disabled="true" value="true" /></td> </tr> <c:if test="${not empty pendingEmailChange}"> <tr> <td class="label"></td> <td colspan="2"> <bean:message key="profile.pendingEmail" arg0="${pendingEmailChange.newEmail}" /> <br> <bean:message key="profile.pendingEmailLastSent"> <jsp:attribute name="arg0"><cyclos:format dateTime="${pendingEmailChange.lastEmailDate}" /></jsp:attribute> </bean:message> <c:if test="${canChangeEmail}">

<br> <a id="resendEmailChangeValidation" class="default"><bean:message key="profile.pendingEmail.link" /></a> </c:if> </td> </tr> </c:if> <c:forEach var="entry" items="${customFields}" varStatus="loop"> <c:set var="field" value="${entry.field}"/> <c:set var="value" value="${entry.value}"/> <c:set var="hidden" value="${entry.value.hidden}"/> <c:choose> <c:when test="${entry.value.hidden}"> <c:set var="checked" value="checked='checked'"/> </c:when><c:otherwise> <c:set var="checked" value="" /> </c:otherwise> </c:choose> <tr> <td valign="top" class="label">${field.name}</td> <td width="15%" nowrap="nowrap" colspan="${cyclos:name(field.control) == 'RICH_EDITOR' ? 3 : 1}"> <input type="hidden" id="hidden_${field.id}" name="member(customValues).hidden" value="${hidden}"> <span class="customFieldContainer" editable="${editableFields[field]}"> <cyclos:customField field="${field}" value="${value}" editable="${editableFields[field]}" valueName="member(customValues).value" fieldName="member(customValues).field" enabled="false"/> </span> </td> <c:if test="${field.memberCanHide && cyclos:name(field.control) != 'RICH_EDITOR'}"> <td nowrap="nowrap" valign="top" align="center"> <input type="checkbox" id="chk_hidden_${field.id}" class="checkbox" disabled="true" ${checked}> </td> </c:if> </tr> </c:forEach> <c:if test="${not empty member.broker}"> <tr> <td class="label"><bean:message key="member.broker"/></td> <td colspan="2" nowrap="nowrap"> <table class="nested" width="100%"> <tr> <td width="90%" style="padding:0px;"> <input type="text" id="brokerText" value="${member.broker.name}" readonly="true" class="full InputBoxDisabled"/> </td> <td nowrap="nowrap"> &nbsp; <c:set var="label"><bean:message key="profile.member.brokerLink"/></c:set> <cyclos:profile elementId="${member.broker.id}" text="${label}" styleClass="default" />

</td> </tr></table></td></tr></c:if> <c:if test="${isAdmin and empty member.activationDate}"> <tr> <td class="label"><bean:message key="member.creationDate"/></td> <td colspan="2" nowrap="nowrap"><input id="creationDateText" value="<cyclos:format date="${member.creationDate}"/>" readonly="true" class="small InputBoxDisabled"/></td> </tr> </c:if> <tr> <td>&nbsp;</td> </tr> </c:if>

Create member :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-bean" prefix="bean" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-html" prefix="html" %> <%@ taglib uri="http://sslext.sf.net/tags/sslext" prefix="ssl" %> <%@ taglib uri="http://devel.cyclos.org/tlibs/cyclos-core" prefix="cyclos" %> <c:set var="numericPassword" value="${ofAdmin ? false : accessSettings.numericPassword}"/> <cyclos:script src="/pages/members/createMember.js" /> <script> var isPublic = ${empty isPublic ? false : isPublic}; var agreementPrintTitle = "<cyclos:escapeJS>${localSettings.applicationName} - <bean:message key="group.registrationAgreement" /></cyclos:escapeJS>"; var registrationAgreementNotCheckedMessage = "<cyclos:escapeJS><bean:message key="createMember.error.registrationAgreementCheck" /></cyclos:escapeJS>"; </script> <c:choose> <c:when test="${isPublic}"> <%-- Public member registration --%> <c:set var="titleKey" value="createMember.title.public"/> <c:set var="helpPage" value="registration#public_create_member"/> </c:when> <c:when test="${byBroker}"> <%-- Member registration by broker --%> <c:set var="titleKey" value="createMember.title.byBroker"/> <c:set var="helpPage" value="user_management#create_user_for_broker"/> </c:when> <c:otherwise> <%-- Member registration by administrator --%> <c:set var="titleKey" value="createMember.title.byAdmin"/> <c:set var="helpPage" value="user_management#create_user"/> </c:otherwise> </c:choose>

<ssl:form action="${formAction}" method="post"> <html:hidden property="member(group)" value="${createMemberForm.groupId}"/> <html:hidden property="groupId"/> <table class="defaultTableContent" cellspacing="0" cellpadding="0"> <tr> <td class="tdHeaderTable"><bean:message key="${titleKey}"/></td> <cyclos:help page="${helpPage}"/> </tr> <tr> <td colspan="2" align="left" class="tdContentTableForms"> <table class="defaultTable"> <c:if test="${isAdmin}"> <tr> <td width="30%" class="label"><bean:message key="member.group"/></td> <td colspan="2"><input type="text" class="InputBoxDisabled large" readonly="true" value="${group.name}"/></td> </tr> </c:if> <c:if test="${not accessSettings.usernameGenerated}"> <tr> <td width="30%" class="label"><bean:message key="login.username"/></td> <td valign="top" colspan="2"><html:text property="member(user).username" maxlength="${accessSettings.usernameLength.max}" styleClass="large InputBoxEnabled required"/></td> </tr> </c:if> <tr> <td width="30%" class="label"><bean:message key="member.name"/></td> <td><html:text property="member(name)" styleClass="large InputBoxEnabled required"/></td> <td valign="bottom" class="label" style="text-align:left" width="15%" nowrap="nowrap"><cyclos:escapeHTML><bean:message key="profile.member.hide"/></cyclos:escapeHTML></td> </tr> <tr> <td class="label"><bean:message key="member.email"/></td> <td><html:text property="member(email)" styleClass="large InputBoxEnabled ${localSettings.emailRequired ? 'required' : ''}"/></td> <td nowrap="nowrap" valign="top" align="left"><html:checkbox property="member(hideEmail)" styleClass="checkbox" /></td> </tr> <c:forEach var="field" items="${customFields}"> <tr> <td valign="top" class="label">${field.name}</td> <td> <c:if test="${field.memberCanHide}"> <input type="hidden" id="hidden_${field.id}" name="member(customValues).hidden" value="false"> </c:if>

<cyclos:customField field="${field}" valueName="member(customValues).value" fieldName="member(customValues).field"/> </td> <td nowrap="nowrap" valign="top" align="left"> <c:if test="${field.memberCanHide}"> <input type="checkbox" id="chk_hidden_${field.id}" class="checkbox"> </c:if> </td> </tr> </c:forEach> <c:if test="${allowSetBroker}"> <tr> <td class="label"><bean:message key="createMember.assignBroker"/></td> <td><input type="checkbox" class="checkbox" id="assignBrokerCheck"></td> </tr> <tr class="trBroker" style="display:none"> <td class="label"><bean:message key="member.brokerUsername"/></td> <td> <html:hidden property="member(broker)" styleId="newBrokerId"/> <input id="brokerUsername" class="large" size="20"> <div id="brokersByUsername" class="autoComplete"></div> </td> </tr> <tr class="trBroker" style="display:none"> <td class="label"><bean:message key="member.brokerName"/></td> <td> <input id="brokerName" class="large" size="40"> <div id="brokersByName" class="autoComplete"></div> </td> </tr> </c:if> <c:if test="${allowAutomaticPassword}"> <tr> <td class="label"><bean:message key="createMember.assignPassword"/></td> <td><input type="checkbox" class="checkbox" id="assignPasswordCheck" name="manualPassword" value="true"></td> </tr> </c:if> <c:if test="${allowSetPassword}"> <c:if test="${not allowAutomaticPassword}"> <input type="hidden" name="manualPassword" value="true"></input> </c:if> <tr class="trPassword" style="display: ${allowAutomaticPassword ? 'none' : ''}"> <td class="label"><bean:message key="createMember.password"/></td>

<td><input type="password" name="member(user).password" size="20" class="small InputBoxEnabled ${numericPassword ? 'number' : ''} ${allowAutomaticPassword ? '' :'required'}"/></td> </tr> <tr class="trPassword" style="display: ${allowAutomaticPassword ? 'none' : ''}"> <td class="label"><bean:message key="createMember.passwordConfirmation"/></td> <td><input type="password" name="confirmPassword" size="20" class="small InputBoxEnabled ${numericPassword ? 'number' : ''} ${allowAutomaticPassword ? '' :'required'}"/></td> </tr> </c:if> <c:if test="${allowSetForceChangePassword}"> <tr class="trPassword" style="display: ${allowAutomaticPassword ? 'none' : ''}"> <td class="label"><bean:message key="createMember.forceChangePassword"/></td> <td><input type="checkbox" name="forceChangePassword" class="checkbox" value="true"></td> </tr> </c:if> <c:choose><c:when test="${isPublic}"> <tr> <td colspan="3" align="center"> <br class="small"/> <span class="label"><bean:message key="createMember.captcha"/></span><br> <br class="small"/> <img id="captchaImage" style="display:none"/><br> <a id="newCaptcha" class="default"><bean:message key="createMember.newCaptcha"/></a><br> <br class="small"/> <html:text property="captcha" styleClass="small InputBoxEnabled required"/> </td> </tr> <c:choose><c:when test="${empty group.registrationAgreement}"> <tr> <td colspan="3" align="right"> <input type="submit" id="saveButton" class="button" value="<bean:message key="global.submit"/>"> </td> </tr> </c:when><c:otherwise> <tr> <td colspan="3" class="label" style="text-align:center"> <br> <bean:message key="group.registrationAgreement" /> <span style="font-weight: normal"> (<a class="default" id="printAgreement"><bean:message key="global.print"/></a>) </span>

</td> </tr> <tr> <td colspan="3" align="center"> <div id="registrationAgreement" class="fakeField" style="textalign:justify;height:150px;width:80%;overflow:scroll">${group.registrationAgreement.contents}</div> </td> </tr> <tr> <td colspan="3" align="center"> <br class="small"> <label> <input type="checkbox" class="checkbox" id="registrationAgreementCheck"> <bean:message key="createMember.registrationAgreementButton" /> </label> </td> </tr> <tr> <td colspan="3" align="right"> <br class="small"> <input type="submit" id="saveButton" class="button" value="<bean:message key="global.submit" />"> </td> </tr> </c:otherwise></c:choose> </c:when><c:otherwise> <tr> <td colspan="3" align="right"> <span class="label"><bean:message key="createMember.action.saveAndNew"/></span> <input type="submit" id="saveAndNewButton" class="button" value="<bean:message key="global.submit"/>"> </td> </tr> <tr> <td colspan="3" align="right"> <span class="label"><bean:message key="createMember.action.saveAndOpenProfile"/></span> <input type="submit" id="saveAndOpenProfileButton" class="button" value="<bean:message key="global.submit"/>"> </td> </tr> </c:otherwise></c:choose> </table> </td> </tr> </table>

<br class="small"> <table class="defaultTableContentHidden" cellspacing="0" cellpadding="0"> <tr> <td><input type="button" id="backButton" class="button" value="<bean:message key="global.back"/>"></td> </tr> </table> </ssl:form>

Create Admin :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-bean" prefix="bean" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-html" prefix="html" %> <%@ taglib uri="http://sslext.sf.net/tags/sslext" prefix="ssl" %> <%@ taglib uri="http://devel.cyclos.org/tlibs/cyclos-core" prefix="cyclos" %> <cyclos:script src="/pages/admins/createAdmin.js" /> <ssl:form action="${formAction}" method="post"> <html:hidden property="admin(group)" value="${group.id}"/> <table class="defaultTableContent" cellspacing="0" cellpadding="0"> <tr> <td class="tdHeaderTable"><bean:message key="createAdmin.title"/></td> <cyclos:help page="user_management#create_admin"/> </tr> <tr> <td colspan="2" align="left" class="tdContentTableForms"> <table class="defaultTable"> <tr> <td class="label" width="30%"><bean:message key="admin.group"/></td> <td><input type="text" class="large InputBoxDisabled" readonly="readonly" value="${group.name}"/></td> </tr> <tr> <td class="label"><bean:message key="admin.username"/></td> <td><html:text property="admin(user).username" size="20" maxlength="20" styleClass="large InputBoxEnabled required"/></td> </tr> <tr> <td class="label"><bean:message key="admin.name"/></td> <td><html:text property="admin(name)" size="40" styleClass="large InputBoxEnabled required"/></td> </tr> <tr> <td class="label"><bean:message key="admin.email"/></td>

<td><html:text property="admin(email)" size="20" styleClass="large InputBoxEnabled required"/></td> </tr> <tr> <td class="label"><bean:message key="createAdmin.password"/></td> <td><input type="password" name="admin(user).password" size="20" class="small InputBoxEnabled required"/></td> </tr> <tr> <td class="label"><bean:message key="createAdmin.passwordConfirmation"/></td> <td><input type="password" name="confirmPassword" size="20" class="small InputBoxEnabled required"/></td> </tr> <tr> <td class="label"><bean:message key="createMember.forceChangePassword"/></td> <td><input type="checkbox" name="forceChangePassword" class="checkbox" value="true"></td> </tr> <c:forEach var="field" items="${customFields}"> <tr> <td class="label">${field.name}</td> <td> <cyclos:customField field="${field}" valueName="admin(customValues).value" fieldName="admin(customValues).field"/> </td> </tr> </c:forEach> <tr> <td colspan="2" align="right"> <span class="label"><bean:message key="createAdmin.action.saveAndNew"/></span> <input type="submit" id="saveAndNewButton" class="button" value="<bean:message key="global.submit"/>"> </td> </tr> <tr> <td colspan="2" align="right"> <span class="label"><bean:message key="createAdmin.action.saveAndOpenProfile"/></span> <input type="submit" id="saveAndOpenProfileButton" class="button" value="<bean:message key="global.submit"/>"> </td> </tr> </table> </td> </tr> </table> <input type="button" id="backButton" class="button" value="<bean:message key="global.back"/>"> </ssl:form>

Change Password :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-html" prefix="html" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-bean" prefix="bean" %> <%@ taglib uri="http://sslext.sf.net/tags/sslext" prefix="ssl" %> <%@ taglib uri="http://devel.cyclos.org/tlibs/cyclos-core" prefix="cyclos" %> <cyclos:script src="/pages/access/changePassword.js" /> <c:set var="numericPassword" value="${ofAdmin ? false : accessSettings.numericPassword}"/> <ssl:form styleId="changePasswordForm" method="post" action="${formAction}"> <html:hidden property="userId"/> <html:hidden property="embed"/> <table class="defaultTableContent" cellspacing="0" cellpadding="0"> <tr> <td class="tdHeaderTable"> <c:choose><c:when test="${myPassword}"> <bean:message key="changePassword.title.my"/> </c:when><c:otherwise> <bean:message key="changePassword.title.of" arg0="${user.element.name}"/> </c:otherwise></c:choose> </td> <cyclos:help page="passwords#change"/> </tr> <tr> <td colspan="2" align="left" class="tdContentTableForms"> <table class="defaultTable"> <tr> <td colspan="2" align="center"> <br/> <c:choose><c:when test="${passwordLength.min == passwordLength.max}"> <bean:message key="changePassword.passwordLength" arg0="${passwordLength.min}"/> </c:when><c:otherwise> <bean:message key="changePassword.passwordLengthRange" arg0="${passwordLength.min}" arg1="${passwordLength.max}"/> </c:otherwise></c:choose> <br/><br/> </td> </tr> <c:if test="${shouldRequestOldPassword}"> <tr> <td class="label"><bean:message key="changePassword.oldPassword"/></td> <td><input type="password" name="oldPassword" class="medium ${numericPassword ? 'number' : ''}"></td> </tr> </c:if>

<tr> <td class="label"><bean:message key="changePassword.newPassword"/></td> <td><input type="password" name="newPassword" class="medium ${numericPassword ? 'number' : ''}"></td> </tr> <tr> <td class="label"><bean:message key="changePassword.newPasswordConfirmation"/></td> <td><input type="password" name="newPasswordConfirmation" class="medium ${numericPassword ? 'number' : ''}"></td> </tr> <c:if test="${!myPassword}"> <tr> <td class="label"><bean:message key="changePassword.forceChange"/></td> <td><input type="checkbox" class="checkbox" name="forceChange" value="true"></td> </tr> </c:if> <tr> <td colspan="2" align="right"><input type="submit" class="button" value="<bean:message key="global.submit"/>"></td> </tr> </table> </td> </tr> </table> </ssl:form> <c:if test="${expired}"> <div class="footerNote"> <cyclos:escapeHTML> <bean:message key="changePassword.expired" /> </cyclos:escapeHTML> </div> </c:if>

Admin Profile :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-bean" prefix="bean" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags/struts-html" prefix="html" %> <%@ taglib uri="http://sslext.sf.net/tags/sslext" prefix="ssl" %> <%@ taglib uri="http://devel.cyclos.org/tlibs/cyclos-core" prefix="cyclos" %> <cyclos:script src="/pages/admins/adminProfile.js" /> <script> var myProfile = ${empty myProfile ? false : myProfile}; </script> <ssl:form action="${formAction}" method="post">

<html:hidden property="admin(id)"/> <table class="defaultTableContent" cellspacing="0" cellpadding="0"> <tr> <td class="tdHeaderTable"> <c:choose><c:when test="${myProfile}"> <bean:message key="profile.admin.title.my"/> </c:when><c:otherwise> <bean:message key="profile.admin.title.of" arg0="${admin.name}"/> </c:otherwise></c:choose> </td> <cyclos:help page="profiles#admin_profile"/> </tr> <tr> <td colspan="2" align="left" class="tdContentTableForms"> <table class="defaultTable"> <c:if test="${isAdmin}"> <tr> <td width="25%" class="label"><bean:message key="admin.group"/></td> <td colspan="2" nowrap="nowrap"><html:text property="admin(group).name" readonly="true" styleClass="large InputBoxDisabled"/></td> </tr> <c:if test="${!myProfile}"> <tr> <td class="label"><bean:message key="admin.lastLogin"/></td> <td colspan="2" nowrap="nowrap"> <c:set var="adminLoggedOn" value="${false}"/> <c:choose> <c:when test="${isLoggedIn}"> <c:set var="lastLogin"><bean:message key="profile.userOnline"/></c:set> <c:set var="adminLoggedOn" value="${true}"/> </c:when> <c:when test="${empty admin.user.lastLogin}"> <c:set var="lastLogin"><bean:message key="profile.neverLoggedOn"/></c:set> </c:when> <c:otherwise> <c:set var="lastLogin"><cyclos:format dateTime="${admin.user.lastLogin}"/></c:set> </c:otherwise> </c:choose> <html:text property="admin(user).lastLogin" readonly="true" styleClass="medium InputBoxDisabled${adminLoggedOn ? ' fieldDecoration' : ''}" value="${lastLogin}"/> </td> </tr> </c:if> </c:if> <tr>

<td class="label" width="25%"><bean:message key="admin.username"/></td> <td colspan="2" nowrap="nowrap"><html:text property="admin(user).username" maxlength="20" readonly="true" styleClass="medium InputBoxDisabled required"/></td> </tr> <tr> <td class="label"><bean:message key="admin.name"/></td> <td colspan="2" nowrap="nowrap"><html:text property="admin(name)" readonly="true" styleClass="large InputBoxDisabled required"/></td> </tr> <tr> <td class="label"><bean:message key="admin.email"/></td> <td colspan="2" nowrap="nowrap"><html:text property="admin(email)" readonly="true" styleClass="large InputBoxDisabled required"/></td> </tr> <c:forEach var="entry" items="${customFields}"> <c:set var="field" value="${entry.field}"/> <c:set var="value" value="${entry.value}"/> <c:if test="${editable}"> <tr> <td class="label">${field.name}</td> <td nowrap="nowrap"> <cyclos:customField field="${field}" value="${value}" </td> </tr> </c:if> </c:forEach> <c:if test="${editable}"> <tr> <td colspan="3" align="right"> <input type="button" id="modifyButton" value="<bean:message key="global.change"/>" class="button"> <input type="submit" id="saveButton" class="ButtonDisabled" disabled value="<bean:message key="global.submit"/>"> </td> </tr> </c:if> </table> </td> </tr> </table> </ssl:form>

<c:if test="${!myProfile}"> <jsp:include page="/pages/admins/includes/profileOfAdminByAdmin.jsp"/> <input type="button" id="backButton" class="button" value="<bean:message key="global.back"/>"> </c:if>

CHAPTER 5

TESTING

TEST CASE REPORT FOR ONLINE BANKING SYSTEM

MODULE FUNCTIONAL SPECIFICATION TEST DATA TEST OBJECTIVE

Admin Module Allows admin to Create and update user accounts Inactive accounts, Customer profiles To activate Online banking facility for a customer and update his account.

STEP NO. 1.

STEPS
Login as Admin

DATA

EXPECTED RESULT

ACTUAL RESULT
Admin Profile Displayed

Admin Display Admin Username Profile and Password Customer name New admin details Customer name Changing to an active account New admin is added to database Customer prodile details

2.

Search for any registration

3.

Add another admin

4.

Search for customer

New customer account activated New admin profile is added to database Customer details retrived correctly

Test Result

Test Case Passed

MODULE FUNCTIONAL SPECIFICATION TEST DATA TEST OBJECTIVE

Customer module Allows customer to update his profile, view Account information. Customer profile To update customer account and view account information

STEP NO. 1.

STEPS
Login as Customer

DATA

EXPECTED ACTUAL RESULT RESULT


Customer profile Displayed

Customer Display Username Customer and profile Password New customer info. N/A Add the new info to database

2.

Update Profile

New info added to database Account information displayed

3. Test Result

View account information Test Case Passed

Display account information

MODULE FUNCTIONAL SPECIFICATION TEST DATA TEST OBJECTIVE

Transaction Module Allows Customer and Admin to trasfer money to other accounts Account number and Amount To check whether the money is trasferred successfully

STEP NO. 1.

STEPS
Login as Customer or Admin

DATA

EXPECTED ACTUAL RESULT RESULT


Admin (or customer) Displayed

Admin (or Display Admin Customer) (or customer) Username profile and Password Transfer money to destination account

2.

Send money to Destination Account account number and Amount View the Transaction Recipt Test Case Passed N/A

Money transfered successfully

3.

Transaction recipt for specified months

Transaction recipt displayed

Test Result

CHAPTER 6

RESULT

Homepage:

Registration form:

Admin Profile:

Manage Accounts:

Payment:

Transaction Recipt:

Other User Profile:

Account Information:

CHAPTER 7

CONCLUSION

Thus a website for implementing ONLINE BANKING SYSTEM has been developed with three modules namely Customer module, Admin module and Transaction module. The Admin is capable of creating customer and other admin account details, updating account details and crediting money to the customers. The customer is capable of registering for an Online account, update his/her account information, change his/her account passwords, view statement for the past transactions and transfer fund to other beneficiary accounts. The transaction module includes reduction in the balance of the source account and increasing the balance for the destination account.

You might also like