Design A Secure Online Banking Transaction System P15
Design A Secure Online Banking Transaction System P15
1
ABSTRACT
2
CONTENTS
1. INTRODUCTION PAGE NO :
1.1 Organization Profile
Synopsis
2. PROBLEM DEFINITIONS
2.1 Existing System
2.2 Proposed System
3. SYSTEM ANALYSIS
3.1Feasibility Analysis
4. SYSTEM REQUIREMENTS
4.1Hardware Requirements
4.2 Software Requirements
5. SYSTEM DESIGN
5.1E-R diagram
5.2Data Dictionary
5.3Data Flow Diagram
6. SYSTEM DESCRIPTION
7. SOURCE CODE
8. SYSTEM TESTING
9. SNAPSHOTS AND REPORTS
10. FUTURE ENHANCEMENTS
11. CONCLUSION
BIBILIOGRAPHY
3
INTRODUCTION
4
INTRODUCTION
The main purpose that banks have been serving since their inception is keeping our money safe
for us. While keeping our money safe, they also let us earn a certain amount of interest on the money
deposited with them. Traditional banks have been doing this, and internet banks continue the same
function. The only difference is in the way the transactions are made.
They all know about internet banking and most of us use it quite often as well, but few of us
actually understand about the history of internet banking and how it all came out. Knowing the history of
internet banking can be incredibly useful, especially since it will allow us to have more respect for the
little things that we take for granted.
Internet banking has been around for quite a few years now, but has really only become
prominent over the past year or so in particular. Internet banking offers an array of different advantages
to the user, including account balances and history including year-to-date information, the ability to
transfer money from one account to another and to payees for bill payments, check history, reorders, and
stop payments, check credit card balances and statements, complete online loan applications, secure
interactive messaging with staff, and much more. Internet banking basically allows you to be able to do
everything that you can in your regular banking institution, only with the benefit that you can do it all
right from the convenience of your own home. Not only is this great because you can be comfortable and
have peace of mind knowing that you can keep track yourself of all your banking issues, but as well it
allows for more ease because you never have to worry about rushing out and making it to the bank.
5
ABOUT THE COMPANY
Bharat Sevak Samaj (BSS) is the National Development Agency sponsored by the
Planning Commission, Government of India to ensure public co-operation for
implementing government plans. The main purpose behind the formulation of Bharat Sevak
Samaj is to initiate a nation wide, non official and non political organization with the object
of enabling, individual citizens to contribute, in the form of an organized co-operative effort,
to the implementation of the National Development Plan. The constitution and functioning
of Bharat Sevak Samaj is approved unanimously by the Indian Parliament.
6
BSS Cyber Solutions
BSS Cyber Solutions (BSS CS) is a division of Bharat Sevak Samaj to provide
total solutions in the arena of Information Technology and to promote high end IT
education and training all over India. BSS Cyber Solutions as a part of its total
computer education policy, imparting training in various courses of computer
technology all over India through franchises. The training programs are suitable for
non-matriculates, matriculates graduates, post graduates, professionally qualified
people, and business men and employed personal. BSS CS offers courses certified
by Bharat Sevak Samaj and International companies like Microsoft, CISCO,
CompTIA etc.
7
SYNOPSIS
With cybercafés and kiosks springing up in different cities access to the Net is going to
be easy. Internet banking (also referred as e banking) is the latest in this series of technological
wonders in the recent past involving use of Internet for delivery of banking products & services.
Even the Morgan Stanley Dean Witter Internet research emphasized that Web is more important
for retail financial services than for many other industries. Internet banking is changing the
banking industry and is having the major effects on banking relationships. Banking is now no
longer confined to the branches were one has to approach the branch in person, to withdraw cash
or deposit a cheque or request a statement of accounts. In true Internet banking, any inquiry or
transaction is processed online without any reference to the branch (anywhere banking) at any
time. Providing Internet banking is increasingly becoming a "need to have" than a "nice to have"
service. The net banking, thus, now is more of a norm rather than an exception in many
developed countries due to the fact that it is the cheapest way of providing banking services.
8
PROBLEM DESCRIPTION
9
PROBLEM DESCRIPTION
Existing System
Existing system is the traditional banking, where customers have to go through the long queue,
time wasted and still wouldn’t have access to efficient and effective banking system.
Proposed System
Considering the stress and time taken to go to bank and do transaction. The development of a
well structure and secured online banking system will allow customer to perform objectives like, creating
a banking system that is easily accessible by customers from the comfort of their homes, offices. Reduce
the flow of human traffic and long queues at banks; Promote efficient and effective banking for the banks
by focusing on those services that still require physical presence at the banking hall. Provides intra-bank
funds transfer services to their customers. Keep a detailed log of customer transactions with the bank on
his account. Generate the statement of account of a selected period of time for customers. And Provide a
customer relationship services.
10
SYSTEM ANALYSIS
11
SYSTEM ANALYSIS
System analysis is a logical process; the objective of this stage is not actually to solve the
problem but to determine what must be done to solve the problem. The basic objective of the analysis
stage is to develop the logical model of the system using tools such as UML (Unified modeling
language).
MAIN OBJECTIVE
FEASIBILITY ANALYSIS
Feasibility is the determination of whether or not a project is worth doing. The processes
is followed in making this determination is called a feasibility study. Feasibility study is the test of
system proposal according to its workability, Impact on the organization ability to meet user’s needs, and
effective use of resources. The result of feasibility study is a formal proposal. This is simply a report – a
formal document detailing the nature and scope of the proposed solution .The main objective of a
feasibility study is to test the technical, social and economic feasibility of developing a computer system.
This is done by investigation the existing system in the area under investigation and generating ideas
about a new system. On studying the feasibility of the system, three major considerations are dealt with,
to find whether the automation of the system is feasible.
12
SYSTEM
REQUIREMENTS
13
Software Requirements
Application Requirements
Database Server
My SQL 5.0.
Hardware Requirements
Pentium IV 233MHz.
128 MB RAM.
250 MB free hard disk space.
14
Communication Interface
SYSTEM DESIGN
15
Data Flow Diagrams
The Data flow diagram provides additional information that is used during the analysis of the
information domain, and server as a basis for the modelling of functions.
The description of each function presented in the DFD is contained is a process specifications
called as PSPEC
Admin Panel:
Login
16
Transaction:
Transaction Verification
Choose Transaction
17
Processing:
Reporting
Customer Authority
Candidate
Database Update
ER-Diagrams
The entity Relationship Diagram (ERD) depicts the relationship between the data objects. The
ERD is the notation that is used to conduct the date modelling activity the attributes of each
data object noted is the ERD can be described resign a data object descriptions.
The set of primary components that are identified by the ER-Diagram are
Data object
Relationships
Attributes
Various types of indicators.
18
The primary purpose of the ERD is to represent data objects and their relationships.
ER-Diagram
19
Customer id
Admin id Password
Password
Address
Manage Customer
Administrator s
Phone no
Date of Birth
Age
IS Email
Balance_enq
Funds_transfer Mini stmts
Accounts_types
Availabl
Genera Perfor Generat e
te the m e amount
account transac trans_li
s tions st
Displays
20
Activity Diagram for overall system
Start
Valid
user
21
Log out
No
Stop
22
Accessing view:
User after logging into his/her account a page is displayed with the basic requirements:
1) Balance Enquiry.
2) Funds Transfer
Description:
Client can view the balance left in his account, if once he has entered into his
account.
Preconditions:
The client has already been logged in.
23
Fund Transfer:
24
25
Users of the system:
Administrators
Customers
Administrator: He is the super user responsible for managing system users, taking system
backup, generating reports, maintaining organization details, Starting Sessions and ending
Sessions and also manages various requests from different Types of users.
Providing Username, Password and other information required for the users to start
an account.
Starting Sessions: The Administrator creates the system users and will be assigned
with the different roles. He is also responsible to start the session when a particular
user wants to use the system every time (It is automatically managed setup).
Managing Data Backup: The Administrator is responsible for managing entire
details by taking the backup periodically. He also takes the Backup of the database in
order to prevent loss of data on system crashes or in order to prevent malfunctioning.
He can take a backup of entire database or a particular section.
Crash Recovery: The Administrator manages the crash recovery at the time of
system crash or failure occurs.
Ending session: The administrator is responsible for ending the session when the
particular user logged out of the system (It is automatically managed setup).
26
Customer (Normal/others): Ordinary customers have a user name & password with which they can
login into their account. They can perform all the transactions such as funds transfer, balance enquiry etc
by sitting at their home on internet.
Login: User can login to the system by providing appropriate username and
password provided by the administrator.
Selecting the Account: After logging in the user is provided with a screen showing
the details of accounts and he selects one of the account inorder to perform the
transaction.
Balance Enquiry: He can view the balance left in his account, if once he has
entered into his account.
Funds Transfer: Upon the request the user can transfer funds from his account to
other accounts.
Mini statements: He also can take a mini statement print out upon his requirement.
27
28
Database Design
CustomerAI
AccountNo Varchar 50
A_Sno Int 4
UserID Varchar 50
AccountName Varchar 50
AccountType Varchar 50
Balance Int -
Login Details
Sno Int 15
UserID Varchar 20
Password Varchar 20
Mini_stat
UserID Varchar 50
T_date Date -
29
T_Id Int 20
T_Accountno Int 20
T_Amount Int -
CustomerPI
UserID Varchar 50
FirstName Varchar 50
LastName Varchar 50
FatherName Varchar 50
DOB Varchar 50
Age Int 2
Landline_No Varchar 20
Mobile_Phone Varchar 10
Nationality Varchar 10
Email Varchar 50
Occupation Varchar 50
O_Address Varchar 50
30
Office_phone Varchar 50
Employer Varchar 50
City Varchar 50
Pincode Varchar 50
State Varchar 50
Country Varchar 50
T_Id Int 30
AccountNo Varchar 50
TDate Varchar 50
Debit Int 20
Credit Int 20
Balance Int -
DepositAcct Varchar 50
WithdrawAcct Varchar 50
31
32
SYSTEM
DESCRIPTION
33
Overall Description
The Online banking Application project will be divided into 4 modules namely:
Login
Registration
Account Information
Transaction
Description
Login: The customer is asked to enter user name & password. When the user enters the
details & submits it goes to a validation engine where it checks valid/not. If valid he is shown
with list of accounts he has with the bank.
Authentication provides a way of identifying a user, typically by having the user enter a
valid user name and valid password before access is granted. The process of authentication is based
on each user having a unique set of criteria for gaining access. Server compares a user's
authentication credentials with other user credentials stored in a database. If the credentials match,
the user is granted access to the account. If the credentials are at variance, authentication fails and
account access is denied.
Registration: Once your registration is complete you will be able to access all of your
accounts, with information asked in the prompts during the registration process. We use this
information to authenticate you as a user with access to the retail loan or lease account. Details such
as name........add phone......20
34
Account Information:
o Selecting the Account: After logging in the user is choose the details of accounts and he
selects one of the accounts in order to perform the transaction.
Transaction: This module maintains the information related to the funds that have been
transferred by the customer from one of his account to another account of his own. This module
helps the customer in executing the fund transfer without the physical visit to the banks premises.
o Mini Statement: When the user requests for mini statements in the home page, system
asks the type of statement needed by the customer. When the customer selects the type
of statement. The system displays the list of transactions on the screen. If the customer
wants to take print outs he can take the print outs of the same.
35
SOFTWARE
PROFILE
36
Tools and Technologies used
PHP
PHP: Hypertext Preprocessor (the name being a recursive acronym) is a widely used,
general-purpose scripting language that was originally designed for web development to
produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source
document and interpreted by a web server with a PHP processor module, which generates the
web page document. As a general-purpose programming language, PHP code is processed by an
interpreter application in command-line mode performing desired operating system operations
and producing program output on its standard output channel. It may also function as a graphical
application. PHP is available as a processor for most modern web servers and as standalone
interpreter on most operating systems and computing platforms.
PHP was originally created by Rasmus Lerdorf in 1995 and has been in continuous development
ever since. The main implementation of PHP is now produced by The PHP Group and serves as the de
facto standard for PHP as there is no formal specification. PHP is free software released under the PHP
License, which is incompatible with the GNU General Public License (GPL) because restrictions exist
regarding the use of the term PHP.
Security
These vulnerabilities are caused mostly by not following best practice programming
rules: technical security flaws of the language itself or of its core libraries are not frequent (23 in
2008, about 1% of the total). Recognizing that programmers cannot be trusted, some languages
include taint checking to detect automatically the lack of input validation which induces many
issues. Such a feature is being developed for PHP, but its inclusion in a release has been rejected
several times in the past.
37
Hosting PHP applications on a server requires a careful and constant attention to deal with these
security risks. There are advanced protection patches such as Suhosin and Hardening-Patch, especially
designed for web hosting environments.
Speed optimization
As with any interpreted language, PHP scripts are stored as human-readable source code
and are compiled on-the-fly by the PHP engine. In order to speed up execution time and not
have to compile the PHP source code every time the webpage is accessed, PHP scripts can also
be stored in binary format using PHP compilers such as phc and roadsend.
Code optimizers aim to reduce the runtime of the compiled code by reducing its size and
making other changes that can reduce the execution time with the goal of improving
performance. The nature of the PHP compiler is such that there are often opportunities for code
optimization, and an example of a code optimizer is the eAccelerator PHP extension.
Another approach for reducing overhead for high load PHP servers is using an Opcode
cache. Opcode caches work by caching the compiled form of a PHP script (opcodes) in shared
memory to avoid the overhead of parsing and compiling the code every time the script runs.
Resources
PHP includes free and open source libraries with the core build. PHP is a fundamentally
Internet-aware system with modules built in for accessing FTP servers, many database servers,
embedded SQL libraries such as embedded PostgreSQL, MySQL and SQLite, LDAP servers,
and others. Many functions familiar to C programmers such as those in the stdio family are
available in the standard PHP build.
PHP allows developers to write extensions in C to add functionality to the PHP language. These
can then be compiled into PHP or loaded dynamically at runtime. Extensions have been written to add
support for the Windows API, process management on Unix-like operating systems, multibyte strings
(Unicode), cURL, and several popular compression formats. Some more unusual features include
integration with Internet Relay Chat, dynamic generation of images and Adobe Flash content, and even
38
speech synthesis. The PHP Extension Community Library (PECL) project is a repository for extensions
to the PHP language.
My- SQL
MySQL is a relational database management system (RDBMS)
Uses
Many web applications use MySQL as the database component of a LAMP software
stack. Its popularity for use with web applications is closely tied to the popularity of PHP, which
is often combined with MySQL
MySQL code uses C and C++. The SQL parser uses yacc and a home-brewed lexer. It is
works on many different system platforms, including AIX, BSDi, FreeBSD, HP-UX, i5/OS,
Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, eComStation, OS/2
Warp, QNX, IRIX, Solaris, Symbian, SunOS, SCO OpenServer and Microsoft Windows. All
major programming languages with language-specific APIs include Libraries for accessing
MySQL databases. In addition, an ODBC interface called MyODBC allows additional
programming languages that support the ODBC interface to communicate with a MySQL
database, such as ASP or ColdFusion. The MySQL server and official libraries are mostly
39
implemented in ANSI C &ANSI C++.
Database
A collection of programs that enables you to store, modify, and extract information from a
database. Information of the users gets stored in a relational database. The application works well with
MS- Access as database, it also works well with MySQL, SQL Server 2000 and Oracle.
Data Manipulation Language (DML) is used to modify the data present in database:
Official
In this project, MySQL is used as the backend database. MySQL is an opensource database
management system. The features of MySQL are given below
In being multithreaded MySQL has many advantages. A separate thread handles each incoming
connection with an extra thread that is always running to manage the connections. Multiple clients can
perform read operations simultaneously, but while writing, only hold up another client that needs access
to the data being updated. Even though the threads share the same process space, they execute
individually and because of this separation, multiprocessor machines can spread the thread across many
CPUs as long as the host operating system supports multiple CPUs. Multithreading is the key feature to
support MySQL’s performance design goals. It is the core feature around which MySQL is built.
41
SOURCE CODE
42
Source code
<?php
ob_start();
define('ROOT_PATH', dirname(__FILE__));
if(!is_file(ROOT_PATH . '/lib/confs/Conf.php')) {
header('Location: ./install.php');
exit ();
session_start();
if(!isset($_SESSION['fname'])) {
header("Location: ./login.php");
exit();
session_destroy();
header("Location: ./login.php");
exit();
define('Admin', 'MOD001');
43
define('PIM', 'MOD002');
define('MT', 'MOD003');
define('Report', 'MOD004');
define('Leave', 'MOD005');
define('TimeM', 'MOD006');
define('Benefits', 'MOD007');
define('Recruit', 'MOD008');
MT => $arrRights,
$_SESSION['path'] = ROOT_PATH;
?>
<?php
/* Default modules */
44
if (!isset ($_GET['menu_no_top'])) {
if ($_SESSION['isAdmin'] == 'Yes') {
$_GET['menu_no_top'] = "hr";
} else if ($_SESSION['isSupervisor']) {
$_GET['menu_no_top'] = "ess";
} else {
$_GET['menu_no_top'] = "ess";
if (Config::getTimePeriodSet()) {
$_SESSION['timePeriodSet'] = 'Yes';
} else {
$_SESSION['timePeriodSet'] = 'No';
if($_SESSION['isAdmin']=='Yes') {
$arrAllRights[$moduleCode]=$rights->getRights($_SESSION['userGroup'],
$moduleCode);
45
$ugDet = $ugroup ->filterUserGroups($_SESSION['userGroup']);
} else {
* They have PIM rights over their subordinates, but they cannot add/delete
* employees. But they have add/delete rights in the employee details page.
*/
if ($_SESSION['isSupervisor']) {
/*
*/
switch ($_GET['menu_no_top']) {
case "eim":
$arrRights=$arrAllRights[Admin];
break;
case "hr" :
$arrRights=$arrAllRights[PIM];
break;
46
case "mt" :
$arrRights=$arrAllRights[MT];
break;
case "rep" :
$arrRights=$arrAllRights[Report];
break;
case "leave" :
$arrRights=$arrAllRights[Leave];
break;
case "time" :
$arrRights=$arrAllRights[TimeM];
break;
case "recruit" :
$arrRights=$arrAllRights[Recruit];
break;
$_SESSION['localRights']=$arrRights;
$styleSheet = CommonFunctions::getTheme();
if ($authorizeObj->isAdmin()){
$leaveHomePage = 'lib/controllers/CentralController.php?
leavecode=Leave&action=Leave_FetchLeaveAdmin&NewQuery=1';
} else if ($authorizeObj->isSupervisor()) {
if ($authorizeObj->isAdmin()){
$leaveHomePage = 'lib/controllers/CentralController.php?
leavecode=Leave&action=Leave_HomeSupervisor';
47
} else {
$leaveHomePage = 'lib/controllers/CentralController.php?
leavecode=Leave&action=Leave_FetchLeaveSupervisor';
} else if ($authorizeObj->isESS()) {
$leaveHomePage = 'lib/controllers/CentralController.php?
leavecode=Leave&action=Leave_Summary&id='.$_SESSION['empID'];
if ($_SESSION['timePeriodSet'] == 'Yes') {
$timeHomePage = 'lib/controllers/CentralController.php?
timecode=Time&action=View_Current_Timesheet';
} else {
$timeHomePage = 'lib/controllers/CentralController.php?
timecode=Time&action=Work_Week_Edit_View';
} else {
if ($_SESSION['timePeriodSet'] == 'Yes') {
$timeHomePage = 'lib/controllers/CentralController.php?
timecode=Time&action=View_Select_Employee';
} else {
$timeHomePage = 'lib/controllers/CentralController.php?
timecode=Time&action=Work_Week_Edit_View';
48
$timesheetPage = 'lib/controllers/CentralController.php?
timecode=Time&action=View_Select_Employee';
if ($authorizeObj->isAdmin()) {
$attendanceDefault = 'lib/controllers/CentralController.php?
timecode=Time&action=Show_Employee_Report';
} else {
$attendanceDefault = 'lib/controllers/CentralController.php?
timecode=Time&action=Show_My_Report';
$beneftisHomePage = 'lib/controllers/CentralController.php?
benefitcode=Benefits&action=Benefits_Schedule_Select_Year';
$empId = $_SESSION['empID'];
$year = date('Y');
$personalHspSummary = "lib/controllers/CentralController.php?
benefitcode=Benefits&action=Search_Hsp_Summary&empId=$empId&year=$year";
} else {
$beneftisHomePage = 'lib/controllers/CentralController.php?
benefitcode=Benefits&action=Benefits_Schedule_Select_Year';
$personalHspSummary = 'lib/controllers/CentralController.php?
benefitcode=Benefits&action=Hsp_Summary_Select_Year_Employee_Admin';
if ($authorizeObj->isESS()) {
if ($_SESSION['timePeriodSet'] == 'Yes') {
$timeHomePage = 'lib/controllers/CentralController.php?
timecode=Time&action=Show_Punch_View';
} else {
49
$timeHomePage = 'lib/controllers/CentralController.php?
timecode=Time&action=Work_Week_Edit_View';
if ($authorizeObj->isAdmin()) {
$recruitHomePage = 'lib/controllers/CentralController.php?recruitcode=Vacancy&action=List';
$recruitHomePage = 'lib/controllers/CentralController.php?recruitcode=Application&action=List';
$defaultAdminView = "GEN";
$allowAdminView = false;
if ($_SESSION['isAdmin']=='No') {
if($_SESSION['isProjectAdmin']) {
$defaultAdminView = "PAC";
// Allow project admins to view PAC (Project Activity) page only (in the admin module)
$allowAdminView = true;
if($_SESSION['isSupervisor']) {
50
// Default page for supervisors is the Company property page
$defaultAdminView = "TCP";
// Allow supervisors to view TCP (Company property) page only (in the admin module)
$allowAdminView = true;
require_once($lan->getLangPath("full.php"));
$menu = array();
51
if ($_SESSION['isAdmin']=='Yes' || $arrAllRights[Admin]['view']) {
$menuItem->setCurrent($_GET['menu_no_top']=="eim");
$sub->setSubMenuItems($subsubs);
$subs = array();
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
52
$sub = new MenuItem("qualifications",$lang_Menu_Admin_Quali, "#");
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
53
$subsubs[] = new MenuItem("natandrace",$lang_Menu_Admin_NationalityNRace_EthnicRaces,
"index.php?uniqcode=ETH&menu_no_top=eim");
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subs[] = $sub;
if ($_SESSION['ldap'] == "enabled") {
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
$menuItem->setCurrent($_GET['menu_no_top']=="eim");
55
$subs[] = new MenuItem("project",$lang_Admin_ProjectActivities, "index.php?
uniqcode=PAC&menu_no_top=eim");
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
$menuItem->setCurrent($_GET['menu_no_top']=="eim");
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
$menuItem->setCurrent($_GET['menu_no_top']=="eim");
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
define('PIM_MENU_TYPE', 'left');
$_SESSION['PIM_MENU_TYPE'] = PIM_MENU_TYPE;
$enablePimMenu = false;
$enablePimMenu = true;
$subs = array();
if ($arrAllRights[PIM]['add']) {
if (PIM_MENU_TYPE == 'dropdown') {
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
58
$subs[] = new MenuItem("attachments",$lang_pim_tabs_Attachments,
"javascript:parent.rightMenu.displayLayer(6)", null, $enablePimMenu);
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
$menuItem->setCurrent($_GET['menu_no_top']=="leave");
$subs = array();
$subsubs = array();
59
if ($authorizeObj->firstRole($allowedRoles)) {
if ($authorizeObj->isESS()) {
if ($arrAllRights[Leave]['view'] || $authorizeObj->isSupervisor()) {
$sub->setSubMenuItems($subsubs);
} else if ($authorizeObj->isESS()) {
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
60
$subs[] = $sub;
if ($authorizeObj->isESS()) {
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
61
/* Start time menu */
$menuItem->setCurrent($_GET['menu_no_top']=="time");
if ($_SESSION['timePeriodSet'] == "Yes") {
$subs = array();
if ($authorizeObj->isAdmin() || $authorizeObj->isSupervisor()) {
$subsubs = array();
if ($authorizeObj->isESS()) {
}
62
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$attsubs = array();
if ($authorizeObj->isESS()) {
63
$attendance->setSubMenuItems($attsubs);
$subs[] = $attendance;
/*if ($authorizeObj->isESS()) {
}*/
// && $arrAllRights[TimeM]['view'] - was removed from the condition so that project admins
can see the menu
if ((($_SESSION['isAdmin']=='Yes') || $_SESSION['isProjectAdmin'])) {
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
64
}
$menuItem->setCurrent($_GET['menu_no_top']=="benefits");
$subs = array();
$yearVal = date('Y');
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
} else {
65
if (Config::getHspCurrentPlan() > 0) {
} else {
$subsubs = array();
if ($authorizeObj->isESS()) {
$yearVal = date('Y');
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
66
$subsubs[] = new MenuItem("payrollschedule",$lang_Benefits_ViewPayrollSchedule ,
"lib/controllers/CentralController.php?benefitcode=Benefits&action=Benefits_Schedule_Select_Year");
if ($arrAllRights[Benefits]['add']) {
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
if ($arrAllRights[Recruit]['view']) {
$menuItem->setCurrent($_GET['menu_no_top']=="recruit");
$subs = array();
if ($_SESSION['isAdmin']=='Yes') {
67
$subs[] = new MenuItem("applications",$lang_Menu_Recruit_JobApplicants ,
"lib/controllers/CentralController.php?recruitcode=Application&action=List");
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
$menuItem->setCurrent($_GET['menu_no_top']=="rep");
$subs = array();
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
if ($_SESSION['isAdmin']!='Yes') {
$menuItem->setCurrent($_GET['menu_no_top']=="ess");
$enableEssMenu = false;
68
if ($_GET['menu_no_top']=="ess") {
$enableEssMenu = true;
$subs = array();
if (PIM_MENU_TYPE == 'dropdown') {
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
69
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
$subsubs = array();
$sub->setSubMenuItems($subsubs);
$subs[] = $sub;
70
$subs[] = new MenuItem("attachments",$lang_pim_tabs_Attachments,
"javascript:parent.rightMenu.displayLayer(6)", null, $enablePimMenu);
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
$menuItem->setCurrent($_GET['menu_no_top']=="bug");
$menu[] = $menuItem;
$subs = array();
$menuItem->setSubMenuItems($subs);
$menu[] = $menuItem;
71
$welcomeMessage = preg_replace('/#username/', ((isset($_SESSION['fname'])) ? $_SESSION['fname'] :
''), $lang_index_WelcomeMes);
$optionMenu = array();
} else {
"./lib/controllers/CentralController.php?
mtcode=CPW&capturemode=updatemode&id={$_SESSION['user']}");
$home = "./lib/controllers/CentralController.php?
uniqcode={$uniqcode}&VIEW=MAIN{$isAdmin}{$pageNo}";
$home = "./lib/controllers/CentralController.php?reqcode={$reqCode}";
$home = “./lib/controllers/CentralController.php?
reqcode={$reqCode}&VIEW=MAIN&sortField=0&sortOrder0=ASC";
if (isset($_GET['id'])) {
$home .= "&id={$_GET['id']}&capturemode=updatemode";
} else {
$home .= "&VIEW=MAIN";
72
}
$home = "./lib/controllers/CentralController.php?uniqcode={$uniqcode}&VIEW=MAIN";
} else if ($_GET['menu_no_top']=="bug") {
$home = "./lib/controllers/CentralController.php?mtcode=BUG&capturemode=addmode";
} elseif ($_GET['menu_no_top']=="rep") {
$home = "./lib/controllers/CentralController.php?repcode={$repcode}&VIEW=MAIN";
} elseif ($_GET['menu_no_top']=="ess") {
$home = "./lib/controllers/CentralController.php?
reqcode=ESS&id={$_SESSION['empID']}&capturemode=updatemode";
} elseif ($_GET['menu_no_top']=="leave") {
$home = $leaveHomePage;
} elseif ($_GET['menu_no_top']=="time") {
$home = $timeHomePage;
} elseif ($_GET['menu_no_top']=="benefits") {
$home = $beneftisHomePage;
} elseif ($_GET['menu_no_top']=="recruit") {
$home = $recruitHomePage;
} else {
$rightsCount = 0;
if ($right) {
$rightsCount++;
73
if ($rightsCount === 0) {
$home = 'message.php?case=no-rights&type=notice';
} else {
$home = "";
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OrangeHRM</title>
<?php
$menuObj->getCSS();
$menuObj->getJavascript($menu);
?>
</head>
<body>
74
<div id="main-content" style="float:left;height:640px;text-align:center;padding-left:0px;">
</div>
</div>
<script type="text/javascript">
//<![CDATA[
function exploitSpace() {
dimensions = windowDimensions();
if (document.getElementById("main-content")) {
if (document.getElementById("main-content")) {
dimensions[0] = 940;
exploitSpace();
75
window.onresize = exploitSpace;
//]]>
</script>
</body>
</html>
76
TESTING
77
TESTING
Software testing is a process of analyzing or operating software for the purpose of
finding bugs. Test activities that are associated with analyzing the products of software
development include code inspections, walkthroughs, and desk checks.
UNIT TESTING
Unit testing involves test planning, test case development and measurement of test unit against
the requirement specifications.
Planning involves designing the schedule, determining the resources required and
determining the features to be tested. Test case development involves designing test cases that
are to be tested; the test cases are prepared so as to test the system exhaustively to find the bugs
present in the system. Measurement of test unit against specification involves testing the system
by giving the test cases as input and checking the systems adherence to its specification.
Test cases were designed to check the results retrieved from the database and the validation of all
user inputs. All the modules were tested thoroughly. The module interface was also tested to ensure that
information flows into and out of the program units.
78
INTEGRATION TESTING
This testing is performed after all individual modules are developed and ready for the integration.
The objective of this testing is to build a program structure as dictated in the design by taking unit tested
modules.
REQUIREMENT TO BE TESTED
This service validates fetches the account details given an account Id down integration is an
incremental approach to the construction of program structure. Modules are integrated by moving
downward through the control hierarchy, beginning with the main module. Modules subordinate to the
main module are incorporated into the structure in depth first manner. In this way, interfacing between
the various modules was also thoroughly tested. In this System, the integration testing is done by
checking all possible workflows of the analysis and cleaning process.
SYSTEM TESTING
System Testing is a series of test, which have to be performed to fully exercise the computer-based system. It ensures that all the system
elements are fully integrated and each element performs its allocated function.
79
PERFORMANCE TESTING
Performance testing is done to test run-time performance of the software within context of an integrated system. For real time systems,
adherence to performance requirements is a must. It determines the amount of execution time spent in various units, program throughput and
response time. This system being highly user-interactive and capable of executing large volume of data was expected to have a small response
time.
This is a unit testing method where a unit will be taken at a time and tested thoroughly at a
statement level to find the maximum possible errors. I tested step wise every piece of code, taking care
that every statement in the code is executed at least once. The white box testing is also called Glass Box
Testing. I have generated a list of test cases, sample data. which is used to check all possible
combinations of execution paths through the code at every module level.
This testing method considers a module as a single unit and checks the unit at interface and
communication with other modules rather getting into details at statement level. Here the module will be
treated as a block box that will take some input and generate output. Output for a given set of input
combinations are forwarded to other modules.
TEST CASES
VALIDATE LOGIN
If the login credentials are correct, it returns the UserContext to the caller.
80
If the login credentials are incorrect it returns a null UserContext.
identifier INVALID_LOGIN_
2 For expired login and password Client 2, An exception with the error identifier False
Purity
INVALID_LOGIN_ is thrown. Validate
the result with data in the database.
3 For reports between two invalid 12/07/14 to 01/12/08 An exception with the error identifier False
dates
NON_ DATE is thrown
4 For reports between two valid dates 02/12/07 to 07/12/08 The report was generated from the True
database
81
82
FUTURE
ENCHANCEMENTS
83
FUTURE ENHANCEMENT
Today, online banking services are quite varied. One of the best features of online banking is
putting the user in control. The user controls all bill paying, transfers, and investments from home.
There are other features, though of online banking. One of these is increased accessibility to your
account information. Users of online banking services can access their account information from
anywhere in the world! This is particularly helpful for businesses. Internet business banking is becoming
increasingly popular, as businesses are becoming more global in their reach. Now business people can
access their accounts, even when on overseas business trips. Business Internet banking is extremely
popular for this reason.
84
CONCLUSION
85
CONCLUSION
This section discus the result of the work done in this project And also mentions the future scope
for improvement.
As the world becomes more of a global village being runned by paperless systems, the idea of a
cashless society is the hope of the future. Thus more innovations will still evolve which will make
cashless transactions easily accessible and affordable.
The “Banking Online System is a big and ambitious project. I am thankful for being provided
this great opportunity to work on it. As already mentioned, this project has gone through extensive
research work. On the basis of the research work, we have successfully designed and implemented
banking online System.
86
BIBLIOGRAPHY
87
Bibliography
BOOK REFERENCES
W. Lecky-Thompson,” Web Programming with XHTML, PHP and MySQL”, 2nd Edition, 2008
WEB SITES
88