0% found this document useful (0 votes)
28 views64 pages

Secure Online Banking System Overview

This document discusses an online banking system called A Core Transaction Process. It provides customers with easy and secure access to their bank accounts through internet and e-banking. The system allows users to perform tasks like checking balances, transferring funds, paying bills, and more. It uses high levels of security like encrypted passwords and pins to protect customer information and transactions. The document outlines the existing manual banking system, benefits of the proposed online system, its modules, development environment, and technologies used.

Uploaded by

Balaji Rao N
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views64 pages

Secure Online Banking System Overview

This document discusses an online banking system called A Core Transaction Process. It provides customers with easy and secure access to their bank accounts through internet and e-banking. The system allows users to perform tasks like checking balances, transferring funds, paying bills, and more. It uses high levels of security like encrypted passwords and pins to protect customer information and transactions. The document outlines the existing manual banking system, benefits of the proposed online system, its modules, development environment, and technologies used.

Uploaded by

Balaji Rao N
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd

1.

INTRODUCTION

1.1. ABSTRACT

In a fast growing country BANKING is an important domain. It


plays a vital role in our day-to-day life. So, more and more peoples are use and
they need easy handling options in their banking applications. Our A CORE
TRANSACTION PROCESS project gives the easy ways to access their accounts.
It gives the opportunity to carry over bank with us i.e. wherever we go we can
utilize our own bank activities through Internet through e-Banking.

A Core Transaction Process is nothing but an online banking with much security.
Because all is money related business, customers must require the high level security. Our
project gives high-level security in the banking concepts.

[Link] is a web portal which handles all the bank operations like Account
maintenance, Balance checking, Fund transferring, Cheque clearance, credit card
Booking, Credit Card limit verification, Mini statement on our account and Enquiry on
various accounts. In our web portal we are handling Savings account, Current account,
Loan Account, Cash Credit Account, Jewel Loan Account and Salary Account.

For Security, Each and every access of funds our portal gets a confirmation for the
password and pin number. These are the things where the user kept it in high security. In
order to increase the security level the password and the pin number are encrypted in our
project before stored in the database. Site Admin also having restricted limitations over
this password and pin numbers i.e. if the user change the password and the pin number
admin is not able to change it or view it. It will increase the security level of our project.

1.2. PROBLEM DEFINITION


Module Description

• General Viewer Module


• User Authentication Module
• Account Handling Module
• Fund Transfer Module
• Bill Payment Module
• Admin Control Module

General Viewer Module

Any one can enter into our portal and view the detail about our bank. These
details are categorized in various headings. General Viewer can view the FAQ,
which will give more idea about our bank accounts and operations. If the
General viewer is a customer then he will enter into our portal by using his/her
username and password.

User Authentication Module

If the user is our bank customer then he will be given by a username and
password. The registered customers are then authenticated against the claimed
credentials. Only the authenticated customer can view their personalized home
page.
Account Handling Module
(a)Current/Savings Account:
 To offer an account summary of account balances either in their
current account or savings account.
 To offer an account (Mini) statement this displays a detailed
transaction history on the selected customer account and selected
period.
 The customer can also download account statement online
 To facilitate transfer of funds within customer account
(b)Fixed Deposit:
 To open a new fixed deposit online
 To view the fixed deposit details which includes principal amount,
maturity amount, maturity date, and rate of interest.

Fund Transfer Module:


 To transfer funds to Bank accounts other than those held by you.
 To add a beneficiary for Third Party Transfer
 To display the list of beneficiaries added to the customers’ account.
The customers can delete or add beneficiaries or edit current profiles.
A maximum of 20 beneficiaries can be added for a Third Party
Transfer.
Bill Payments Module
 To pay customers’ utility bills online by clicking on the utility
company for which they would like to pay the bill.
 The bill details will be displayed automatically.
 The customers’ just need to confirm the payment before it is
processed.
Site Admin Module
Site Admin is the overall controller of our web portal. All the user
authentication works are done by Site Admin. Account transactions, any
quires send by the customer can be view by admin and give the reply for that.
2. SYSTEM ANALYSIS

2.1. EXISTING SYSTEM

• Manual Banking – Banking through office premises is existing system of


our project. This is having the disadvantage of easy to use, Holiday
absence, Physical presence of customer and office transportation.
• Through Manual Banking in the sense of security, it looks a like very high,
but the processing time is very high. If we are providing same security
through the A Core Transaction Process, we can overcome this processing
time problem.
• Existing net banking facilities do not offer up to the second account
information. That is if a customer issues a cheque in morning, his/her
account has to be debited to reflect this issue in the morning, but the
account status will not reflect this when they login in the afternoon. This is
because his or her account status is updated at the end of each day and not
instaniaously.

2.2. PROPOSED SYSTEM

 A Core Transaction Process is the use of a personal computer for making


transactions in bank accounts while online over the internet. These
methods are becoming increasingly popular in all areas of the world.

Benefits:

There are great deals of benefits that you can enjoy once you're registered to bank
online.
Ease of Use:

Our simple onscreen instructions will guide you through the registration
process, step by step. We've made the site easy to use, and should you have any
problems, customer support is available.

Safe and Secure:

Whenever you bank with us we want you to have total peace of mind.
That's why the security of our online banking service is stringently tested to
guarantee your privacy. Each time you log in, you'll be asked for your User ID
and password, which you will receive within three days of registering. For
business accounts, each person assigned to the account will have their own User
ID and password. What's more, if you forget to log off, the system will
automatically log off for you if you haven't used your mouse or keyboard after a
few minutes.

• It makes easy to maintain the details about the team-involved in the each
and every project testing and module based employee details are stored in
the database.
3. DEVELOPMENT ENVIRONMENT

3.1. HARDWARE REQUIREMENT

[Link] System Hardware Configurations


Intel Pentium III(800 MHz) and
1 Processor (with Speed)
Upwards
2 RAM 128 MB

3 Monitor/Panel Plug and Play Monitor

4 Hard Disk Size 40 GB

5 Floppy Disk 1.44MB

6 Serial/Parallel Port 2 COM/1 LPT

7 Keyboard 109 Keys

8 Mouse PS/2 Compatible Mouse Port

3.2. SOFTWARE REQUIREMENT

[Link] System Software Configurations

2 Operating System Windows 2000 & XP

6 Front End HTML,[Link]

7 Back End Microsoft SQL Server 7.0

8 Programming Interface [Link]

9 Application Servers Internet Information Server


SOFTWARE DESCRIPTION
The .NET Programming Framework:

The .Net Framework Class Library:


The .Net Framework Class Library consists of a vast set of classes designed to
satisfy any conceivable programming need. For example, the .NET framework
contains classes for handling database access, working with the file system,
manipulating text and generating graphics, In addition, it contains more
specialized classes for performing tasks such as working with regular expressions
and handling network protocols.

The .NET framework, furthermore, contains classes that represent all the basic
variable data types such as string, integer, bytes, characters and arrays. Most
importantly, for purposes of this book, the .NET Framework Class Library
contains classes for building [Link] pages. Any of the .NET framework classes
can be accessed while building [Link] pages

Understanding Namespaces
The classes of the .NET framework are organized into a hierarchy of
namespaces. A namespace is a logical grouping of classes. For example,
all classes that relate to working with the file system are gathered together into the
system. IO Namespace.

The namespace are organized into a hierarchy (a logical tree). At the root of the
tree is the system namespace. This namespace contains all the classes for he base
data types, such as string and arrays. It also contains classes fir working with
random numbers and dates and times. Any of the classes in the .NET framework
can be uniquely identified using the full namespace of the class. For example, to
uniquely refer to class that represents a file system files (the File class), the
following can be used:
[Link]: [Link] refer to the namespace and File refer to the particular class
Standard [Link] Namespace:
The classes contained in a select number of namespace are available in [Link]
pages by default. Theses default namespace contain classes that you use most
often in your [Link] application:

System:
Contains all the base data types and other useful classes such as those related to
generating random numbers and working with dates and times.

System. Collection:
Contains classes for working with standard collection types such as hash tables
and arrays lists.

System. Collection. Specialized:


Contains classes that represent specialized collection such as linked lists and
string collections.

System. Configuration:
Contains classes for working with configuration files.

System. Text:
Contains classes for encoding, decoding and manipulating the contents of strings.

System. Text. Regular Expressions:


Contains classes for performing regular expression match and replace operations.

System. Web:
Contains the basic classes for working with the World Wide Web, including
classes for representing browser requests and server responses.
System. Web. Caching:
Contains classes used for catching the content of pages and classes for performing
custom caching operation.

System. Web. Security:


Contains classes for implementing authentication and authorization such as
Forms and Passport authentication.

System. Web. Session State:


Contains the classes for implementing Session State

System. Web. UI:


Contains the basic classes used in building the user interface of [Link] pages.

System. Web. UI. HTML Control:


Contains the classes for the HTML controls.

System. Web. UI. Web Control:


Contains the classes for the Web controls.

The Common Language Runtime:


The Common Language Runtime is the engine that supports all the .NET
languages. These runtimes may provide libraries used by the language or they
may have the additional responsibility of executing the code.

The CLR provides a whole set of related services such as code verification,
optimization , and garbage collection , and can run the code from any .NET
language.
The implication of the CLR are wide-ranging:

Deep language integration:


The CLR makes no distinction between different languages- in fact , it has no
way of knowing what language was used to create an executable.

No more “DLL hell”:


IL Programs store extra information about their classes and the components they
require is also called Metadata. The CLR examines this information and automatically
prevents an application from using the wrong version of a component.

Side-by-side execution:
The CLR also has the ability to load more than one version of a component at a
time. Multiple versions of the .NET framework can be installed, meaning that you
will be able to upgrade to new versions of [Link] without replacing the current
version of needing to rewrite your applications.

Fewer errors:
Whole categories of errors are impossible with the CLR.

[Link]:
[Link] is a part of the .NET Framework. A Programmer interact with it by
using the appropriate types in the class library to write programs and design web
forms. When a client requests a page, the [Link] services runs , executes your
code, and creates a final HTML page to send to the client.
[Link] Features:

Scripting limitations:
ASP applications rely on VBScript, which suffers from a number of limitations. In
[Link], web pages are designed in a modern .NET language, not scripting
language.

Headaches with deployment and configuration


Because of the way COM and ASP work, can’t easily update the components your
web sites uses. [Link] introduces a slew of new features to allow web sites to
be dynamically updated and reconfigured.

No application structure:
ASP code is inserted directly into web page along with HTML markup. The
resulting tangle has nothing in common with today’s modern, object-oriented
languages. As a result, web form code can rarely be reused or modified without
hours of effort.

State limitations:
One of the ASP’s strongest features is its integrated session state facility.
However, session state is useless in scenarios where a web site is hosted by
several separate web servers. [Link] corrects this problem by allowing state to
be stored in a central repository: either a separate process or a database that all
servers can access.
The Connection String:
The connection string is actually a series of distinct pieces of information,
separated by semicolons(;).

Provider:
This is the name of the SQL Provider, which allows communication between
[Link] and your database.

Data Source:
This indicates the name of the server where the data source is located. In this case,
the server is on the same computer hosting the [Link] site, so localhost is
sufficient.

Initial Catalog:
This is the name of the database that this connection will be accessing.

User ID:
This is used to access the database. The user ID “sa” corresponds to the system
administrator account provided with database such as SQL Server.

Password:
By default, the sa account doesn’t have a password.

Connection Timeout:
This determines how long your code will wait, in seconds, before generating an
error if it can’t establish a database connection.
Data Binding
Data binding in [Link] is superficially similar to data binding in the world of
desktop or client/server applications, but fundamentally different. In those
environments, Data binding refers to the creation of a direct connection between a
data source and a Control in an application window. If the users changes a value
in the onscreen control, the data in the linked database is modified automatically.
Similarly, if the database changes while the user is working with it, the display
can be refreshed automatically.

[Link] versus VBScript:


VBScript programming language was developed as a basic scripting
language for
writing macros and other simple code that would be hosted by another application.
In the end, even though VBScript was intended to be easier to use the ordinary
Visual Basic, writing advanced ASP pages actually became much more complicated
because of the additional effort needed to circumvent VBScript’s limitations.

Just replacing VBScript with visual basic would have been a significant
advantage. Some of the features of the visual basic offers that VBScript lacks
include:

Access to the win32 API and platform services:


VBScript, on the other hand, is automatically isolated by the scripting host and
has many security-related restrictions.

Typed programming:
VBScript doesn’t allow you strict control over data types, and works with special
”variant” variables instead, which are supposed to be easier to use.
Event-driven programming:
Unlike visual basic, VBScript is notoriously disorganized, with little flexibility to
group or organize code so it can be easily debugged and reused.

Support for objects:


Visual basic doesn’t have perfect object-oriented features, but they are still light
years over what VBScript can accomplish, making it impossible to design a modern
multi-layered application.

[Link] has completely skipped over this stage in evolution and moved directly to
the advanced capabilities of Visual [Link]. Some of the new features include:

True object-oriented programming:


Inheritance, interfaces, polymorphism, constructors, shared members and abstract
classes…the list goes on, and Visual Basic .NET has them all closely integrated into the
language.

Language refinements:
You can now overload functions, declare and assign variables on the same line,
and use shortened assignment syntax. Many of these enhancements mean that existing
VB (and VBScript) code won’t compile.

Structured error handling:


The end of the aggravating On Error Goto has finally arrived. [Link] introduces
.NET’S new standard: clean, concise structure exception handling.

Strong typing:
[Link] allows you to rein in your program and prevent possible errors with
strict type checking.
These are only some of the changes, but they are enough to show you that
[Link] is separated from VBScript by two major evolutionary leaps. All these
features are available in order .NET language such as c#, but Visual Basic and
VBScript developers will have to deal with some of the greatest changes from
what they know.

[Link]

Introduction to [Link]:

[Link] is more than the next version of Active Server Pages (ASP);It is a
unified Web development platform that provides services necessary for developers to
build enterprise-class Web application .While [Link] is largely syntax compatible with
ASP, it also provides a new programming model and infrastructure for more secure,
scalable, and stable applications, free to augment your existing ASP applications by
incrementally adding [Link] functionality to them.

[Link] is a compiled, .NET- based environment; to author application in any


.NET compatible language, including Visual Basic .NET. [Link] has been designed to
work seamlessly with WYSIWYG HTML editors and other programming tools,
including Microsoft Visual Studio .NET. Not only does this make Web development
easier, but it also provides all the benefits that these tools have to offer, including a GUI
that developers can use to drop server controls onto a Web page and fully integrated
debugging support.

Developers can choose from the following two features when creating an
[Link] application

 Web Forms
 Web services

Web Forms:
Web Forms allow to build powerful forms-based Web pages. When building
these pages, it use [Link] server controls to create common UI elements, and
program them for common tasks. These controls allow to rapidly build a Web
Form out of reusable built-in or custom components, simplifying the code of a
page.

Web services:
An XML Web service provides the means to access server functionality remotely.
Using Web services, businesses can expose programmatic interfaces to their data
or business logic, which in turn can be obtained and manipulated by client and
server applications. XML Web services enable the exchange of data in client-
server or server-server scenarios, using standards like HTTP and XML messaging
to move data across firewalls.

Features of [Link]

• In ASP development skills, the new [Link] programming model will seem very
familiar. However, the [Link] object model has changed significantly forms
ASP, making it more structured and object-oriented.
• Accessing databases from [Link] applications is an often-used technique for
displaying data to Web site visitors. [Link] makes it easier than ever to access
databases for this purpose. It also allows to manage the database from the code.
• [Link] provides easy-to-use application and session-state facilities that are
familiar to ASP developers and are readily compatible with all other .NET
Framework APIs.
• [Link] configuration settings are stored in XML-based files, which are human
readable and writable. Each of the applications can have a distinct configuration
file and to extend the configuration scheme to suit to certain requirements.
• The .NET Framework and [Link] provide default authorization and
authentication schemes for Web applications. It can easily remove, add to, or
replace these schemes, depending upon the needs of the application.
• All [Link] code is compiled, rather than interpreted, which allows early
binding, strong typing, and just-in-time (JIT) compilation to native code, to name
only a few of its benefits. [Link] is also easily factorable, meaning that
developers can remove modules (a session module, for instance) that are not
relevant to the application they are developing.

• For advanced developers who want to use APIs as powerful as the ISAPI
programming interfaces that were included with previous versions of ASP,
[Link] offers the IHttpHandler and IHttpModule interfaces

Introduction to Web Forms Pages


A Web Forms page presents information to the user in any browser or client
device and implements application logic using server-side code. Web Forms page
output may contain almost any HTTP-capable language, including HTML, XML,
WML, and ECMAScript (JScript, JavaScript).

Web Forms pages are:


• Based on Microsoft [Link] technology in which code that runs on the server
dynamically generates Web page output to the browser or client device. Based on
Microsoft [Link] technology in which code that runs on the server dynamically
generates Web page output to the browser or client device
• Compatible with any browser or mobile device. A Web Forms page automatically
renders the correct browser-compliant HTML for features such as styles, layout,
and so on. Alternatively, you can design your Web Forms pages to run on a
specific browser such as Microsoft Internet Explorer 5 and take advantage of the
features of a rich browser client.
• Compatible with any language supported by the .NET common language runtime,
including Microsoft Visual Basic, Microsoft Visual C#, and
Microsoft JScript .NET.
• Built on the Microsoft .NET Framework. This provides all the benefits of the
framework, including a managed environment, type safety, and inheritance.
• Flexible because you can add user-created and third party controls to them.

ASP WEBSERVER CONTROLS

Label:
Use the Label control to display text in a set location on the page. Unlike static
text, customize the displayed text by setting the Text property.

<asp: Label id="Label1"


Text="label"
runat="server"/>
or
<asp: Label id="Label1"
runat="server">
Text
</asp: Label>
Text box:
The Textbox server control is an input control that lets the user enter text. By
default, the TextMode property is set to Single Line, which creates a text box with only
one line. It can also set the property to MultiLine or Password. MultiLine creates a text
box with more than one line. Password creates a single-line text box that masks the value
entered by the user.

The display width of the text box is determined by its Columns property. If the
text box is a multiline text box, the display height is determined by the Rows
property.

<asp: Textbox id=value


AutoPostBack="True|False"
Columns="characters"
MaxLength="characters"

Rows="rows"
Text="text"
TextMode="Single | Multiline | Password"
Wrap="True|False"
OnTextChanged="OnTextChangedMethod"
runat="server"/>

Checkbox:
The Checkbox control creates a check box on the Web Forms page that allows
the it user to switch between a true or false state.

Note because the <asp: Checkbox> element has no content, you can close the
tag with /> instead of using a separate closing tag.
Use the Checked property to specify or determine whether the Checkbox control
is checked. The Checked Changed event is raised when the form is posted to the server
and the state of the Checkbox control changed from the previous post. User can
provide an event handler for the Checked Changed event to customize the actions
performed when the state of the Checkbox control changes between posts to the server.

Note When creating multiple Checkbox controls, it can also use the Checkbox
List control. The Checkbox List control is easier to use for creating a set of check boxes
using data binding, while the individual Checkbox control gives a greater control over
layout

<asp: Checkbox id="CheckBox1"


AutoPostBack="True|False"
Text="Label"
TextAlign="Right|Left"
Checked="True|False"

OnCheckedChanged="OnCheckedChangedMethod"
runat="server"/>

Button:
The Button control allows to create a push button on the Web Forms page. There
are two types of buttons that can be created. It can create either a submit button
or a command button.

A submit button does not have a command name (specified by the Command
Name property) associated with the button and simply posts the Web page back to the
server. By default, a Button control is a submit button. It can provide an event handler
for the Click event to Programmatically control the actions performed when the submit
button is clicked.
A command button has a command name associated with the button (such as
Sort) by setting the Command Name property. This allows you to create multiple
Button controls on a Web Forms page and programmatically determine which Button
control is clicked in the event handler for the Click event. It can also use the Command
Argument property with a command button to provide addition information about the
command to perform, such as Ascending. It can provide an event handler for the
Command event to programmatically control the actions performed when the command
button is clicked.

Note because the <asp: Button> element has no content, it can close the tag
with /> instead of a separate closing tag

<asp: Button id="MyButton"


Text="label"
CommandName="command"
CommandArgument="commandArgument"
OnClick="OnClickMethod"
runat="server"/>

List Box:
Use the List Box control to create a list control that allows single or multiple
item section. Use the Rows property to specify the height of the control.

To enable multiple item selection, set the Selection Mode property to


[Link].
<Asp: ListBox id="Listbox1"
DataSource="<% databindingexpression %>"
DataTextField="DataSourceField"
DataValueField="DataSourceField"
AutoPostBack="True|False"
Rows="rowcount"
SelectionMode="Single|Multiple"
OnSelectedIndexChanged=
"OnSelectedIndexChangedMethod"runat="server">
the AlternatingItemTemplate element by setting its style
[Link] layout of an item when it has been set into edit mode.
This template typically contains editing

controls (such as TextBox controls). The EditItemTemplate is invoked for a row in the
DataList control when the EditItemIndex is set to the ordinal number of that row.
FooterTemplateThe text and controls to render at the bottom of the DataList control.
The FooterTemplate cannot be data bound. Header Template. The text and controls to
render at the top of the DataList control. The HeaderTemplate cannot be data bound.
ItemTemplate the elements to render once for each row in the data
[Link] elements to render when the user selects an item in the
DataList control. Typical uses are to expand the number of data fields displayed and to
visually mark the row with a [Link] elements to render between
each item. The SeparatorTemplate item cannot be data [Link] can customize the
appearance of the Data List control by specifying a style for the different parts of the
control. The following table lists the style properties that control the appearance of the
different parts of the Data List control.

Style propertyDescriptionStyle class:


Alternating Item Style The style for every other [Link] Edit Item
Style. The style for the item being edited. Table Item Style Footer Style The style for the
footer at the end of the list (if any).Table Item Style Header Style. The style for the
header at the beginning of the list (if any).TableItemStyleItemStyleThe style for
individual items. StyleSelectedItemStyleThe style for the selected item. Note The Data
List control differs from the Repeater control by supporting directional rendering (by
use of the RepeatColumns and Repeat Direction properties) and the option to render
within an HTML table.

The Items collection contains the data-bound members of the DataList control.
The collection is populated when the Bind method is called on the Data List control. The
header (if any) is added first, then one Item object for each data row. If a
SeparatorTemplate exists, Separators are created and added between each item, but
these are not added to the Items collection.

<asp:DataList id="DataList1"
CellPadding="pixels"
CellSpacing="pixels"
DataKeyField="DataSourceKeyField"
DataSource='<% databindingexpression %>'

ExtractTemplateRows="True|False"
GridLines="None|Horizontal|Vertical|Both"
RepeatColumns="ColumnCount"
RepeatDirection="Vertical|Horizontal"
RepeatLayout="Flow|Table"
ShowFooter="True|False"

ShowHeader="True|False"
OnCancelCommand="OnCancelCommandMethod"
OnDeleteCommand="OnDeleteCommandMethod"
OnEditCommand="OnEditCommandMethod"
OnItemCommand="OnItemCommandMethod"
OnItemCreated="OnItemCreatedMethod"
OnUpdateCommand="OnUpdateCommandMethod"
runat="server">
<AlternatingItemStyle property="value"/>
<EditItemStyle property="value"/>
<FooterStyle property="value"/>
<HeaderStyle property="value"/>
<ItemStyle property="value"/>
<SelectedItemStyle property="value"/>
<SeparatorStyle property="value"/>
<HeaderTemplate>
Header template HTML

</HeaderTemplate>
<ItemTemplate>
Item template HTML
</ItemTemplate>
<AlternatingItemTemplate>
Alternating item template HTML
</AlternatingItemTemplate>
<EditItemTemplate>
Edited item template HTML
</EditItemTemplate>
<SelectedItemTemplate>
Selected item template HTML
</SelectedItemTemplate>
<SeparatorTemplate>
Separator template HTML
</SeparatorTemplate>
<FooterTemplate>
Footer template HTML
</FooterTemplate>
</asp:DataList>
Dropdown List:
Use the Dropdown List control to create a single selection drop-down list
control. it can control the appearance of the Dropdown List control by setting the
Border Color, Border Style, and Border Width properties.

To specify the items that to appear in the Dropdown List control, place a list
Item element for each entry between the opening and closing tags of the Dropdown List
control.

The Dropdown List control also supports data binding. To bind the control to a
data source, first create a data source, such as a [Link] object,
that contains the items to display in the control. Next, use the [Link] method
to bind the data source to the Dropdown List control. The Dropdown List control will
now display the information from the data source.

Use the Selected Index property to programmatically determine the index


of the item selected by the user from the Dropdown List control.

<asp:DropDownList id="DropDownList1"
runat="server"
DataSource="<% databindingexpression %>"
DataTextField="DataSourceField"
DataValueField="DataSourceField"
AutoPostBack="True|False"
onSelectedIndexChanged=
"OnSelectedIndexChangedMethod">

<asp:ListItem value="value"
selected="True|False">
Text
</asp:ListItem>
</asp:DropDownList>

Image:
Use the Image control to display an image on the Web Forms page. Setting the
ImageUrl property specifies the path to the displayed image. It can specify the text to
display in place of the image when the image is not available by setting the Alternate
Text property. The alignment of the image in relation to other elements on the Web Forms
page is specified by setting Image Align property.

Note Because the <asp:Image> element has no content, It can close the tag with
/> instead of using a separate closing tag.

<asp:Image id="Image1"
runat="server"
ImageUrl="string"
AlternateText="string"
imagealign="NotSet|AbsBottom|AbsMiddle|BaseLine|
Bottom|Left|Middle|Right|TextTop|Top"/>

ImageButton:
Use the ImageButton control to display an image that responds to mouse clicks.

Both the Click and Command events are raised when the ImageButton control
is clicked.
By using the On Click event handler, you can programmatically
determine the coordinates where the image is clicked. It can then code a response based
on the values of the coordinates. Note the origin (0, 0) is located at the upper-left corner
of the image.
It can use the On Command event handler to make the Image Button control
behave like a command button. A command name can be associated with the control by
using the Command Name property. This allows multiple Image Button controls to be
placed on the same Web page. The value of the Command Name property can then be
programmatically identified in the On Command event handler to determine the
appropriate action to perform when each Image Button control is clicked. The
Command Argument property can also be used to pass additional information about the
command, such as specifying ascending order.

Note Because the <asp:ImageButton> element has no content, it can close


the tag with /> instead of using a separate closing tag.

<asp:ImageButton id="ImageButton1"
ImageUrl="string"
Command="Command"
CommandArgument="CommandArgument"
OnClick="OnClickMethod"
runat="server"/>

Panel:
The Panel control is a container for other controls. It is especially useful when to
generate controls programmatically or hide/show a group of controls.

<asp:Panel id="Panel1"
BackImageUrl="url"
horizontalAlign="Center|Justify|Left|NotSet|Right"
Wrap="True|False"
runat="server">
(Other controls declared here)
</asp:Panel>
Table:
The Table class allows to build an HTML table and specify its characteristics. A
table can be built at design time with static content, but the Table control is often built
programmatically with dynamic contents.

Note Programmatic additions or modifications to a table row or cell will


not persist across posts to the server. Table rows and cells are controls of their own, and
not properties of the Table control. Changes to table rows or cells must be reconstructed
after each post to the server. If substantial modifications are expected, use the DataList
or DataGrid controls instead of the Table control.

<asp:Table id="Table1"
BackImageUrl="url"
CellSpacing="cellspacing"
CellPadding="cellpadding"
GridLines="None|Horizontal|Vertical|Both"
horizontalAlign="Center|Justify|Left|NotSet|Right"
runat="server">
<asp:TableRow>
<asp:TableCell>
Cell text
</asp:TableCell>
</asp:TableRow>
</asp:Table>

HyperLink:
Note Because the <asp:HyperLink> element does not need to contain content, it
can close the tag with /> instead of using a separate closing tag.
<asp:HyperLink id="HyperLink1" ""
NavigateUrl="url"
Text="HyperLinkText"
ImageUrl="url"
Target="window"
runat="server"/>
or

<asp:HyperLink id="HyperLink1"""
NavigateUrl="url"
ImageUrl="url"
Target="window"
runat="server">

Text
</asp:HyperLink>

RadioButton:
The RadioButton server control creates a radio button on the Web Forms page. It
can group multiple radio buttons together to specify the same GroupName for each
RadioButton control. Grouping radio buttons together will only allow a mutually
exclusive selection from the group.

<asp:RadioButton id="RadioButton1"
AutoPostBack="True|False"
Checked="True|False"
GroupName="GroupName"
Text="label"
TextAlign="Right|Left"
OnCheckedChanged="OnCheckedChangedMethod"
runat="server"/>

INTRODUCTION TO DATA ACCESS WITH


[Link]

This introduction presents a high-level overview of these most important


concepts. The topic deliberately skips over many details-for example, there is much
more to datasets than what is mentioned here-in favor of simply introducing the
ideas behind data integration in [Link].

[Link] Does Not Depend On Continuously Live Connections:

In traditional client/server applications, components establish a connection to a


database and keep it open while the application is running. For a variety of
reasons, this approach is impractical in many applications:
Open database connections take up valuable system resources. In most cases, databases
can maintain only a small number of concurrent connections.

 In [Link] web applications, the components are inherently disconnected from


each other. The browser requests a page from the server; when the server has
finished processing and sending the page, it has no further connection with the
browser until the next request.
 A model based on always-connected data can make it difficult and impractical to
exchange data across application and organizational boundaries using a connected
architecture. If two components need to share the same data, both have to be
connected, or a way must be devised for the components to pass data back and
forth.
Database Interactions Are Performed Using Data Commands:
To perform operations in a database, it execute SQL statements or stored
procedures (which include SQL statements). Use SQL statements or stored
procedures to read and write
rows and perform aggregate function, such as adding or averaging and also use
SQL statements or stored procedures to create or modify tables or columns, to
perform transactions, and so on.

In [Link] you use data commands to package a SQL statement or stored


procedure. For example, to read a set of rows from the database, create a data command
and configure it with the text of a SQL select statement or the name of a stored procedure
that fetches records.
When you want to get the rows, you do the following:

1) database connection
2) Call an execute method of the command, which in turn:
a) Executes the SQL statement or stored procedure referenced by the command.
b) Then closes the connection

The connection stays open long enough to execute the statement or stored
procedure.

When call a commands execute methoed, it returns a value. If the command


queries the database with a SELECT statement, the command can return a set of
rows. Data commands can include parameters (specially, a collection of
parameter objects) that to create parameterized queries such as the following:
Select * from customers where (customer_id = @customerid)

Set the parameters at run time and execute the command to return or update the
data.
The [Link] Object Model:
These objects are the foundation of [Link] programming, and we will
return to them consistently over the create, read, update, and process data.

Data Namespaces:
The [Link] components live in five main namespaces in the .NET class
library. The following list describes each data namespace:

[Link]:
These include DataSet and DataRelation, which allow you to manipulate
structured relational data. These classes are totally independent of any specific of
database or the way you use to connect to it.

[Link]:
Instead, they are used by other classes in the [Link] and
[Link] namespaces, which inherit from them and provide specific
versions customized for SQL Server and OLE DB providers.

[Link]:
You use to connect to the OLE DB provider, including OleDbCommand and
OleDbConnection

[Link]:
These classes like SqlDbCommand and SqlDbConnection, provide all the same
properties and methods as their counterparts in the System.

[Link]:
Contains structures for SQL server-specific data types such as Sql Money and
SqlDateTime. These data types aren’t required, but they do allow you to avoid any
potential rounding or conversion problems that could adversely affect [Link]
may also increase speed by eliminating the need for automatic conversions.

[Link] Objects:
These objects can be divided into two groups: those that are used to contain
and manage data and those that are used to connect to a specific datasource.

The [Link] objects in this second group are provided in two different flavors:
the standard version of OLE DB providers, and a special version for SQL Server
interaction that increases performance. For example, SqlCommand and
OleDbCommand both allow to execute an SQL statement or stored procedure
against a data source.

The Data Objects:


The data objects allow you to store a local, disconnected copy of data.

DataSet:
The DataSet class stores disconnected information drawn from a database
and allows to manipulate it as a single, neatly packaged [Link] contains
two main types of objects: DataTables and DataRelations.

DataTable:
The DataTable object represents one of these tables. It contains a collection
of DataRows, which contains all the data in the table. The DataTable class includes a
Select method that allows to grab a subset of rows that match a specified filter
expression, in a specified sort order.

DataRow:
Each DataRow represents a single row of information in the table. It can access
individual values the field name or a field index.
DataColumn:

Unlike the DataRow objects, the DataColumn objects don’t contain any
actual data. Instead, they store information about the column, such as the column’s
data type’, its default value, and various restrictions.

DataRelation:
Each DataRelation object specifies a single parent/child relationship between two
different tables in a DataSet. To create a DataRelation in a Dataset to mirror the
logic in the database, to do it manually.
SQL SERVER

The dataset is a disconnected, in-memory representation of data. It can be


considered as a local copy of the relevant portions of the database. The Dataset is
persisted in memory and the data in it can be manipulated and updated independent of the
database. When the use of this Dataset is finished, changes can be made back to the
central database for updating. The data in Dataset can be loaded from any valid data
source like Microsoft SQL server database, an Oracle database or from a Microsoft
Access database.

DATA PROVIDER

The Data Provider is responsible for providing and maintaining the connection to
the database. A Data Provider is a set of related components that work together to provide
data in an efficient and performance driven manner. The .NET Framework currently
comes with two Data Providers: the SQL Data Provider which is designed only to work
with Microsoft's SQL Server 7.0 or later and the OleDb Data Provider which allows us to
connect to other types of databases like Access and Oracle.

• Each Data Provider consists of the following component classes:


• The Connection object which provides a connection to the database
• The Command object which is used to execute a command
• The Data Reader object which provides a forward-only, read only, connected
record set
• The Data Adapter object which populates a disconnected Dataset with data and
performs update.

Data access with [Link] can be summarized as follows

A connection object establishes the connection for the application with the
database. The command object provides direct execution of the command to the database.
If the command returns more than a single value, the command object returns a Data
Reader to provide the data. Alternatively, the Data Adapter can be used to fill the Dataset
object. The database can be updated using the command object or the Data Adapter.

Component classes that make up the Data Providers

CONNECTION OBJECT

The Connection object creates the connection to the database. Microsoft Visual
Studio .NET provides two types of Connection classes: the Sql Connection object, which
is designed specifically to connect to Microsoft SQL Server 7.0 or later, and the OleDb
Connection object, which can provide connections to a wide range of database types like
Microsoft Access and Oracle. The Connection object contains all of the information
required to open a connection to the database.

COMMAND OBJECT

The Command object is represented by two corresponding classes: Sql Command


and OleDb Command. Command objects are used to execute commands to a database
across a data connection. The Command objects can be used to execute stored procedures
on the database, SQL commands, or return complete tables directly. Command objects
provide three methods that are used to execute commands on the database.

• Execute NonQuery: Executes commands that have no return values such as


INSERT, UPDATE or DELETE

• Execute Scalar: Returns a single value from a database query.

• Execute Reader: Returns a result set by way of a Data Reader object.

DATA REDER OBJECT

The Data Reader object provides a forward-only, read-only, connected stream


record set from a database. Unlike other components of the Data Provider, Data Reader
objects cannot be directly instantiated. Rather, the Data Reader is returned as the result of
the Command object's Execute Reader method. The Sql Command. Execute Reader
method returns a Sql Data Reader object, and the OleDb Command. Execute Reader
method returns an OleDb Data Reader object. The Data Reader can provide rows of data
directly to application logic when you do not need to keep the data cached in memory.
Because only one row is in memory at a time, the Data Reader provides the lowest
overhead in terms of system performance but requires the exclusive use of an open
Connection object for the lifetime of the Data Reader.

DATA ADAPTER OBJECT

The Data Adapter is the class at the core of ADO .Net’s disconnected data access.
It is essentially the middleman facilitating all communication between the database and a
Dataset. The Data Adapter is used either to fill a Data Table or Dataset with data from the
database with its Fill method. After the memory-resident data has been manipulated, the
Data Adapter can commit the changes to the database by calling the Update method. The
Data Adapter provides four properties that represent database commands.

• Select Command

• Insert Command

• Delete Command

• Update Command

When the Update method is called, changes in the Data Set are copied back to the
database and the appropriate Insert Command, Delete Command, or Update Command is
executed.

Overview of the SQL server 7.0


Microsoft SQL sever is a Structured Query Language (SQL) based, client/server
relational database. Each of these terms describes a fundamental part of the architecture
of the SQL sever.

Database

A database is similar to data file in that it is a storage place for data. Like a data
file, a database dose not present information directly to a user; the user runs an
application that accesses data from the database and present it to the user in an
understandable format.

A database typically has two components: the file holding the physical database
and the database management system (DBMS) software that application use to access
data. The DBMS is responsible for enforcing the database structure, including

• Maintaining the relationships between data in the database.


• Ensuring that data is stored correctly and that the rules defining data relationship
are not violated.
• Recovering all data to a point of known consistency in case of system failures.

Relational Database

There are different ways to organize data in a data but relational database are one
of the most effective. Relational database systems are an application of mathematical set
theory to the problem of effectively organizing data. In relational database, data is
collected into tables (called relations in relational theory).
When organizing data into tables, you can usually find many different ways to
define tables. Relational database theory defines a process, normalization, which ensures
that the set of tables you define will organize your data effectively.

Client/Server

In a client server system, the server relatively, large computer in accentual


location that manages a resource used by many people. When individuals need to use the
resource, they connect over the network from the computer, or client, to the server.

Structure Query Language SQL)

To work with data in a database, you must use a set of commands and statements
(language) defined by the DBMS softer. There are several different languages that can be
used with relational database; the most common is SQL. Both the American National
Standards Institute (ANSI) and the International Standards Organization (ISO) have
defined standards for SQL. Most modern DBMS products support the Entry Level of
SQL-92, the SQL standard (published in 1992).

SQL Server Features

Microsoft SQL Server supports a set of features that result in the following
benefits. Ease of installation, deployment, and use SQL server includes a set of
administrative and development tools that improve your ability to install, deploy, manage,
and use SQL server across several sites.
Scalability

The same database engine can be used across the platforms ranging from laptop
computers running Microsoft Windows 95/98 to large, multiprocessor servers running
Microsoft Windows NT, Enterprise Edition.

Data Warehousing

SQL Sever includes tools for extracting and analyzing summary data for online
analytical processing (OLAP). SQL Server also includes tools for visually designing
database and analyzing data using English based questions.

• System integration with other server software

• SQL Server integrates with e-mail, the Internet, and Windows.

• Database

A database in Microsoft SQL Server consists of a collection of tables that contain


data, other objects, such as views, indexes, stored procedures, and triggers, defined to
support activities performed with the data. The data stored in a database is usually related
to a particular subject or process, such as inventory information for a manufacturing
warehouse.
SQL Server can support many database, and each database can store either interrelated
data or data unrelated to that in the other database. For example a server can have one
database that stores personnel data and another that stores product-related data.
Alternatively, one database can store current customer order data, and another; related
database can store historical customer orders that are used for yearly reporting. Before
you create a database, it is important to understand the part of a database and how to
design these parts to ensure that the database performs well after it is implemented.

Benefits of [Link]

The .NET Framework includes a new data access technology named [Link],
an evolutionary improvement to ADO. Though the new data access technology is
evolutionary, the classes that make up [Link] bear little resemblance to the ADO
objects with which you might be familiar. Some fairly significant changes must be made
to existing ADO applications to convert them to [Link]. The changes don't have to be
made immediately to existing ADO applications to run under [Link], however.

ADO will function under [Link]. However, the work necessary to convert
ADO applications to [Link] is worthwhile. For disconnected applications, [Link]
should offer performance advantages over ADO disconnected record sets. ADO requires
that transmitting and receiving components be COM objects. [Link] transmits data in
a standard XML-format file so that COM marshaling or data type conversions are not
required.

[Link] has several advantages over ASP.

The following are some of the benefits of [Link]:


o Make code cleaner.
o Improve deployment, scalability, and reliability.
o Provide better support for different browsers and devices.
o Enable a new breed of web applications.

VB Script

VB Script, some times known as Visual Basic Scripting Edition, is Microsoft’s


answer to Java Script. Just as Java Script’s syntax loosely based on Java. VB Script’s
syntax is loosely based on Microsoft Visual Basic a popular programming language for
Windows machines.

Like Java Script, VB Script is a simple scripting and we can include VB Script
statements within an HTML document. To begin a VB Script, we use the <script
LANGUAGE=”VB Script”>tag.

VB Script can do many of the same things as Java Script and it even looks similar
in some cases.

It has two main advantages:


For these who already know Visual Basic, it may be easier to learn than Java
Script.
It is closely integrated with ActiveX, Microsoft’s standard for Web-embedded
applications.

VB Script’s main disadvantage is that only Microsoft Internet Explorer supports


it. Both Netscape and Internet Explorer, on the other hand, support Java Script is also a
much more popular language, and we can see it in use all over the Web.

ActiveX
ActiveX is a specification develops by Microsoft that allows ordinary Windows
programs to be run within a Web page. ActiveX programs can be written in languages
such as Visual Basic and they are complied before being placed on the Web server.
ActiveX application, called controls, are downloaded and executed by the
Web browser, like Java applets. Unlike Java applets, controls can be installed
permanently when they are downloaded; eliminating the need to download them again.
ActiveX’s main advantage is that it can do just about anything.
This can also be a disadvantage:

Several enterprising programmers have already used ActiveX to bring exciting


new capabilities to Web page, such as “the Web page that turns off your computer” and
“the Web page that formats disk drive”.

Fortunately, ActiveX includes a signature feature that identifies the source of the
control and prevents controls from being modified. While this won’t prevent a control
from damaging system, we can specify which sources of controls we trust.

ActiveX has two main disadvantages


It isn’t as easy to program as scripting language or Java.
ActiveX is proprietary.
It works only in Microsoft Internet Explorer and only Windows platforms.
[Link]

[Link] provides consistent access to data sources such as Microsoft SQL


Server, as well as data sources exposed via OLE DB and XML. Data-sharing consumer
applications can use [Link] to connect to these data sources and retrieve, manipulate,
and update data.

[Link] cleanly factors data access from data manipulation into discrete
components that can be used separately or in tandem. [Link] includes .NET data
providers for connecting to a database, executing commands, and retrieving results.
Those results are either processed directly, or placed in an [Link] Dataset object in
order to be exposed to the user in an ad-hoc manner, combined with data from multiple
sources, or remote between tiers. The [Link] Dataset object can also be used
independently of a .NET data provider to manage data local to the application or sourced
from XML.

Why [Link]?

As application development has evolved, new applications have become loosely


coupled based on the Web application model. More and more of today's applications use
XML to encode data to be passed over network connections. Web applications use HTTP
as the fabric for communication between tiers, and therefore must explicitly handle
maintaining state between requests. This new model is very different from the connected,
tightly coupled style of programming that characterized the client/server era, where a
connection was held open for the duration of the program's lifetime and no special
handling of state was required.

In designing tools and technologies to meet the needs of today's developer,


Microsoft recognized that an entirely new programming model for data access was
needed, one that is built upon the .NET Framework. Building on the .NET Framework
ensured that the data access technology would be uniform—components would share a
common type system, design patterns, and naming conventions.

[Link] was designed to meet the needs of this new programming model:
disconnected data architecture, tight integration with XML, common data representation
with the ability to combine data from multiple and varied data sources, and optimized
facilities for interacting with a database, all native to the .NET Framework.

Leverage Current ADO Knowledge

Microsoft's design for [Link] addresses many of the requirements of today's


application development model. At the same time, the programming model stays as
similar as possible to ADO, so current ADO developers do not have to start from scratch
in learning a brand new data access technology. [Link] is an intrinsic part of the .NET
Framework without seeming completely foreign to the ADO programmer.

[Link] coexists with ADO. While most new .NET applications will be written
using [Link], ADO remains available to the .NET programmer through .NET COM
interoperability services. For more information about the similarities and the differences
between [Link] and ADO.

[Link] provides first-class support for the disconnected, n-tier programming


environment for which many new applications are written. The concept of working with a
disconnected set of data has become a focal point in the programming model. The
[Link] solution for n-tier programming is the Dataset.

XML Support
XML and data access are intimately tied—XML is all about encoding data, and
data access is increasingly becoming all about XML. The .NET Framework does not just
support Web standards—it is built entirely on top of them.
4. SYSTEM DESIGN

4.1. DATA MODEL


4.2.1. SYSTEM FLOW DIAGRAM

System Flow - Admin

Admin

E-Banking

User

Admin Module

Admin Login

Add New User

Clear Pending Cheques

Issue ATM Card for Waiting List

Edit Details of Existing User


System Flow – Customer User

User Module
Change Password

User
Login View Balance till Date
[Mini / Detail Statement]

ADD Payee Transactions Booking ATM Card

ADD Payee ATM Transition


With in Chennai (If User Has ATM Card)

ADD Payee Deposit


With in India [Thro Cheque / Cash]

ADD Other Withdrawal


Bank Payee [Thro Cheque or without
Cheque]
5. TESTING

INTRODUCTION:
After finishing the development of any computer based system the next
complicated time consuming process is system testing. During the time of testing only the
development company can know that, how far the user requirements have been met out,
and so on.

Following are the some of the testing methods applied to this effective project:

SOURCE CODE TESTING:

This examines the logic of the system. If we are getting the output that is required
by the user, then we can say that the logic is perfect.

SPECIFICATION TESTING:

We can set with, what program should do and how it should perform under
various condition. This testing is a comparative study of evolution of system performance
and system requirements.

MODULE LEVEL TESTING:

In this the error will be found at each individual module, it encourages the
programmer to find and rectify the errors without affecting the other modules.

5.1 UNIT TESTING:

Unit testing focuses on verifying the effort on the smallest unit of software-
module. The local data structure is examined to ensure that the date stored temporarily
maintains its integrity during all steps in the algorithm’s execution. Boundary conditions
are tested to ensure that the module operates properly at boundaries established to limit or
restrict processing.
INTEGRATION TESTING:

Data can be tested across an interface. One module can have an inadvertent,
adverse effect on the other. Integration testing is a systematic technique for constructing
a program structure while conducting tests to uncover errors associated with interring.

VALIDATION TESTING:

It begins after the integration testing is successfully assembled. Validation


succeeds when the software functions in a manner that can be reasonably accepted by the
client. In this the majority of the validation is done during the data entry operation where
there is a maximum possibility of entering wrong data. Other validation will be
performed in all process where correct details and data should be entered to get the
required results.

RECOVERY TESTING:

Recovery Testing is a system that forces the software to fail in variety of ways and
verifies that the recovery is properly performed. If recovery is automatic, re-initialization,
and data recovery are each evaluated for correctness.

SECURITY TESTING:

Security testing attempts to verify that protection mechanism built into system
will in fact protect it from improper penetration. The tester may attempt to acquire
password through external clerical means, may attack the system with custom software
design to break down any defenses to others, and may purposely cause errors.

PERFORMANCE TESTING:

Performance Testing is used to test runtime performance of software within the


context of an integrated system. Performance test are often coupled with stress testing
and require both software instrumentation.
5.2. BLACKBOX TESTING:

Black- box testing focuses on functional requirement of software. It enables to


derive ets of input conditions that will fully exercise all functional requirements for a
program.
Black box testing attempts to find error in the following category:

• Incorrect or missing function


• Interface errors
• Errors in data structures or external database access and performance
errors.

OUTPUT TESTING:

After performing the validation testing, the next step is output testing of the
proposed system since no system would be termed as useful until it does produce the
required output in the specified format. Output format is considered in two ways, the
screen format and the printer format.

USER ACCEPTANCE TESTING:

User Acceptance Testing is the key factor for the success of any system. The system
under consideration is tested for user acceptance by constantly keeping in touch with
prospective system users at the time of developing and making changes whenever
required

5.3. WHITE BOX TESTING

Based on knowledge of the internal logic of an application code, tests are based on
coverage of code statements, branches, paths and conditions.
6. CONCLUSION

The project A Core Transaction Process ([Link]) is an important domain and this
domain

having its role with the people in all categories. E-Banking is the easiest way to maintain

their bank. It gives the opportunity to carry over bank with us i.e. wherever we go we can

utilize our own bank activities through Internet through E-Banking. Customers of this

portal handles their day-to-day bank activities through our E-Banking. View our Account

(Salary, Current, Savings, and Loans), Balance enquiry, Fund Transfer, Credit Card

Payments, Credit Card Booking are some major modules of this portal.

The developed software is tested with sample data and outputs obtained in

according to the requirements. The performance of the system is evaluated, and is found

to be much more efficient than the existing system. Though it could not be claimed that

ours is an ideal project, it will meet the primary requirements of the concern, even though

we have tried our level best to make it a dream project has to be improved by having

modifications as and when the necessity arises in due course


7. SAMPLE SCREEN
8. BIBLIOGRAPHY

1. [Link] Bible - Mirdula Parihar

2. Microsoft [Link] step by step - Rebecca [Link]

3. C# Programmer’s Handbook - Gregory S. MacBeth

OTHER REFERENCES

1. [Link]

2. Microsoft Development Network Library (MSDN)

3. [Link]

4. [Link]
5. [Link]

You might also like