Você está na página 1de 112

1.

INTRODUCTION

Online_Shopping is the process whereby consumers directly buy and sell goods,
services etc. interactively in real-time without an intermediary service over the internet.

Online_Shopping is the process of buying and selling goods on the Internet. Since the
emergence of the World Wide Web, merchants have sought to sell their products to people who surf
the Internet. Shoppers can visit web stores from the comfort of their homes and shop as they sit in
front of the computer. Consumers buy a variety of items from online stores. In fact, people can
purchase just about anything from companies that provide their products online. Vegetables,
Fruits, Beverages and Breads, Dairy Milk, etc are which people can buy from our online store.

Many people choose to conduct shopping online because of the convenience. For example, when
a person shops at a brick-and-mortar store, He/ she has to drive to the store, find a parking place, and
walk throughout the store until He/ she locates the products he/ she needs. After finding the items he/she
wants to purchase, she/he may often need to stand in long lines at the cash register.

Despite the convenience of Online_Shopping, not everyone chooses to purchase items and
services online. Some people like the idea of physically going to a store and experiencing the shopping
process. Online_Shopping doesn't permit shoppers to touch products or have any social interaction. It
also doesn't allow them to take the merchandise home the same day they buy it.

Online_Shopping allows you to browse through endless possibilities, and even offers
merchandise that's unavailable in stores. If you're searching for a niche product that may not be
distributed locally, you're sure to find what you're looking for on the internet. What's even more useful
is the ability to compare items, similar or not, online. You can search multiple stores at the same time,
comparing material quality, freshness and pricing simultaneously.

Shopping via the internet eliminates the need to shift through a store's products with potential all
slung over one arm. Online_Shopping also eliminates the catchy, yet irritating music, as well as the
hundreds, if not thousands, of other like-minded individuals who seem to have decided to shop on the
same day.

Say 'goodbye' to the days when you stood in line waiting, and waiting, and waiting some more for
a store clerk to finally check out your items. transactions occur instantly-saving you time to get your
other errands done! Additionally, unlike a store, Online_Shopping has friendly customer service
representatives available 24 hours a day, 7 days a week to assist you with locating, purchasing and
shipping your merchandise.

1
Project approach and Functional Requirements:

Initial functional requirements will be: -


1. Secure registration and profile management facilities for Customers
2. Browsing through the e-Mall to see the items that are there in each category of products like,
Kitchen accessories etc.
3. Creating a Shopping cart so that customers can shop n no. of items and checkout finally with
the entire shopping carts
4. Secured mechanism for checking out from the Shop (Credit card verification mechanism)
5. Updates to customers about the recently added items in the shop through various mechanisms.

Initial non functional requirements will be: -


1. Secure access of confidential data (users details). SSL can be used.
2. 24 X 7 availability
3. Better component design to get better performance at peak time

2
2. About the Organization

Name of the Company: Miracle Corporate Solutions Pvt. Ltd. (Miracle Technologies)
www.miracleindia.com
Miracle Technology are one of the fastest growing software solution, technical consultancy
and knowledge outsourcing company situated in India with offices at NOIDA, Bangalore and USA
(PA). Miracle Technology core areas are security systems, client server technology, web based
applications and security solutions.
Miracle's focus is on defining new modes of knowledge sharing systems to create pool of
experts and skilled resources in the field of IT and cutting edge technologies Application
Development, Software Development Business Analytics ,Web Designing Supply Chain
Management ,Network Infrastructure IT Consulting.
Customize Training, Career Training, Certifications, JOB Oriented Training, E-Learning,
Evaluation, and Non Technical Training, Train The- Trainer Training, Career Planning Seminar,
Professional Workshops and Consultancy on turnkey projects.

Address of the Company:


INDIA 1st Floor,B-12, Behind Delite Showroom,
Adjacent to Metro Station, Near Gol Chakkar,
Sector 2, NOIDA- 201301
Contact: 0120-3058446/7/8

Evaluation parameters of Miracle Technologies:


Research and Development:

Miracle Technologies has the expertise and experience in managing extended teams with
highly complex research groups.
1. Increasing Business Value
2. Reliable Global Partner

Miracle Technologies is established IT consulting and services companies offering wide range
Software solutions that help deliver superior business value. We conceptualize and develop
industry-specific technology solutions that are tailored to our customers requirements. We have
3
successfully undertaken and completed IT engagements for global corporations including Fortune
500 companies in 58countries.We help our customers remain competitive by providing cost-
effective and customized solutions in application development and maintenance, enterprise resource
planning SAP and Oracle. Our domain expertise in focus areas including BFSI, Telecom,
Manufacturing, ISVs and International Organizations enables us to offer business relevant
Solutions. Complementing this domain expertise is our focus on quality. We are committed to
providing consistently high quality delivery .Reliable Global Partner Proven Track Record Focus on
Customer Relationships Flexible Engagement Models Seasoned Team Established Software
Processes Knowledge Building.

SERVICES:
MIRACLE DEVELOPMENT
In Today's rapidly changing environment every organization has to face new standards of
quality assurance, new competition, increasing customer expectations etc. As a result business
enterprises are in constant need of reviewing and reengineering their processes in order to survive
and grow under competitive environment. Therefore our designed application software's can help
you meeting these cut throat competition requirements.

MIRACLE CONSULTANCY
MIRACLE CONSULTANCY SERVICES (mcs) is indeed pleasure to introduce ourselves as
one of the leading agencies in the field of Placement Services from Supervisory Level to Top
Management Level. We have distinguished ourselves by providing excellent and most reliable
services to various industries / establishments/ organizations/ institutions. We provide end to end
human resource services right from recruitment of personnel to development and alignment of their
capabilities to organizational vision.

MIRACLE EDUCATION
MIRACLE is always dedicated to provide quality training to MIRACLE Certified students
and to provide high profile jobs to MIRACLE Certified students through its concern MIRACLE
Consultancy Services. MIRACLE Education is proud to announce the successful completion of its
Summer/Vocational Training Program at STEP, IIT Roorkee, Greater Noida, Gwalior, Jaipur,
Moradabad Ajmer. Over 3000 Students had been provided successful training with project in .NET,
VHDL, Embedded System, Adv. Embedded System, C & C++, Oracle, Autocad, Matlab, Verilog
HDL, Catia, Java, J2EE, J2ME, Linux, Unix, Web Designing and many more in Summer Training
2008.

MIRACLE Objectives
Promote Computer Education & Technology.
Open platform for the development jobs.
Provide World Class Computer Education.
Organize Paper Presentation & Quizes.
Organize Conferences & Seminars.
Collaboration with Other Institutions.

4
3. Technology Used

3.1 Introduction to Java

Java is a high-level, third-generation programming language like C, FORTRAN, Perl and many
others. It is a platform for distributed computing a development and run-time environment that
contains built-in support for the World Wide Web.

History of Java

Java development began at Sun Microsystems in 1991, the same year the World Wide Web was
conceived. Javas creator, James Gosling did not design java for the Internet. His Objective was to
create a common development environment for consumer electronic devices which was easily
portable from one device to another. This effort evolved into a language, code named Oak and later
renamed Java that retains much of the syntax and power of c++, but is simpler and more platform-
independent.

Java Features

Some of the important features of Java are as follows:

Simplicity
Orientation
Platform Independence
Security
High Performance
Multi Threading
Dynamic linking.
Garbage Collection.

One of the most important features of Java is platform independence, which makes it famous
and suitable language for World Wide Web.

Why Java is Platform Independent?

Java is Platform Independent because of Java Virtual Machine (JVM).

Java Virtual Machine (JVM)

The client application or operating system must have a java byte-code interpreter to execute
byte-code instructions. The interpreter is a part of a larger program called the JVM. The JVM
interprets the byte code into native code and is available on platforms that support Java.

5
When the user runs a Java program, it is up to the JVM to load, possibly verify, and then execute
it. The JVM can perform this function from within a browser or any other container program or
directly on top of the operating system.

When a browser invokes the JVM to run a Java program, the JVM does a number of things:

It validates the requested byte-code, verifying that they pass various formatting and security
checks.
It allocates memory for the incoming java class files and guarantees that the security of JVM is
not violated. This is known as the class loader module.
It interprets the byte code instructions found in the class files to execute the program.

Connectivity using JDBC

There are four kinds of drivers available in Jdbc: -

Jdbc-Odbc Bridge Driver


Partly Java Driver
Native Driver
Pure Java Driver

Jdbc-Odbc Driver:

This provides a bridge between the Jdbc APIs and the Odbc APIs. The bridge translates the
standard JDBC calls to corresponding ODBC calls, and sends them to the ODBC data source via
ODBC libraries. This configuration requires every client that will run the application to have the
JDBC-ODBC bridge API, the ODBC driver and the native language-level APIs. As a result this
kind of driver is most appropriate on a corporate network where client installations are not a major
problem.

Partly Java Driver:

Jdbc database calls are translated into vendor-specific API calls. The database will process the
request & send the result back through the API, which in turn forwards them back to the Jdbc
drivers. The Jdbc driver translates the result to the Jdbc standard & returns them to the Java
application, hence this kind of driver has same problem that was with Jdbc-Odbc driver and is
mostly used in Intranet.

These are true 100% pure java real JDBC drivers. All the mechanism of the client access is
coded completely in java. There are no calls out off or into the virtual machine and native code
and there is no need for some costly server in the middle. Type 4 drivers are different for different
RDBMS and are available for almost all major RDBMS vendors.

6
Pure Java Driver:

This is a platform independent driver as this kind of driver remains on server. This kind of driver
is provided by third party vendor. This middle-ware server is able to connect its java clients to many
different databases. These are really non-drivers. They are front end for database access
servers and connectors. For ex: The proxy driver talks to the middle tier concentrator or access
server. The concentrator or access server in turn uses ODBC (or) vendor specific protocol to talk to
the actual database. The requirement for collaborating middle tier server is often cumbersome and
very expensive too.

Native Driver:

This kind of driver converts JDBC calls into the network protocol used by Database directly.
This allows a direct call from client machine to the Database server.
These are true 100% pure java real JDBC drivers. All the mechanism of the client access is
coded completely in java. There are no calls out off or into the virtual machine and native code and
there is no need for some costly server in the middle. Type 4 drivers are different for different
RDBMS and are available for almost all major RDBMS vendors.

Client Side Interface:

In client side interface we are using:-

Servlet / JSP for Internet Based Application.

Servlet / JSP are middle-ware technologies which are used in web based projects because they
use:-

HTTP Protocol to handle Request and Response.


They are invoked through Browser.
They give output in HTML format.
They need Browser Support.

3.1(a) ABOUT J2EE

Introduction to J2EE:

The multi-tier architecture such as COBRA has got its own


advantages in terms of scalability, performance and reliability.

In a multi-tier architecture, a client does not interact directly with


the server. Instead, it first contacts another layer called Middleware. The middleware instantiates the
7
server applications and messages the server object. It returns results to the clients. The presence of a
middleware layer allows programmers to concentrate on business logic of application. The
middleware handles low-lever services, such as thread handling, security, and transactions
management.

Sun Microsystems introduced the J2EE application server and the enterprise Java Bean (EJB)
specifications as a venture into the multi-tier component architecture. J2EE functions as a middle
tier server in three tier architectures.

It provides certain specifications that can be used to implement enterprise solutions for certain all
types of business requirements. J2EE also offers cost effective solution for business solution.

J2EE is used for developing, deploying and executing applications in a distributed environment.
The J2EE applications server acts as a platform for implementing various server side technologies
Servlets, Java Server Pages (JSP) and Enterprise Java Bean (EJB). J2EE allows you to focus on
your business logic program. The business logic is coded in java program, which are reusable
component that can be accessed client program EJB runs on J2EE server.

In J2EE security is handled almost entirely by platform and its admin. The developer
does not have to worry about writing the security logic.

J2EE Architecture:

The J2EE SDK architecture consists of the following components:

The J2EE server


The EJB Container
The Web Container

The J2EE server provides the EJB and web containers. The J2EE server enforces
authenticating users. The either service provided by the J2EE server are listed here below.
It allows client to interact with Enterprise Bean.
It enables a web browser to access servlets and JSP files
It provides naming and directory services to enable users and various services to
locate and search for services and components.

The EJB container manages the execution of Enterprise Bean for J2EE server. EJB is a
specification for making server side component that enable and simplifies the task of creating
distributed objects. EJB component provide services such as transaction and security management
and can be customized during deployment.
The web container manages the executing of JSP and servlets for J2EE applications web
components and their container run on the J2EE server. Servlets of the java program that can be
deployed on a java enable web server to enhances and extend the functionality of the web server for
example you can write a servlets to add a manager service to a website.

8
Servlet can also be used to add dynamic content to web pages. Java Server Page (JSP) adds
server side programming functionality to java. JSP consists of regular Html tags representing the
static content and code enclosed within special tags representing the dynamic content. After
compilation, a JSP generates a servlets and therefore incorporates all the servlets functionalities.

J2EE Application:

J2EE applications are complex access data from a variety of source and cater to a variety of
client. To manage these applications the business function conducted in the middle tier. The J2EE
platform acts as a middle tier and provides the necessary environment needed by the application.
The J2EE platform provides write once, run anywhere, portability and scalability for multi-tier
application. It also minimizes complexity for building multi-tier application.

To create a J2EE application we need to create following three components:

(1) J2EE application client


(2) Enterprise Bean
(3) Web component

Each of these components is packaged into a file with a specified file format. A J2EE application
client is a Java application that run in a environment that enable it to access to the J2EE services. A
J2EE application client is packaged into a .jar (Java archive) file. The web components are
packaged into a .war (Web archive) file.
An Enterprise Bean consists of three files: the EJB class, Home and Remote Interfaces.
The Enterprise Beans are bundled into an EJB.jar file. The .jar, .war and EJB.jar are assembled into
a J2EE application, which is an .ear file. The .ear file is then deployed to the J2EE server.

The race for market share in the database industry has increased with the advent of client-
server platforms. Oracle is one of the most successful companies that has released a number of
development tools including SQL *PLUS, PL/SQL that enables faster and easier application
development and its management.

Oracle is the robust Database System, it support very large database. Moreover Oracle is widely
used as back end for client / server applications. Administrative tools of Oracle help in securing the
Data / Information.

9
Process of creating a J2EE application:

Enterprise
Bean Component
(.jar (.jar

Assembled

J2EE Application
Server Deployed
(.jar

J2EE
Server

J2EE Technologies:

The J2EE includes many technologies such as:

o Enterprise Java Beans (EJB)


o Remote Method Invocation (RMI)
o Java Naming and Directory Interface (JNDI)
o Java Database Connectivity (JDBC)
o Java Transaction API (JTA)
o Java Transaction Services (JTS)
o Java Messaging Services (JMS)
o Java Servlet & Java Server Pages (JSP)
o Extensible Markup Language (XML)

EJB:

Enterprise Java Beans (EJB) is write once, run anywhere middle tier component consisting of
method that implements the business rule. Enterprise Bean encapsulates the business logic. There
are two types of Enterprise Bean: Entity Bean and Session Bean.

10
RMI:

Remote Method Invocation is defined for the communication of remote objects in the middle
tier of the distribute application. It enables a Java object to communicate remotely with other Java
object.

JDBC:

Java Database Connectivity provides a Database programming API for Java program. A JDBC
API contains a set of classes and Interfaces that are used to connect a database build using any
DBMS or RDBMS. It also submit SQL query to a database and retrieve its and processes the result
of SQL query.

JTA & JTS:

Java Transaction API (JTA) and Java Transaction Service (JTS) are transaction API. One can
use these API to democrat whether the transaction starts or ends.

JMS:

Java Messaging Service is an API that J2EE platform include to send mail via Internet.

Servlet:

Servlets are used to develop a variety of web-based application. They make use of the extensive
power of the Java API such as networking and URL access, multithreading, database connectivity,
internationalization, RMI and object serialization. Java Server Pages (JSP) adds server side
programming functionality to Java. Both Servlet and JSP allow the creation of database driven web
application and have server side programming capability.

XML:

J2EE uses Extensible Markup Language as a Markup language to describe the contents. The
described file created when deploying the J2EE application is an XML file.

J2EE SDK TOOLS:

J2EE SDK includes following tools:

1. The Deployment Tool.

11
2. The J2EE Server.
3. The Cloud Scale Server.
4. The Clean-up Script.
5. The Packager Tool.
6. The Realm Tool.
7. The Run Client Script.
8. The Verifier Tool.

The J2EE Security:

The architecture of the J2EE is such that it enforces security in the application. In order to access
the J2EE services, a user need to prove his/her identity. Such users are called J2EE users and
process is called authentication. The J2EE authentication services are different from security of the
operating system. The users of the operating system and the users of the J2EE belong to a different
realm. A realm is a group of users that have the same authentication policy. The users of J2EE
belong to a two different realms that are respectively authentication by certificates and defaults.
J2EE certificate to authenticate a web browser client. In most cases, the J2EE services use the
default realm to authenticate a user. J2EE users may also belong to a group. A group is a collection
of users who have common feature for eg. The user belonging to a group may all belonging to a
group coding same module. Similarly project managers might belong to a different group.

When J2EE application client execute its request that you enter login id and password. If the
combination of both username and password correct the J2EE allow you to access the services. The
J2EE server also enforces security by process known as authentication. Authorization is a process
by which the permissions are assigned by server to invoke the method of Enterprise Bean.

JAVA BEANS

The java beans specification allows software components to be written in java, which
encapsulate the logic behind the web application and remove the bulk of the code that would
otherwise clutter up JSPs. The result is JSP code that is simpler, easier to maintain and which is
more readily accessible to non-programmers.

A bean uses properties to describe internal data that affects how it works and what it shows. In
java the actual bean property data is usually a private or protected field, which can be edited by
publicly available methods. In other words beans allow access to internal data via public get and set
methods. This confirms to object orientation norms, which hide internal data from users and explore
it only through accessor methods. Another aspect of this component is that it should be able to
communicate with other objects or beans. Java beans accomplish this by firing events and listening
to them. A bean that is interested in what happens to an object external to itself can register itself as
a listener for various events in that object. Conversely an external object can register itself to listen
to that bean. This concept is really the key to providing standalone software components.

12
BOUND PROPERTIES:

One way of exporting events is to use bound properties. When a property value changes a bound
property can inform other parts of the application that its value is changed.

BEAN EVENTS:

The property change support class should cater for most of the needs. However on many
occasions beans will still need to communicate even though no property change activity has
occurred.

BEAN PERSISTANCE AND STORAGE:

For a component to be really useful it must be possible to save it and any values it may contain
and reload it to the same state at a later date. No matter how wonderful the component we create it
will not be used much if it has to reset every time it is retrieved. Java beans use the serializable
interface to address these issues.

The serializable interface has no methods to implement. It is simply on indicator to the compiler
that object may be made persistence by serialization. In practice serialization generally means
saving the bean to a file using the object output stream classes. Then to restore the bean to read
from the same file using object input stream. To make java bean to be serializable we need to do is
add the serializable interface in the class declaration.

3.1.(b) JDBC

There are many classifications of databases available as Hierarchical database, Network


database, Relational database, Object databases and soon. Due their flexibility Relational database
management systems are most successful bread of databases in the history of computing. Ex: -
Oracle, IBMdb2, and Microsoft SQL Server.
A technology that enables JSP base applications to interact directly with database engines is
called Java Database Connectivity and is an integral part of Java platform. JDBC/JSP based web
application access the database connections. These connections must be managed carefully by the
application especially if a large number of concurrent users may be accessing them. To make this
performance optimization JDBC uses a mechanism called connection pooling. The evaluation of
this open database access technology has led to a mirade of driver architecture.

13
Interaction of JSP Page with JDBC

Application Server Machine

Client Machine
Web
server
Browser
with
HTML
JSP JDBC
Engine Driver

DB Server Machine

RDBMS
Server

Here the browser using the web application is not required to support java at all. The JSP has
full control over how many JDBC connections are made to the server. The client never makes direct
JDBC connection to the server. This solution can work readily through a firewall, only standard
HTTP is used between the web server and the client.

As a bonus this solution sends itself to easily secured information simply by adding secured
socket layer support to the web server. Because of this separation of the presentation from the
business logic, which is separated from the database logic, this sort of system is often called three
tiers of the system. Although the application server and database server can also running on the
same server machine.

There is still one minor problem with this scenario. Project personal accessing the JSP page
containing the embedded JDBC code can easily and inadvertently modify the database access code
and this may result in an erroneous application or even corrupted database. There are 2 solutions for
this:

14
1. Create java beans or java classes that encapsulate all the JDBC operations. This is
significantly better solution. But instantiation, initialization and parameterization of the java class or
the beans can still represent a significant amount of embedded java code with in the JSP.

2. Create a tag extension set to pushdown all the database access logic. The data access
logic programmers write the set of custom tags. The JSP application logic designers will then use
the set of custom tag to create their application.

JSP Engine

JSPs

Custom tag
Custom Java
extension
beans/classes

JDBC Driver Other DB access


Technologies

3.2 BECK-END

ORACLE 10g

Why we are using Oracle (RDBMS)?

Some of the merits of using Oracle (RDBMS) are as under:

Centralization of database.
Client Server Technology.
Security.
Normalization of Data Base.
Relationship.
Transaction Processor.
It gives some internet related features.

Hence because of these features we are using Oracle as a back-end technology.

15
Weather you are working on LAN projects or Distributed projects, there are two sides of it:-

Front End
Back End

Front End remains on client side. Front end is made for end user who uses our application.
Basically in front end, our input-output forms reside which takes the input from the client and gives
output back to client.

Backend remains on server side and has two components viz.

Server side programs


Data Base

Database is the most important thing in this universe as database gives identity to a thing. It
provides us with a repository where we can store ample amount of data, at one place. Without a
database, existence of a thing is impossible.

While working on a project first step is to design a database.

What is a database?

Data Base is a collection of tables and table is a collection of records in a tabular form i.e. in row
and columns format.

Data Base can be divided into two parts:-

RDBMS
DBMS

We will be using RDBMS (Relational Database Management System) in our project i.e. oracle
10.0 Enterprise Edition.

ABOUT ORACLE 10.0

Oracle 10.0 contains all the features of previous version. It also supports some new features &
enhancement to some existing features. Oracle servers provide deficient & effective solution for the
major features.

Large Database & Space Management Control

Oracle supports the largest database potential of hundreds of Giga Bytes in size. To make
efficient use of expensive devices, it allows full control of space usage.

Many Concurrent Database Performances

16
It supports large no of concurrent users executing a variety of database applications operation on
the same data. It minimizes data connection & guarantees data concurrency.

High Transaction Processing Performance

Oracle maintains the processing features with a high degree of overall system performance.
Database users dont suffer from slow processing performance.

High Availability

Oracle works 24 hours a day with no downtime or limited database throughput. Normal system
operation such as database backup & partial system failure doesnt interrupt database use.

Controlled Availability

Oracle can selectively control the availability of data at the database level & sub database level.
E.g. an administrator can disallow use of a specific application .Data can be reloaded without
affecting other application.

Industry Accepted Standards

Oracle adheres to industry accepted standards for the data access language operating system,
user interface & network communication protocols.

Manageable Security

To protect against unauthorized database aspects & users, Oracle provides failsafe security
features to limit & monitor the data area. The system makes it easy to manage even the most
completed designs for data assets.

Database Enforced Integrity

Oracle enforces data integrity Business rules, that dictate the standards for applicable data. As
a result, the cost of coding & managing checks in many database applications is eliminated.

Distributed Database System

For community environment that are connected via networks, Oracle combines the data
physically located on different computers in one logical database that can be accessed by all the
network users. Distributed systems have same degree of user transparency & data consistency as
non-distributed systems, yet receive the advantages of local database management.

Portability

Oracle software is compatible to work under different operating system & same on all system.
Applications developed on Oracle can be used on virtually any system with little or no more
modification.

17
Compatibility

Oracle software is compatible with industry standards, including most industry standard
operating systems. Applications developed on Oracle can be used on virtually any system with little
or no modification.

Connectivity

Oracle software allows different types of computers & operating system to share information in
networks.

NEW FEATURES OF ORACLE 10.0

Improved Scalability

The maximum size of an Oracle database has been increased to support hundreds of terabytes
depending on the operating system on which it resides.

Improved Security

Oracle 10.0 server now includes password management so that a password has a limited lifetime
& must meet certain complexity such as minimum length. An account can be locked after a
specified number of failed login attempts.

Improved Performance via Partition

A table of index can be divided into smaller pieces called partitions, based on the value of one or
more columns. A table partitions can be individually managed so that operation in one partition does
not affect the availability of data on other partitions. Also insert, update, delete operations against a
partitioned table can be processed partially.

In other words, the Oracle 10 server can assign a portion of the work to execute a single DML
statement to multiple processes, which may then be allocated to multiple processes by the server
operating system. As a result, the parallel DML operations are completed more quickly.

Enhanced Support for Database Replication

The performance & manageability of database replication has been significantly improved.

Capability to handle a much larger number of concurrent users

By pooling database connection, the Oracle 8 server is able to service a much larger number of
concurrent users, up to 3000, depending on the servers operating system & server hardware
resources.

New & Improved Data Types


18
Some existing data types have been enhanced & new data types have been introduced.

Improved Select Statement

A new feature of the select statement allows a sub query to be used in place of a table in a from
clause.

Now when we are discussing Database, there is one more thing attached to it, i.e. Data Base
Models

Database Models
There are three kinds of database models:-

Single tier architecture.


Two tier architecture.
N- Tier architecture.

Single tier Architecture:

In this kind of architecture, database and client application remains on one machine i.e.
there is no client-server technology, there is no centralization of database, and basically it is a stand
alone system.

Two tier Architecture

In this kind of architecture, database and client application is on two different machines i.e.
Database on one machine and the application on another machine. In this type of architecture, the
implementation of client-server technology is done and centralization of data base is there, but it has
two demerits:-

Security is not there


Multiple Client access is not there.

N- Tier Architecture: - In this kind of architecture, there is a middle-ware in between the


client and database. Middle ware checks the validity of the client i.e. weather the client can access
the database or not. Hence there is security in it as well as middle-ware allows multiple clients
access.

What is Middle-Ware?

Middle-ware is a concept. Middle-ware provides centralization of business logic i.e. instead of


putting logic on each and every client machine we put logic on a centralized server. Hence middle
ware is nothing but a server side program where all your business logic and business methods
reside. It remains on server side and it has all the logical building. Middle ware provides: -

Multiple Client access.


Centralized business logic in case of distributed application.

19
Because we are working on Distributed Application Based Project we need platform independent
Language like Java

3.3 Glade-The Interface Designer

ECLIPSE:-

In computer programming, Eclipse is an integrated development environment (IDE)


It contains a base workspace and an extensible plug-ins system for customizing the environment
Written mostly in java, Eclipse can be used to develop applications
By means of various plug-ins, Eclipse may also be used to develop applications in other
programming languages : Ada, ABAP, C, C++, COBOL, Fortran, Haskell, JavaScript, Lasso, Lua,
Natural, Perl, PHP, Prolog, Phython, R, Ruby, Scala, Clojure, Groovy, Scheme, Android and Erlang
It can also be used to develop packages for the software Mathematical
Development environments include the Eclipse Java development tools (JDT) for Java and Scala,
Eclipse CDT for C/C++ and Eclipse PDT for PHP, among others.
Released under the terms of the Eclipse public license, Eclipse SDK is free and open source
software
It was one of the first IDEs to run under GNU classpath and it runs without problems under IcedTea

Version Date Platform Projects Main Changes


Name Version

N/A 21 June 3.0


2011
N/A 28 June 3.1
2011
Callisto 30 June 3.2 Callisto
2011 projects
Europa 29 June 3.3 Europa
2011 projects
Ganymede 25 June 3.4 Ganymede
2012 projects
Galileo 24 June 3.5 Galileo
2012 projects
Helios 23 June 3.6 Helios
2013 projects
Indigo 22 June 3.7 Indigo
2013 projects
Juno 27 June 3.8 and Juno
2014 4.2 projects
Kepler 26 June 4.3 Kepler
2015 projects
Luna 25 June 4.4 Luna Integrated Java 8
2015 projects support (in the
previous version
this was possible
via a "Java 8
patch" plugin)
Mars 24 June 4.5 Mars
2016 projects
(planned)

20
Neon June 2016 4.6 Neon
(planned) projects

4. REQUIREMENT ANALYSIS

4.1. PROBLEM STATEMENT

What is the problem?

The basis for developing candidate system is the identification of need for a new or modified
system. The problem must be known before it can be solved. This leads to preliminary survey or an
initial investigation by the system analyst to determine the requirements of the users and the
organization. It entails looking into the duplication of effort, bottlenecks, or inefficient static nature
of current system or whether parts of the existing system would be candidates for the change.

Thus, during the problem analysis phase, focus of the development team is on the completion of
following three tasks:

Defining the problem and deciding whether to proceed.


Analyzing the current system in depth and determining the requirements which are to be met by
the mew or modified application. The knowledge regarding the current system s gathered through :
Data Flow Diagrams
Structured English
Decision Tree
Selecting the best solution depending upon capability of computer system, manpower, time and
budget requirements and defining its function. Thus the need analysis phase focuses on what the
system must do, not how the features will be implemented.

It is the objective of the feasibility study at the beginning of the system development process to
examine whether the proposals can be carried out successfully and which option is the best choice
for development.

Estimation of the resources and the schedule for software development efforts requires experience,
access to good information and the courage to commit various quantitative measures.

PROBLEM DEFINITION
To develop a web-based application to improve the service to the customers and merchant which in
turn increases the sales and profit in CLICK2SHOP??"

21
4.2 The Challenge Where to begin:

Initial functional requirements will be: -


6. Secure registration and profile management facilities for Customers
7. Browsing through the e-Mall to see the items that are there in each category of products like,
Kitchen accessories etc.
8. Creating a Shopping cart so that customers can shop n no. of items and checkout finally with
the entire shopping carts
9. Secured mechanism for checking out from the Shop (Credit card verification mechanism)
10. Updates to customers about the recently added items in the shop through various
mechanisms.

Initial non functional requirements will be: -


4. Secure access of confidential data (users details). SSL can be used.
5. 24 X 7 availability
6. Better component design to get better performance at peak time

STUDY OF EXISTING SYSTEM


Information systems projects originate from many reasons:

to achieve greater speed in processing data, better accuracy and improved consistency, faster
information retrieval, integration of business areas, reduced cost and better security. The sources
also vary project proposals originate with department managers, senior executives and systems
analysis. Sometimes the real origin is an outside source, such as a government agency which
stipulates a systems requirements the organisattion must meet. When the request is made, the
first systems activity, the preliminary investigation, begins. The activity has three parts: request
clarification, feasibility study and request approval.

Existing System:
The existing system was an automated system. But It was found to be inefficient in
meeting the growing demands of population .

Disadvantage of the existing system:

1. Time Consuming
2. Expensive
3. Needed an agent
4. We have to out for that.

SYSTEM ANALYSIS
1. This system is all about the converting the shopping system from manual to online.
2. Customer can buy products online after login to the site.
3. Administrator is adding product to database.
22
4. Administrator can edit or delete theproducts.
5. After buying and making payment the products are send to address that he has given.
6. Customer can write feedback for the product or services.
7. Admin can see daily sell and feedback given by customer.
8. Administrator is adding the delivery report to the database.
9. Both admin and customer can see the delivery report.

Purpose:
Click2Shoop tries to enhance access to care and improve the continuity and efficiency of services.
Depending on the specific setting and locale, case managers are responsible for a
variety of tasks, ranging from linking clients to services to actually providing intensive shopping and
delivery services themselves

Main objective:
To shop while in the comfort of your own home, without having to step out of the door.
sell at lower rate due to less over head.
provide home delivery free of cost.
No wait to see the products if someone else is taking that.

Scope:
This product has great future scope. Online_Shopping Internet software developed on and for
the Windows and later versions environments and Linux OS. This project also provides security
with the use of Login-id and Password, so that any unauthorized users can not use your account.
The only Authorized that will have proper access authority can access the software.

Need for the proposed system:


The Online_Shopping (HOME SHOP) is an easy to maintain, ready to run, scalable, affordable
and reliable cost saving tool from Software Associates suited for small, medium, and large
shopping complex and shopping malls.
Features and Benefits:
1. Providing security
2. Low cost
3. Basic computer knowledge required
4. Configurable and extensible application UI design
The proposed system can be used even by the nave users and it does not require any educational
level, experience, and technical expertise in computer field but it will be of good use if the user
has the good knowledge of how to operate a computer.

Function to be provided by new system


1. This system is all about the converting the shopping system from manual to online.

23
2. Customer can buy products online after login to the site.
3. Administrator is adding product to database.
4. Administrator can edit or delete the products from the database.
5. After buying and making payment the products are send to customers address that he has given.
6. Customer can write feedback for the product or services.
7. Admin can see daily sell and feedback given by customer.
8 Administrator is adding the delivery report to the database.
9.Both admin and customer can see the delivery report.

FEASIBILITY ANALYSIS

Prior to stating whether the system we have to develop is feasible or not we believe that we should
emphasize on what is implied by the word Feasibility. Feasibility is the measure of how
beneficial or practical the development of the system will be to the organization. It is a preliminary
survey for the systems investigation. It aims to provide information to facilitate a later in-depth
investigation.

Types

There are various measures of feasibility that helps to decide whether a particular project is feasible
or not. These measures include

1. Economic Feasibility: An evaluation of development cost weighted against the ultimate income
or benefit derived from the developed system.
2. Technical Feasibility: A study of function, performance and constraints that may affect the
ability to achieve an acceptable system.
3. Operational Feasibility: A study about the operational aspects of the system.

Each of these types will be explained in detail throughout the project report

Operational Feasibility

A proposed system is beneficial only if it can be turned into an information system that will meet
the operational requirements of an organization. A system often fails if it does not fit within existing
operations and if users resist the change.

Important issues a systems developer must look into are:

Will the new system be used if implemented in an organization?


Are there any major barriers to implementation or is proposed system accepted without
destructive resistance?

Another important fact to be regarded is the security control, which is handled by the system. Since
data regarding each Customer and the Organization is confidential, security is a key issue.
24
Information falling into the wrong hands could jeopardize the entire organization. Unlike in semi-
computerized systems

The proposed system offers adequate control to organize our files online and share with the users
and Security of data and information. This is handled by the system providing individuals with
separate login names and passwords.

The new system is user-friendlier, which enables the end-user to complete his/her work efficiently
and accurately with interest. After taking the above fact into consideration we can state the
operating of the proposed system within the organization is feasible.

In this phase of the feasibility study the following two main topics

1. Technical Performance Aspect and


2. Acceptance within the organization

Technical performance aspect is explained in the technical feasibility report and there is no new
information is needed in this to explain it again, but as for the acceptance within the organization
the following points are important and those are explained according to the topics

Whether the new system affects the current users in the system?

The new proposed system will affect the users in the following areas

Accuracy
Efficiency
Productivity
Robustness
Lesser time consuming

Technical Feasibility

Based on the outline design of the system requirements in terms f inputs, output, Procedures, the
technical issues raised during technical feasibility include:

1. Does the necessary technology exist to do what is proposed?


2. Does the proposed equipment have the technical capacity to hold the data required to use in the
new system?
3. Adequate responses provided by the proposed system?
4. Is the system flexible enough to facilitate expansion?
5. Is there any technical guarantee of accuracy, reliability, ease of access and data security?

The system developers task is to view needed capabilities in light of currently available technology.
Our site works hand in hand with high technology. A database has to be maintained in order to
update and backup data whenever required. To create databases we use SQL server. After taking the
above facts into consideration we can state that the new proposed system is technically feasible.

As the software is vary much economically feasible, then it is really important for it to be
technically sound. The software will be build among:

25
Front-End: J2EE/JSP
Logic Development: Servlet
Back-End: Oracle 10g/JDBC

Economical Feasibility

In making recommendations a study of the economics of the proposed system should be made.
Even though finding out the costs of the proposed project is difficult we assume and estimate the
costs and benefits as follows. According to the computerized system we propose, the costs can be
broken down in two categories.

1 Costs associated with the development of the system.

2 Costs associated with operating the system.

System Security

System security is a vital aspect when it comes to developing a system. The system should ensure
the facility of preventing unauthorized personnel from accessing the information and the data within
the system. The system should provide total protection for each users information so that the
integrity of data is sustained and also prevent hackers from hacking the system.

The proposed system ensures the security and the integrity of data. This is done by providing a
password login system for each authorized users. And for example the System Administrator has
access to all kinds of information. By providing this facility information is properly managed and
information is protected. For example the system administrators day to day tasks are lessened and
easier because he doesnt have to have a constant eye on the system and worry about hackers
hacking the system.

Description of Project

Online_Shopping is the process whereby consumers directly buy and sell goods, services etc.
interactively in real-time without an intermediary service over the internet. Online_Shopping is the
process of buying and selling goods on the Internet. Since the emergence of the World Wide
Web, merchants have sought to sell their products to people who surf the Internet. Shoppers can visit
web stores from the comfort of their homes and shop as they sit in front of the computer.
Consumers buy a variety of items from online stores. In fact, people can purchase just about
anything from companies that provide their products online. Books, household appliances, Tv
and videos, computers, laptops, cameras and mobiles etc are the which people can buy from our
online store.

Model Used:

Iterative Model

An iterative lifecycle model does not attempt to start with a full specification of requirements.
Instead, development begins by specifying and implementing just part of the software, which can
then be reviewed in order to identify further requirements. This process is then

26
repeated, producing a new version of the software for each cycle of the model. Consider an iterative
lifecycle model which consists of repeating the following four phases in sequence:

A Requirements phase, in which the requirements for the software are gathered and analyzed.
Iteration should eventually result in a requirements phase that produces a complete and final
specification of requirements. - A Design phase, in which a software solution to meet the
requirements is designed. This may be a new design, or an extension of an earlier design.
- An Implementation and Test phase, when the software is coded, integrated and tested.
- A Review phase, in which the software is evaluated, the current requirements are reviewed, and
changes and additions to requirements proposed. For each cycle of the model, a decision has to be
made as to whether the software produced by the cycle will be discarded, or kept as a starting point
for the next cycle (sometimes referred to as incremental prototyping). Eventually a point will be
reached where the requirements are complete and the software can be delivered, or it becomes
impossible to enhance the software as required, and a fresh start has to be made.
The iterative lifecycle model can be likened to producing software by successive
approximation. Drawing an analogy with mathematical methods that use successive approximation
to arrive at a final solution, the benefit of such methods depends on how rapidly they converge on
a solution. The key to successful use of an iterative software development lifecycle is rigorous
validation of requirements, and verification (including testing) of each version of the
software against those requirements within each cycle of the model. The first three phases of the
example iterative model is in fact an abbreviated form of a sequential V or waterfall lifecycle
model. Each cycle of the model produces software that requires testing at the unit level, for software
integration, for system integration and for acceptance. As the software evolves through
successive cycles, tests have to be repeated and extended to verify each version of the software.

Equipment

1. Workstation with a minimum of 1GB RAM and 20 GB of hard-disk storage


2. Oracle Server
Ecllipse
3. J2EE/Servlet/JSP

Tasks, Assignments, and Schedules

Research existing electronic shopping technology for effectiveness, ease of use, and security

27
Mar 3 Mar 8: Ajeet Kumar

Outline the specific modular components of the system


Mar 9Mar 13: Ajeet Kumar

Develop Software Requirement specification document


Mar 15 Mar19: Ajeet Kumar

Review Software Requirement specification document


Mar 21 Mar 25: Ajeet Kumar

Complete final Software Requirement specification document


Mar 28Apr 3: Ajeet Kumar

Database
Apr 4 Apr 7: Ajeet Kumar

Develop Code in JAVA for each module


Apr 10May 4: Ajeet Kumar

Test and debug each module


May 5 May9: Ajeet Kumar

Test and debug integrated system


May 10 May 15: Ajeet Kumar

Write final documentation


May 16 May20: Ajeet Kumar

4.3 Software and system requirement specification (Development)

Software requirement specification (SRS) is the starting point of the software development
activity. Little importance was given to this phase in the early days of software development. The
emphasis was first on coding and then shifted to design.

As systems grew more complex, it became evident that the goals of the entire system cannot be
easily comprehended. Hence the need for the requirement analysis phase arose. Now, for large
software systems, requirements analysis is perhaps the most difficult activity and also the most error
prone.

Some of the difficulty is due to the scope of this phase. The software project is initiated by the
clients needs. In the beginning these needs are in the minds of various people in the client
organization. The requirement analyst has to identify the requirements by talking to these people
and understanding their needs. In situations where the software is to automate a currently manual
process, most of the needs can be understood by observing the current practice.

The SRS is a means of translating the ideas in the minds of the clients (the input), into formal
document (the output of the requirements phase). Thus, the output of the phase is a set of formally
specified requirements, which hopefully are complete and consistent, while the input has none of
these properties.

28
Maintain customer profile.

The system shall allow user to create profile and set his credential.

The system shall authenticate user credentials to view the profile.

The system shall allow user to update the profile information.

Provide personalized profile


.
The system shall display both the active and completed order history in the customer profile.

The system shall allow user to select the order from the order history.

The system shall display the detailed information about the selected order.

The system shall display the most frequently searched items by the user in the profile.

The system shall allow user to register for newsletters and surveys in the profile.

Provide Customer Support.

The system shall provide online help, FAQs customer support, and sitemap options for customer
support.

The system shall allow user to select the support type he wants.

The system shall allow user to enter the customer and product information for the support.

The system shall display the customer support contact numbers on the screen.

The system shall allow user to enter the contact number for support personnel to call.

Email confirmation.

The system shall maintain customer email information as a required part of customer profile.

The system shall send an order confirmation to the user through email.

Detailed invoice for customer.

The system shall display detailed invoice for current order once it is confirmed.
29
The system shall optionally allow user to print the invoice.

Provide shopping cart facility.

The system shall provide shopping cart during online purchase.

The system shall allow user to add/remove products in the shopping cart.

Provide multiple shipping methods.

The system shall display different shipping options provided by shipping department.

The system shall enable user to select the shipping method during payment process.

The system shall display the shipping charges.

The system shall display tentative duration for shipping.

Online tracking of shipments

The system shall allow user to enter the order information for tracking.

The system shall display the current tracking information about the order.

Provide online Tax Calculations

The system shall calculate tax for the order.

4.4 Hardware & Software Requirements

Hardware requirement

The Click2Shop shall provide minimum hardware requirements. The


Following hardware configurations are required for a PC using the online shopping
Website

Main Processor Pentium IV/Core i3


Hard-disk Capacity 8 G.B
RAM 256 MB
Clock Speed 2.8 Hz
Floppy Drive: 1.44MB
Keyboard 104 Key
30
Monitor V.G.A
4.2 Software specification

Software Requirement

This section lists the requirements that are needed to run the system efficiently. The
Operating system needed for the system to run effectively, the interface to run the application, the
Driver for running Java web applications, the integrated development environment to develop the
Application, and the third-party tool used for editing purposes are as follows:

Operating System Window XP/7/8


Backend tool Oracle 10g/Jdbc
Front-end tool Java /sevlet/JSP

5. System Design and Algorithm

Introduction
System design provides the understandings and procedural details necessary for
implementing the system recommended in the system study. Emphasis is on the translating the
performance requirements into design specifications. The design phase is a transition from a user-
oriented document (System proposal) to a document oriented to the programmers or database
personnel.
System design goes through two phases of development:

a. Logical Design
b. Physical Design

A data flow diagram shows the logical flow of the system. For a system it describes the
input (source), output (destination), database (data stores) and procedures (data flows) all in a
format that meets the users requirement. When analysis prepare the logical system design, they
specify the user needs at a level of detail that virtually determines the information flow into an out
of the system and the required data resources. The logical design also specifies input forms and
screen layouts.
The activities following logical design are the procedure followed in the physical design
e.g., producing programs, software, file and a working system. Design specifications instruct the
user about what the system should do.

Logical and Output Design:


The logical design of an information system is analogous to an engineering blue print of
an automobile. It shows the major features and how they are related to one another. The detailed
specification for the new system was drawn on the bases of users requirement data. The outputs
inputs and databases are designed in this phase.
31
Output design is one of the most important features of the information system. When the
outputs is not of good quality the users will be averse to use the newly designed system and may not
use the system. There are many types of output, all of which can be either highly useful or can be
critical to the users, depending on the manner and degree to which they are used.
Outputs from computer system are required primarily to communicate the results of
processing to users, they are also used to provide a permanent hard copy of these results for later
consultation. Various types of outputs required can be listed as below:

External Outputs, whose destination is outside the organization


Internal outputs, whose destination is with the organization
Operational outputs, whose use is purely with in the computer department e.g., program-listing etc.
Interactive outputs, which involve the user is communicating directly with the computer, It is
particularly important to consider human factor when designing computer outputs. End user must
find outputs easy to use and useful to their jobs, without quality output, user may find the entire
system unnecessary and avoid using it. The term Output in any information system may apply to
either printer or displayed information. During the designing the output for this system, it was taken
into consideration, whether the information to be presented in the form of query of report or to
create documents etc.

Other important factors that were taken into consideration are:


The End user, who will use the output.
The actual usage of the planned information
The information that is necessary for presentation
When and how often output and their format is needed. While designing output for project based
Attendance Compilation System, the following aspects of outputs designing were taken into
consideration.
The outputs (i.e., well formatted table outputs in the screen itself) designed are simple to read and
interpret.
Format of each output was another important point taken into consideration. Output media, for each
output appropriate media is decided whether it will be displayed on screen or will be taken to
printer or both.
Other output design related specifications, i.e., how frequently the outputs will be generated, how many
pages or sheets approximately it will keep up, what is its planned use and output distribution to
users are also taken into account.
These were a few major designing issues, which were taken into consideration, while
deciding the output specifications for the system. As direct beneficiary of reports is the user
community, they were consulted constantly at every level. Formats and screen design for various
reports were identified, taking into account the user requirements. Before finalizing these were
given to users for any improvement and suggestions. End users issues taken into consideration were
Readability, Relevance and Acceptability.
Once all the output reports to be generated by ACS system were identified, they were
given to users for their acceptance. For prototyping various outputs, final outputs models were
created with dummy data, before they were finalized.

32
Output Sources:
Output contents originate from these sources:
Retrieval from a data source.
Transmission from a process or system activity.
Directly from an input source.
The information produced in an output can be presented as
Tabular contents
Graphic format
Using Icons

Output Definition:
The output should be defined in terms of:
Types of outputs
Content-headings, numeric, alphanumeric, etc.,
Format-hardcopy, screen, microfilm, etc.,
Location-local, remote, transmitted, etc.,
Frequency-daily, weekly, hourly, etc.,
Response-immediate with in a period, etc.,
Data items
The name given to each data item should be recorded and its characteristics described clearly in a
standard form:
Whether alphanumeric or numeric
Legitimate and specific range of characteristics
Number of characters
Positions of decimal point, arithmetic design, etc.,

Input Design:
The input design is the link that ties the information system into the users world. Input
specifications describe the manner in which data enters the system for processing. Input design
features can ensure the reliability of the system and produce results from accurate data, or they can
result in the production of erroneous information.

Input Design consists of


developing specifications and procedures for data preparation
Steps necessary to put data into a usable form for processing.
Data entry, the activity of putting data into the computer processing.

33
SOFTWARE DESIGN

The purpose of this phase is to plan a solution for the problem specified by the requirement
document. This is first step in moving from the problem domain to solution domain. Designing
activity is divided into two parts.

a) System Design
It aims to identify the modules that should be in the system, the
specification of these modules and how they interact with each other to produce the desired result.

b) Detailed Design
The internal goal of each of the modules specified in the system
design is decided

34
DATABASE DESIGN

A database is a collection of inter-related data stored with a minimum of redundancy to serve


many applications. It minimizes the artificiality embedded in using separate files. The primary
objectives are fast response time to enquires, more information at low cost, control of redundancy,
clarity and ease of use, accuracy and fast recovery. The organization of data in a database aims to
achieve three major objectives, they are data integration, data integrity and data independence.
During the design of the database at most care has been taken to keep up the objectives of the
database design.

CODE DESIGN

The process of code is to facilitate the identification and retrieve of items of information.
The code should be simple and easy to understandable. The codes were designed in such a way that
the features such as optimum human oriented use and machine efficiency are unaffected.

For the code to be designed effectively, the following characteristics were also considered while
designing the code.

Uniqueness
Versatility
Stability
Simplicity
Consciousness

The code should be adequate for present and anticipated data processing for machine and human
use. Care was taken to minimize the clerical effort and computer time required to continue
operation.

PROCESS DESIGN

The process can be conceptualized in such a way to keep the methodology of main module
process along with some auxiliary task, which will run concurrently with the main program.

The top-down approach is maintained so as to keep track of the process, which satisfies the
maintenance reliability testing requirements. The concurrency of the data is checked during data
entry, by means of validation check for data in each field.

Design Specification

Data Flow Diagram:

Data flow diagrams (DFD) was first developed by LARRY CONSTANTINE as way representing
system requirements in a graphical form; this lead to modular design. A DFD describes what data
flow (logical) rather than how they are processed, so it does not depend on hardware, software, data
structure or file organization. It is also known as bubble chart.

A Data Flow Diagrams is a structured analysis and design tool that can be used for flowcharting in
35
place of, or in association with, information-oriented and process-oriented systems flowcharts. A
DFD is a network that describes the flow of data and the processes that change, or transform, data
throughout a system. This network is constructed by using a set of symbols that do not imply a
physical implementation. It has the purpose of clarifying system requirements and identifying major
transformations that will become programs in system design. So it is the starting point of the design
phase that functionality decomposes the requirement specifications down to the lowest level of
detail.

The symbols used to prepare DFD do not imply a physical implementation, a DFD can be
considered to an abstract of the logic of an information-oriented or a process-oriented system flow-
chart. For these reasons DFDs are often referred to as logical data flow diagrams. The four basic
symbols used to construct data flow diagrams are shown below:

These are symbols that represent data flows, data sources, data transformations and data storage.
The points at which data are transformed are represented by enclosed figures, usually circles, which
are called nodes. The principle processes that take place at nodes are

1. combining data streams

2. splitting data streams

3. modifying data streams.

CAD (CONTEXT ANALYSIS DIAGRAM)

36
DFD FOR ADMIN:-

DFD FOR CUSTOMER:-

37
Use Case Model Survey:-

Use Case Model Survey Diagram

Buyers:
Buyers can visit the site, browse the catalog, purchase items, and give feedback and register
Themselves.
Admin:
Admin manages the Buyer, seller, Employee databases, update the items and categories in the
Catalog and create/delete user accounts.

38
Buyer use-case report

Use-case Diagram for Buyer

Admin Use Case Report:-

39
ER Diagram:-

40
Activity Diagrams:

User Registration Activity: Initially user is made to fill all mandatory fields filled in registration form.
Once the user clicks submit, the username is verified. If the username is already present, then the user
is again taken back, so that he can change the username. If the username is not present then it checks
for password and remaining mandatory fields. If any of the mandatory field is left empty or filled
incorrect, then the user is informed to enter the correct values. Once all these verifications are
succeeded, then the registration is done.

User Login Activity

User is made to enter the username and password. If it is a valid username and password, then the
user is logged in, or else they are asked to re enter the correct values.

41
Item purchase Activity
Buyer Log in and choose the item by browsing the catalog and if he is satisfied then he purchase the
item else he will not. And finally log out.

42
Activity Diagram Representing Purchase of item

Privileged User Login Activity.


Privileged User such as Admin, Employee and buyer/seller is made to enter the username and
password, entered values are verified. If it is a valid username and password, then the user is
logged in and assigned the respective privileges, or else they are asked to retry by entering the
correct values.

43
Activity Diagram Representing Privileged Log in Activity

44
Sequence Diagrams

Users Login Sequence Diagram

Sequence Diagram Representing Login Process


Authentication of Privileged Users Sequence Diagram

45
Sequence Diagram to Authenticate privileged users

46
Feedback Sequence Diagram

Sequence Diagram to Feedback

DataBase Design:-

47
ADMIN TABLE

CUSTOMER TABLE

FEEDBACK TABLE
48
CATEGORY TABLE

ADD ITEM TABLE


49
6. Coding

Web.xml

<?xml version="1.0" encoding="UTF-8"?>


<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-
app_2_4.xsd">
<welcome-file-list>
<welcome-file>/home_page/home.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>sendsms</servlet-name>
<servlet-class>sendsms</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sendsms</servlet-name>
<url-pattern>/sendsms</url-pattern>

</servlet-mapping>

50
<servlet>
<servlet-name>edit_item3</servlet-name>
<servlet-class>edit_item3</servlet-class>
</servlet>
<servlet>
<servlet-name>add_item_detail</servlet-name>
<servlet-class>add_item_detail</servlet-class>
</servlet>
<servlet>
<servlet-name>edit_category</servlet-name>
<servlet-class>edit_category</servlet-class>
</servlet>
<servlet>
<servlet-name>signup</servlet-name>
<servlet-class>signup</servlet-class>
</servlet>
<servlet>
<servlet-name>signin</servlet-name>
<servlet-class>signin</servlet-class>
</servlet>
<servlet>
<servlet-name>buy</servlet-name>
<servlet-class>buy</servlet-class>
</servlet>
<servlet>
<servlet-name>place_order2</servlet-name>
<servlet-class>place_order2</servlet-class>
</servlet>
<servlet>
<servlet-name>place_order2_unreg</servlet-name>
<servlet-class>place_order2_unreg</servlet-class>
</servlet>
<servlet>
<servlet-name>place_order4</servlet-name>
<servlet-class>place_order4</servlet-class>
</servlet>
<servlet>
<servlet-name>place_order4_unreg</servlet-name>
<servlet-class>place_order4_unreg</servlet-class>
</servlet>
<servlet>
<servlet-name>change_pass</servlet-name>
<servlet-class>change_pass</servlet-class>
</servlet>
<servlet>
<servlet-name>update_email</servlet-name>
<servlet-class>update_email</servlet-class>
</servlet>
<servlet>
<servlet-name>account</servlet-name>
<servlet-class>account</servlet-class>
</servlet>
<servlet>

51
<servlet-name>address</servlet-name>
<servlet-class>address</servlet-class>
</servlet>
<servlet>
<servlet-name>edit_category_add_field</servlet-name>
<servlet-class>edit_category_add_field</servlet-class>
</servlet>
<servlet>
<servlet-name>change_password</servlet-name>
<servlet-class>change_password</servlet-class>
</servlet>
<servlet>
<servlet-name>update_email_id</servlet-name>
<servlet-class>update_email_id</servlet-class>
</servlet>
<servlet>
<servlet-name>delete_order</servlet-name>
<servlet-class>delete_order</servlet-class>
</servlet>
<servlet>
<servlet-name>contact_us_unreg</servlet-name>
<servlet-class>contact_us_unreg</servlet-class>
</servlet>
<servlet>
<servlet-name>contact_us</servlet-name>
<servlet-class>contact_us</servlet-class>
</servlet>
<servlet>
<servlet-name>send_mail</servlet-name>
<servlet-class>send_mail</servlet-class>
</servlet>
<servlet>
<servlet-name>feedback</servlet-name>
<servlet-class>feedback</servlet-class>
</servlet>
<servlet>
<servlet-name>feedback_unreg</servlet-name>
<servlet-class>feedback_unreg</servlet-class>
</servlet>
<servlet>
<servlet-name>forgot_password</servlet-name>
<servlet-class>forgot_password</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>edit_item3</servlet-name>
<url-pattern>/edit_item3</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>single_upload_page1</servlet-name>
<servlet-class>single_upload_page1</servlet-class>
</servlet>
<servlet>
<servlet-name>edit_item1</servlet-name>

52
<servlet-class>edit_item1</servlet-class>
</servlet>
<servlet>
<servlet-name>edit_item2</servlet-name>
<servlet-class>edit_item2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>single_upload_page1</servlet-name>
<url-pattern>/single_upload_page1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>category_add</servlet-name>
<servlet-class>category_add</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>category_add</servlet-name>
<url-pattern>/category_add</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>add_item_detail</servlet-name>
<url-pattern>/add_item_detail</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>edit_item1</servlet-name>
<url-pattern>/edit_item1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>edit_item2</servlet-name>
<url-pattern>/edit_item2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>edit_category</servlet-name>
<url-pattern>/edit_category</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>signup</servlet-name>
<url-pattern>/signup</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>signin</servlet-name>
<url-pattern>/signin</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>buy</servlet-name>
<url-pattern>/buy</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>place_order2</servlet-name>
<url-pattern>/place_order2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>place_order2_unreg</servlet-name>
<url-pattern>/place_order2_unreg</url-pattern>

53
</servlet-mapping>
<servlet-mapping>
<servlet-name>place_order4</servlet-name>
<url-pattern>/place_order4</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>place_order4_unreg</servlet-name>
<url-pattern>/place_order4_unreg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>change_pass</servlet-name>
<url-pattern>/change_pass</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>update_email</servlet-name>
<url-pattern>/update_email</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>account</servlet-name>
<url-pattern>/account</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>address</servlet-name>
<url-pattern>/address</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>edit_category_add_field</servlet-name>
<url-pattern>/edit_category_add_field</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>change_password</servlet-name>
<url-pattern>/change_password</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>update_email_id</servlet-name>
<url-pattern>/update_email_id</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>delete_order</servlet-name>
<url-pattern>/delete_order</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>contact_us_unreg</servlet-name>
<url-pattern>/contact_us_unreg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>contact_us</servlet-name>
<url-pattern>/contact_us</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>send_mail</servlet-name>
<url-pattern>/send_mail</url-pattern>
</servlet-mapping>

54
<servlet-mapping>
<servlet-name>feedback</servlet-name>
<url-pattern>/feedback</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>feedback_unreg</servlet-name>
<url-pattern>/feedback_unreg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>forgot_password</servlet-name>
<url-pattern>/forgot_password</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
60
</session-timeout>
</session-config>
</web-app>

CSS

Style.Css
* { padding:0; margin:0; outline:0; }
body {
background:url(../images/b1.jpg);
background-size: 100%;
background-attachment: fixed;
font-family: "Trebuchet MS", Arial, sans-serif;
font-size:12px;
line-height:16px;
color:#636363;
padding-top: 5px;
}
input, textarea, select { font-family: "Trebuchet MS", Arial, sans-serif; font-size:12px; }

.field { background:#ebebeb; border:solid 1px #dedede; padding:2px;}

a img { border:0; }

a { color:#8b0000; text-decoration: underline; cursor:pointer; }


a:hover { color:#666; text-decoration: none; }

.left, .alignleft { float:left; display:inline; }


.right, .alignright { float:right; display:inline; }

.cl { font-size:0; line-height:0; clear:both; display:block; height:5px; }


55
.al { text-align: left; }
.ar { text-align: right; }
.ac { text-align: center; }

h2 { font-size:14px; line-height:16px; }
h3 { font-size:12px; line-height:14px; text-transform: uppercase; color:#000; }
h4 { font-size:12px; line-height:14px; text-transform: uppercase; color:#000; }

/* h1#logo { font-size:0; line-height:0; width:156px; height:64px; float:left; } */


/* h1#logo a{ display:block; height:64px; text-indent: -4000px;
background:url(../images/logo.gif); } */
h2#c2s1{font-family: serif; font-size: 40px; color: black; padding-left: 2px; }

.shell { width:960px; margin:0 auto; padding:10px; background:#fff;}

#header {width: 960px; height:64px; background:url(../images/header.gif); position:relative;}

#navigation { float:right; white-space:nowrap; }


#navigation ul{ list-style-type: none; height:104px; font-weight: bold; float:left;}
#navigation ul li{ float:left; display:inline; }
#navigation ul li a{ float:left; height:64px; line-height:64px; text-decoration: none; color:#fff;
padding:0 15px;}
#navigation ul li a.active,
#navigation ul li a:hover{ background:#fff; color:#8b0000; }

#cart { float:right; width:200px; top:0; right:0; height:51px; color:#fff; padding:13px 3px 0 10px;
white-space:nowrap; line-height:20px;}
a.cart-link { color:#fff; background:url(../images/cart-link.gif) no-repeat 0 0; padding:0 0 0 32px;
text-decoration: none;}
a.cart-link:hover { text-decoration: underline;}

#sidebar { float:left; width:226px;}


#content { float:right; width:724px;}

#main { padding:10px 0 0 0; }

.box { padding:1px; border:solid 1px #dedede; margin-bottom:18px;}


.box h2{ background:#7f7f7f; color:#fff; font-weight: normal; padding:0 5px; position:relative;
height:27px; line-height:27px; }
.box h2 span{ position:absolute; width:10px; height:5px; background:url(../images/h2-arr.gif);
top:27px; right:10px; font-size:0; line-height:0;}
.box-content { padding:5px;}

a.bul { background:url(../images/bul.gif) no-repeat 0 center; padding-left:10px;}

.search { min-height:252px;}
.search label { display:block; padding-bottom:3px; }

.search .field { display:block; margin-bottom:10px; }


.search .inline-field label { display:inline; padding:0; }
.search .inline-field .field { display:inline; margin:0; }

56
.search input.field { width:206px; }
.search select.field { width:212px; }
.search select.small-field { width:50px; }

.search-submit { width:70px; background:#8b0000; border:0; color:#fff; height:27px; display:block;


line-height:26px; cursor:pointer; margin:12px 0 10px 0;}

.categories { min-height:283px; }
.categories ul { list-style-type: none; font-size:13px;}
.categories ul li{ border-bottom:dashed 1px #ccc; padding:5px 0;}
.categories ul li.last{ border-bottom:0; padding-bottom:0;}
.categories ul li a{ color:#5f5f5f; text-decoration: none; background:url(../images/cat.gif) no-repeat
0 4px; padding-left:17px;}
.categories ul li a:hover{ color:#8b0000; }

#slider {
height:252px;
position:relative;
overflow:hidden;
}
#slider-holder { width:720px; height:252px; position:relative; overflow:hidden; }
#slider-holder .jcarousel-clip{ width:720px; height:252px; position:relative; overflow:hidden; }
#slider-holder ul{ width:720px; height:252px; position:relative; overflow:hidden; list-style-type:
none;}
#slider-holder ul li{ width:720px; height:252px; position:relative; overflow:hidden; float:left; }

#slider-nav { position:absolute; top:231px; left:644px; z-index:2;}


#slider-nav a{ font-size:0; line-height:0; text-indent: -4000px; width:10px; height:10px;
border:solid 1px #8b0000; background:#8b0000; float:left; margin-right:5px; }
#slider-nav a:hover,
#slider-nav a.active { background:#fff;}

.products {}
.products ul{ list-style-type: none;}
.products ul li{
position:relative;
padding: 20px 42px;
border:solid 0px #dedede;
float:left;
width:145px;
margin-right:10px;
height:160px;
overflow:hidden;
}
.products ul li.last{ margin-right:0; }

.product-info{
position:absolute;
width:217px;
top:110px;
left:10px;
height: 76px;

57
}
.product-info h3{ background:; color:balck; padding:6px 10px; }
.product-info h4{ font-weight: normal;}
.product-info p{ font-size:16px; line-height:18px; text-transform: uppercase; font-weight: bold;
color:#000; padding:5px 0 7px 0;}
.product-info .product-desc{ padding:10px; background:url(../images/info.png); width:180px; }

.price { display:block; font-size:15px; color:#8b0000; line-height:23px; padding: 0px 10px }

.more-products { border:solid 1px #dedede; position:relative; height:114px; overflow:hidden; }


.more-products ul{ list-style-type: none; height:94px; position:relative; overflow:hidden;
width:805px;}
.more-products ul li{ float:left; width:94px; height:94px; border-right:dashed 1px #ccc; padding:0
10px;}
.more-products ul li.last{ border-right:0; }

.more-products-holder { width:804px; height:94px; position:relative; overflow:hidden; top:10px;


left:70px;}
.more-products-holder .jcarousel-clip{ width:804px; height:94px; position:relative;
overflow:hidden; }

.more-nav { font-size:0; line-height:0;}


.more-nav a{ position:absolute; top:40px; left:0; width:30px; height:32px; text-indent: -4000px; z-
index:3;}
.more-nav a.next{ background:url(../images/next.gif); left:910px;}
.more-nav a.prev{ background:url(../images/prev.gif); left:20px;}

.cols { padding:15px 0;}


.col { float:left; display:inline; width:217px; margin-right:30px;}
.col-last { margin-right:0;}

h3.ico { background-repeat:no-repeat; background-position:0 2px; padding:6px 0 8px 30px;}


h3.ico1 { background-image:url(../images/ico1.gif);}
h3.ico2 { background-image:url(../images/ico2.gif);}
h3.ico3 { background-image:url(../images/ico3.gif);}
h3.ico4 { background-image:url(../images/ico4.gif);}

#footer { height:51px; background:#ebebeb; white-space:nowrap; line-height:50px; padding:0


15px; color:#7b7b7b; margin-top:10px;}
#footer a{ color:#7b7b7b; text-decoration: none;}
#footer a:hover{ color:#000;}
#footer span{ padding:0 2px;}

58
Admin.jsp
<%--
Document : admin
Created on : Mar 10, 2017, 5:50:41 PM
Author : user
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
function dlt(i_id,c_id)
{
var v=3;
var r=confirm("Are you sure!");
if (r==true)
{
window.location.replace("delete_item.jsp?
i_id="+i_id+"&c_id="+c_id+"&p_id="+v+"");
}
}
</script>
</head>
<body>
<div class="shell">
<div style="min-height: 600px">
<%@include file="header.jsp"%>
<%@include file="drop_down_menu.jsp"%>
<br><br><br><br><br>

<%
Connection con=null;
Statement st=null;
ResultSet rs=null;
Statement st1=null;
ResultSet rs1=null;
Statement st2=null;
ResultSet rs2=null;
Statement st3=null;
ResultSet rs3=null;
Statement st4=null;
ResultSet rs4=null;
Statement st5=null;
ResultSet rs5=null;
Statement st6=null;
ResultSet rs6=null;

try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection
("jdbc:oracle:thin:@127.0.0.1:1521:xe","eshopping","nolin");
59
st=con.createStatement();
st1=con.createStatement();
st2=con.createStatement();
st3=con.createStatement();
st4=con.createStatement();
st5=con.createStatement();
st6=con.createStatement();

String pending="pending";
rs=st.executeQuery("select * from order_item where status='"+pending+"' order by o_id
asc");
rs3=st3.executeQuery("select * from order_item where status='"+pending+"' order by o_id
asc");
int cnt=0;
while(rs3.next())
cnt++;
rs4=st4.executeQuery("select * from item where AVAILIBILITY='0' order by i_id");
rs5=st5.executeQuery("select * from item where AVAILIBILITY='0' order by i_id");
int cnt1=0;
while(rs5.next())
cnt1++;
%>

<div align="center">
<table width="500" height="35" border="0">
<tr>
<th><p style="color: red; font-size: 15px"><u><b>ITEMS OUT OF STOCK= <
%=cnt1%></b></u></p></th>
</tr>
</table>

<table width="960" border="0">


<% if(cnt1!=0){ %>
<tr>
<th width="35" height="60" scope="col" style="border:solid 2px #dedede; color:
#000000">Item Id</th>
<th width="80" scope="col" style="border:solid 2px #dedede; color: #000000">Name</th>
<th width="71" scope="col" style="border:solid 2px #dedede; color: #000000">Category</th>
<th width="71" scope="col" style="border:solid 2px #dedede; color: #000000">Brand</th>
<th width="73" scope="col" style="border:solid 2px #dedede; color: #000000">Purchased
Price</th>
<th width="60" scope="col" style="border:solid 2px #dedede; color: #000000">Selling
Price</th>
<th width="62" scope="col" style="border:solid 2px #dedede; color: #000000">Last Updated
Date</th>
<th width="35" scope="col" style="border:solid 2px #dedede; color: #000000">Details</th>
<th width="35" scope="col" style="border:solid 2px #dedede; color: #000000">Update</th>
<th width="35" scope="col" style="border:solid 2px #dedede; color: #000000">Delete</th>
</tr>
<% } while(rs4.next()){
rs6=st6.executeQuery("select c_name from category where c_id='"+rs4.getString(4)+"'");
rs6.next();

60
%>
<tr>
<td height="67" align="center"><%=rs4.getString(1)%></td>
<td align="center"><%=rs4.getString(3)%></td>
<td align="center"><%=rs6.getString(1)%></td>
<td align="center"><%=rs4.getString(5)%></td>
<td align="center"><%=rs4.getString(9)%></td>
<td align="center"><%=rs4.getString(10)%></td>
<td align="center"><%=rs4.getString(11).substring(0, 10)%></td>
<td align="center"><a href="item_details.jsp?i_id=<%=rs4.getString(1)%>&cat=<
%=rs6.getString(1)%>">details</a></td>
<td align="center"><a href="edit_item1.jsp?i_id=<%=rs4.getString(1)%>&cat=<
%=rs6.getString(1)%>">update</a></td>
<td align="center"><a href="#" onclick="dlt(<%=rs4.getString(1)%>,<
%=rs4.getString(4)%>)"><img src="images/close.png" width="27" height="27"/></a></td>
</tr>
<% } %>
</table>
</div>

<br>
<div align="center">
<table width="500" height="35" border="0">
<tr>
<th><p style="color: red; font-size: 15px"><u><b>NO OF ORDERS (PENDING)= <
%=cnt%></b></u></p></th>
</tr>
</table>

<table width="600" border="0">


<% if(cnt!=0){ %>
<tr>
<th width="80" height="40" scope="col" style="border:solid 2px #dedede; color:
#000000;">Date</th>
<th width="100" scope="col" style="border:solid 2px #dedede; color: #000000;">No of
Orders</th>
</tr>
<% }
rs1=st1.executeQuery("select count(*),o_date from order_item where
status='"+pending+"' group by o_date");
while(rs1.next())
{
%>
<tr>
<td height="37" align="center"><%=rs1.getString(2).substring(0, 10)%></td>
<td align="center"><%=rs1.getString(1)%></td>
</tr>
<%
}
%>
</table>
</div>

61
<%} catch(Exception e){}
finally
{
try{
con.close();
}catch(Exception e){}
}
%>

</table>

</div>
<%@include file="footer.jsp"%>
</div>

<%
if(session.getAttribute("cant_del")=="cant_del")
{
%><script language="javascript">alert("cant delete, item is in the order
table");</script><%
session.removeAttribute("cant_del");
}
%>

</body>
</html>

Add_ Category.JSP

<%--
Document : add_category
Created on : Apr 3, 2017, 7:53:08 PM
Author : user
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html>
<%@page session="true" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
var cnt=0;
function generateRow(){
var d=document.getElementById("div");
var st=document.form1.box1.value;

62
if(st.length==0)
alert("empty field cant be added");
else
{
var len=st.length;
var i=0;
var st1="";
var ch1=0;
for(i=0;i<len;i++)
{
if(st.charAt(i)==" ")
{
//var ch=st.charAt(i);
if(ch1==0)
{
st1=st1+"";
ch1=0;
}
else
{
st1=st1+"_";
}
}
else
{
st1=st1+st.charAt(i);
ch1=1;
}
}

d.innerHTML+="<input type='text' name="+st1+" value="+st1+" style=' height: 27px;


border:solid 1px #999999' size='35'><br><br>";
cnt++;
document.form1.box1.value=null;
}
}

function load()
{
document.form1.box1.value=null;
document.form1.category.value=null;
}

function load1()
{
var b="";
if(document.form1.category.value=="")
{
b="category cant be empty";
}

if(b.length!=0)
{

63
alert(b);
}
else if(cnt==0)
alert("no columns added");
else
{
document.form1.submit();
}
}
</script>
</head>
<body onload="load()">
<div class="shell">
<div style="min-height: 600px">
<%@include file="header.jsp"%>
<%@include file="drop_down_menu.jsp"%>

<br><br><br><br><br>
<div align="center"><p style="color: red; font-size: 15px"><u><b>ADD
CATEGORY</b></u></p></div>
<br>

<form name="form1" id="form1" ENCTYPE="multipart/form-data" name="frm1"


ACTION="../category_add" METHOD="post">
<div style="padding-left: 140px; padding-top: 60px; float: left" >
<table border="0">
<tr>
<td style=" color: #000000; font-size: 13px">Category</td>
<td><input type="text" name="category" style=" height: 27px; border:solid 1px
#999999" size="35"></td>
</tr>
<tr>
<td></td>
<td style="height: 70px"><input name="btn1" type="button" style="width: 70px;
height: 30px; border:solid 1px #999999; background-color: #990000; color: white; font-size: 14px"
value="Submit" onclick="load1();"/><td>
</tr>

</table>
</div>
<div style="padding-left: 500px; padding-top: 60px;" >
<table border="0" style=" width: 40px">
<tr>
<td></td>
<td><div id="div"></div><td>
<td></td>
</tr>
<tr>
<td style=" color: #000000; font-size: 13px">Description</td>
<td><input type="text" name="box1" style=" height: 27px; border:solid 1px
#999999" size="35"></td>

64
<td><input name="btn" type="button" value="Add" style="width: 70px; height:
30px; border:solid 1px #999999; background-color: #990000; color: white; font-size: 14px"
onclick="generateRow()"/></td>
</tr>
</table>
</div>
</form>

</div>
<%@include file="footer.jsp"%>
</div>

<%
if(session.getAttribute("msg")=="already")
{
%><script language="javascript">alert("Table already exist\nor\nInvalid table
name");</script><%
session.removeAttribute("msg");
}
else if(session.getAttribute("msg")=="success")
{
%><script language="javascript">alert("successful");</script><%
session.removeAttribute("msg");
}
else if(session.getAttribute("msg")=="notcreated")
{
%><script language="javascript">alert("table cant be created\nsame field
name/reserved word/empty field cant be used");</script><%
session.removeAttribute("msg");
}
%>

</body>
</html>

Add_Item.JSP
<%--
Document : add_item
Created on : Mar 12, 2017, 2:00:48 PM
Author : user
--%>

<%@page session="true" %>


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
65
<script language="javascript">
var st1="2";
function check2(obj)
{
if(obj.checked==true)
{
document.frm1.t2.disabled=false;
document.frm1.drop2.disabled=true;
st1="1";
}
else
{
document.frm1.t2.disabled=true;
document.frm1.drop2.disabled=false;
st1="2";
}

function isInteger(s)
{
var i;
s = s.toString();
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (isNaN(c))
{
alert("Given value is not a number");
return false;
}
}
return true;
}

function check1()
{
var i_name=document.frm1.i_name.value;
var drop1=document.frm1.drop1.value;
var brand="";
if(document.frm1.t2.disabled==true)
brand=document.frm1.drop2.value;
else if(document.frm1.drop2.disabled==true)
brand=document.frm1.t2.value;
var av=document.frm1.av.value;
var F1=document.frm1.F1.value;
var pp=document.frm1.pp.value;
var sp=document.frm1.sp.value;
var discount=document.frm1.discount.value;

var i;
var av1 = av.toString();

66
var pp1 = pp.toString();
var sp1 = sp.toString();
var discount1 = discount.toString();
var ch1=0;
var ch2=0;
var ch3=0;
var ch4=0;
for (i = 0; i < av1.length; i++)
{
var c = av1.charAt(i);
if (isNaN(c))
{
ch1=1;
break;
}
}
for (i = 0; i < pp1.length; i++)
{
var c = pp1.charAt(i);
if (isNaN(c))
{
ch2=1;
break;
}
}
for (i = 0; i < sp1.length; i++)
{
var c = sp1.charAt(i);
if (isNaN(c))
{
ch3=1;
break;
}
}
for (i = 0; i < discount1.length; i++)
{
var c = discount1.charAt(i);
if (isNaN(c))
{
ch4=1;
break;
}
}
if(i_name=="")
{
alert("enter item name");
document.frm1.i_name.focus();
}
else if(drop1=="")
alert("select category");
else if(brand=="" && document.frm1.t2.disabled==true)
alert("select brand");
else if(brand=="" && document.frm1.drop2.disabled==true)

67
{
alert("enter brand");
document.frm1.t2.focus();
}
else if(av=="")
{
alert("enter availibility");
document.frm1.av.focus();
}
else if(ch1==1)
{
alert("enter a valid number in availibility");
document.frm1.av.focus();
}
else if(F1=="")
{
alert("enter image icon");
document.frm1.F1.focus();
}
else if(pp=="")
{
alert("enter purchased price");
document.frm1.pp.focus();
}
else if(ch2==1)
{
alert("enter a valid number in purchased price");
document.frm1.pp.focus();
}
else if(sp=="")
{
alert("enter selling price");
document.frm1.sp.focus();
}
else if(ch3==1)
{
alert("enter a valid number in selling price");
document.frm1.sp.focus();
}
else if(discount=="")
{
alert("enter discount");
document.frm1.discount.focus();
}
else if(discount>100)
{
alert("discount cant be greater than 100");
document.frm1.discount.focus();
}
else if(ch4==1)
{
alert("enter a valid number in discount");
document.frm1.discount.focus();

68
}
else
document.frm1.submit();
}
</script>
</head>

<body>

<%
Connection con=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection
("jdbc:oracle:thin:@127.0.0.1:1521:xe","eshopping","nolin");
Statement st= con.createStatement();
Statement st1= con.createStatement();
ResultSet rs= st.executeQuery("select * from category");
ResultSet rs1= st1.executeQuery("select distinct brand_name from item");
%>

<div class="shell">
<%@include file="header.jsp"%>
<%@include file="drop_down_menu.jsp"%>
<br><br><br><br><br>
<table border="0" style=" margin-left: 210px">
<tr>
<td><p style="color: red; font-size: 15px"><u><b>ADD ITEM
INFORMATION</b></u></p></td>
</tr>
</table>
<br><br>
<div align="center">
<form id="frm1" ENCTYPE="multipart/form-data" name="frm1"
ACTION="../single_upload_page1" METHOD="post">
<table border="0" style=" margin-left: 30px">
<tr>
<td width="114" height="60" style=" color: #000000; font-size: 14px">Item name</td>
<td><input type="text" style=" height: 27px; border:solid 1px #999999" size="40"
tabindex="1" name="i_name"></td>
</tr>
<tr>
<td width="114" height="60" style=" color: #000000; font-size: 14px">Category
name</td>
<td>
<div style=" width: 160px; height: 30px; border: solid 1px #999999;">
<select name="drop1" STYLE="width: 150px; padding-top: 5px; padding-left: 10px;
border: 0" tabindex="2">
<option value=""> Select Category </option>
<%
while(rs.next())
{
%>

69
<option value="<%=rs.getString("c_id")%>"><%=rs.getString("c_name")
%></option>
<%
}
%>

</select>
</div>
</td>
</tr>

<tr>
<td width="114" height="60" style=" color: #000000; font-size: 14px">Brand name</td>
<td>
<div style=" width: 160px; height: 30px; border: solid 1px #999999;">
<select name="drop2" STYLE="width: 150px; padding-top: 5px; padding-left: 10px;
border: 0" tabindex="3">
<option value=""> Select Brand </option>
<%
while(rs1.next())
{
%>
<option value="<%=rs1.getString(1)%>"><%=rs1.getString(1)%></option>
<%
}
%>
</select>
</div>
</td>
</tr>
<%
}catch(SQLException se){}
finally
{
try
{
con.close();
}catch(Exception e){}
}
%>
<tr>
<td><h2></h2></td>
<td><p style=" color: #000000; font-size: 13px">if not exits, create new <input
type="checkbox" tabindex="4" onclick="javascript:check2(this)">&nbsp;<input type="text"
name="t2" style=" height: 27px; border:solid 1px #999999" size="40" tabindex="5"
disabled="true"></p></td>
</tr>

<tr>
<td width="114" height="60" style=" color: #000000; font-size: 14px">Availability</td>
<td style=" color: #000000; font-size: 13px"><input type="text" style=" height: 27px;
border:solid 1px #999999" size="40" tabindex="6" name="av"
onKeyup="isInteger(this.value)">&nbsp;kilogram</td>

70
</tr>
<tr>
<td width="114" height="60" style=" color: #000000; font-size: 14px">Image Icon</td>
<td style=" color: #000000; font-size: 13px">
<INPUT NAME="F1" TYPE="file" size="37" tabindex="7">&nbsp;Dimension
should be 125*100
</td>
</tr>
<tr>
<td width="114" height="60" style=" color: #000000; font-size: 14px">Purchased
price</td>
<td><input type="text" style=" height: 27px; border:solid 1px #999999" size="40"
tabindex="8" name="pp" onKeyup="isInteger(this.value)"></td>
</tr>
<tr>
<td width="114" height="60" style=" color: #000000; font-size: 14px">Selling price</td>
<td><input type="text" style=" height: 27px; border:solid 1px #999999" size="40"
tabindex="9" name="sp" onKeyup="isInteger(this.value)"></td>
</tr>
<tr>
<td width="114" height="60" style=" color: #000000; font-size: 14px">Discount</td>
<td style=" color: #000000; font-size: 17px"><input type="text" style=" height: 27px;
border:solid 1px #999999" size="40" tabindex="10" name="discount"
onKeyup="isInteger(this.value)"> %</td>
</tr>
<tr>
<td width="114" height="60" style=" color: #000000"></td>
<td><input name="btn1" type="button" style="width: 80px; height: 30px; border:solid
1px #999999; background-color: #990000; color: white; font-size: 14px" tabindex="11"
value="Submit" onclick="check1()"/></td>
</tr>
</table>
</form>
</div>
<br><br><br><br>
<%@include file="footer.jsp"%>
</div>

<%
if(session.getAttribute("success")=="success")
{
%><script language="javascript">alert("Successfully Added");</script><%
session.removeAttribute("success");
}
else if(session.getAttribute("alrdy")=="alrdy")
{
%><script language="javascript">alert("Item Name Already exist");</script><%
session.removeAttribute("alrdy");
}

%>

</body>

71
</html>

Change_Password.JSP

<%--
Document : change_password
Created on : Apr 26, 2017, 6:18:33 PM
Author : user
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-
html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
function chng_pass()
{
var old_pass=document.frm.old_pass.value;
var new_pass=document.frm.new_pass.value;
var re_new_pass=document.frm.re_new_pass.value;
if(old_pass=="")
alert("Enter Old Password");
else if(new_pass=="")
alert("Enter New Password");
else if(re_new_pass=="")
alert("Enter Repeat New Password");
else if(new_pass!=re_new_pass)
alert("New Password Mismatch");
else
document.frm.submit();
}
</script>
</head>
<body>
<div class="shell">
<%@include file="header.jsp"%>
<%@include file="drop_down_menu.jsp"%>

<br><br><br><br><br>
<div align="center"><p style="color: red; font-size: 15px"><u><b>CHANGE
PASSWORD</b></u></p></div>
<br><br><br>
<div align="center">
<table width="400" border="0">

<form name="frm" action="../change_password" method="post">


<tr>
<td height="45" width="150" style=" font-size: 14px; color: #000000;">Old
Password</td>
72
<td><input type="password" style=" height: 30px; border:solid 1px #999999"
size="40" name="old_pass" tabindex="1"></td>
</tr>
<tr>
<td height="45" style=" font-size: 14px; color: #000000;">New Password</td>
<td><input type="password" style=" height: 30px; border:solid 1px #999999"
size="40" name="new_pass" tabindex="2"></td>
</tr>
<tr>
<td height="45" style=" font-size: 14px; color: #000000;">Repeat New
Password</td>
<td><input type="password" style=" height: 30px; border:solid 1px #999999"
size="40" name="re_new_pass" tabindex="3"></td>
</tr>
<tr>
<td height="45"></td>
<td><input type="button" name="btn1" value="Save" onclick="chng_pass()"
style="width: 80px; height: 30px; border:solid 1px #999999; background-color: #990000; color:
white; font-size: 14px"></td>
</tr>
</form>
</table>
</div>
<br><br><br><br><br><br><br><br><br><br><br>
<%@include file="footer.jsp"%>
</div>

<%
if(session.getAttribute("pass_chng_success")=="pass_chng_success")
{
%><script language="javascript">alert("Password Changed Successfully");</script><
%
session.removeAttribute("pass_chng_success");
}
else if(session.getAttribute("old_pass_mismatch")=="old_pass_mismatch")
{
%><script language="javascript">alert("Incorrect Old Password");</script><%
session.removeAttribute("old_pass_mismatch");
}
%>

</body>
</html>

Admin_Header.JSP
<%--
Document : header
Created on : Mar 10, 2017, 12:30:40 PM
Author : user
--%>

73
<%@page import="java.sql.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<script type="text/javascript">
function abc()
{ myid=window.setTimeout("showtime()",1000); }

function showtime()
{
d=new Date();
x=d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
document.f1.t1.value=x;
myid=window.setTimeout("showtime()",1000);
}
</script>
</head>

<body onload=abc()>
<%
String a_id1="";
int a_id=0;
try{
a_id1=session.getAttribute("a_id").toString();
a_id=Integer.parseInt(a_id1);
}catch(Exception e)
{
response.sendRedirect("../home_page/home.jsp");
}
Connection con1 = null;
Statement stt;
ResultSet rss;
String email="";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con1 = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "eshopping", "nolin");
stt=con1.createStatement();

rss = stt.executeQuery("select email from admin where a_id='"+a_id+"'");


rss.next();
email=rss.getString(1);
}catch (Exception e) {}
finally
{
try{
con1.close();
}catch(Exception e){}
}
%>

74
<div id="header">
<h1 id="c2s"><a href="#"></a></h1>
<h2 id="c2s1"><b>Click2Shop</b></h2>
<div id="cart" style="">
<h2>Welcome Admin</h2>

<form name=f1>
<script type="text/javascript">
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
</script>
&nbsp;
<INPUT size=10 name=t1 style=" color: white; background:url(../images/header.gif); border:
0">
</form>

</div>
</div>
</body>
</html>

Admin_Footer.JSP

<%--
Document : footer
Created on : Mar 10, 2017, 12:36:18 PM
Author : user
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
</head>
<body>
<div id="footer">
<p class="right"> &copy; 2015 Click2Shop. Design by Ajeet Kumar</p>
</div>
</body>
</html>

Admin_Feedback.JSP
<%--

75
Document : user_registered
Created on : Apr 29, 2017, 3:46:55 PM
Author : user
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-
html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
function dlt(f_id)
{
var r=confirm("Are you sure!");
if (r==true)
{
window.location.replace("delete_feedback.jsp?f_id="+f_id);
}
}
</script>
</head>
<body onload="ld()">
<div class="shell">
<div style="min-height: 600px">
<%@include file="header.jsp"%>
<%@include file="drop_down_menu.jsp"%>
<br><br><br><br>

<%
Connection con=null;
Statement st=null;
ResultSet rs=null;
Statement st1=null;
ResultSet rs1=null;

String s_value=request.getParameter("s_value");
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection
("jdbc:oracle:thin:@127.0.0.1:1521:xe","eshopping","nolin");
st=con.createStatement();
st1=con.createStatement();

if(s_value==null || s_value=="")
rs=st.executeQuery("select * from feedback order by f_id asc");
else if(s_value.equalsIgnoreCase("solved"))
{
String status="solved";
rs=st.executeQuery( "select * from feedback where status='"+status+"' order by f_id
asc");
}
else if(s_value.equalsIgnoreCase("unsolved"))

76
{
String status="unsolved";
rs=st.executeQuery("select * from feedback where status='"+status+"' order by f_id
asc");
}

%>
<script>
function chng()
{
var s_value= document.frm.srch.value;

window.location.replace("feedback.jsp?s_value="+s_value+"");
}

function ld()
{
document.frm.srch.value="<%=s_value%>";
}
</script>

<div align="center">
<table width="900" height="40" border="0">
<tr>
<th><p style="color: red; font-size: 15px"><u><b>CUSTOMER
FEEDBACK</b></u></p></th>
</tr>
</table>
<form name="frm">
<table border="0" align="right">
<tr>
<td style=" height: 45px">
<div style=" width: 130px; height: 27px; border: solid 1px #999999;">
<select name="srch" STYLE="width: 120px; padding-top: 3px; padding-left: 10px;
border: 0" onchange="chng()">
<option value="">All</option>
<option value="solved">Solved</option>
<option value="unsolved">Unsolved</option>
</select>
</div>
</td>
</tr>
</table>
</form>
<br>
<table width="960" border="0">
<tr>
<th width="30" height="40" scope="col" style="border:solid 2px #dedede; color: #000000">Sl
No.</th>
<th width="50" scope="col" style="border:solid 2px #dedede; color: #000000">Email Id</th>
<th width="100" scope="col" style="border:solid 2px #dedede; color: #000000">Feedback</th>
<th width="35" scope="col" style="border:solid 2px #dedede; color: #000000">Date</th>

77
<th width="45" scope="col" style="border:solid 2px #dedede; color: #000000">Status</th>
<th width="35" scope="col" style="border:solid 2px #dedede; color: #000000">Send Mail</th>
<th width="35" scope="col" style="border:solid 2px #dedede; color: #000000">Delete</th>
</tr>

<% while(rs.next())
{

%>
<tr>
<td height="37" align="center"><%=rs.getString(1)%></td>
<td align="center"><%=rs.getString(3)%></td>
<td align="center"><%=rs.getString(4)%></td>
<td align="center"><%=rs.getString(5).substring(0, 10) %></td>
<td align="center"><%=rs.getString(6)%></td>
<td align="center"><a href="mail.jsp?f_id=<%=rs.getString(1)%>">mail</a></td>
<td align="center"><a href="#" onclick="dlt(<%=rs.getString(1)%>)">delete</a></td>
</tr>
<% } } catch(Exception e){}
finally
{
try{
con.close();
}catch(Exception e){}
} %>
</table>
</div>

</div>
<%@include file="footer.jsp"%>
</div>

<%
if(session.getAttribute("cant_del")=="cant_del")
{
%><script language="javascript">alert("Cant Delete");</script><%
session.removeAttribute("cant_del");
}
%>

</body>
</html>

Logout.JSP
<%--
Document : logout
Created on : Apr 25, 2017, 2:25:34 AM
Author : user
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

78
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-
html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
session.removeAttribute("a_id");
session.removeAttribute("i_id");
response.sendRedirect("../home_page/home.jsp");
%>
</body>
</html>

Mail.JSP

<%--
Document : mail
Created on : May 8, 2017, 12:13:33 AM
Author : user
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-
html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<script>
function nxt()
{
var email=document.frm.email.value;
var subject=document.frm.subject.value;
var body=document.frm.body.value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");
if(email=="")
alert("Enter Email");
else if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length)
alert("Not a valid Email");
else if(subject=="")
alert("Enter Subject");
else if(body=="")
alert("Enter Body");
else
document.frm.submit();
}
79
</script>
</head>
<body>
<div class="shell">

<div style="min-height: 600px">


<%@include file="header.jsp"%>
<%@include file="drop_down_menu.jsp"%>
<br><br><br><br>

<%
Connection con=null;
Statement st=null;
ResultSet rs=null;

String f_id=request.getParameter("f_id");
String email_id="";
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection
("jdbc:oracle:thin:@127.0.0.1:1521:xe","eshopping","nolin");
st=con.createStatement();

rs=st.executeQuery("select * from feedback where f_id='"+f_id+"'");


rs.next();
email_id=rs.getString(3);
} catch(Exception e){}
finally
{
try{
con.close();
}catch(Exception e){}
}

%>

<div align="center">
<table width="850" border="0" >
<tr>
<td height="60" scope="col" style=" color: #000000; font-size: 17px">
<b>Send Mail</b>
</td>
</tr>
</table>

<br>
<div style="border:solid 1px #999999; width: 650px; height: 310px; margin-right: 190px">
<form name="frm" action="../send_mail" method="post">
<input type="hidden" name="mail_id" value="1">
<input type="hidden" name="e_id" value="<%=f_id%>">
<table width="650" border="0" >

80
<tr>
<td height="20"></td>
<td></td>
</tr>
<tr>
<td height="40" style=" color: #000000; font-size:
12px">&nbsp;&nbsp;&nbsp;&nbsp;To *</td>
<td><input type="text" style=" height: 28px; border:solid 1px #999999" size="65"
name="email" value="<%=email_id.trim()%>" tabindex="1"></td>
</tr>
<tr>
<td height="40" style=" color: #000000; font-size:
12px">&nbsp;&nbsp;&nbsp;&nbsp;Subject *</td>
<td><input type="text" style=" height: 28px; border:solid 1px #999999" size="65"
name="subject" tabindex="1"></td>
</tr>
<tr>
<td height="40" style=" color: #000000; font-size:
12px">&nbsp;&nbsp;&nbsp;&nbsp;Body *</td>
<td><textarea style=" width: 335px; height: 140px; border:solid 1px #999999"
name="body" tabindex="3"></textarea></td>
</tr>
<tr>
<td height="50"></td>
<td><input type="button" name="btn1" onclick="nxt()" value="Send" style="width:
80px; height: 32px; background-color: #990000; color: white"></td>
</tr>
</table>
</form>
</div>
</div>
</div>
<%@include file="footer.jsp"%>
<%
if(session.getAttribute("msg_sent")=="msg_sent")
{
%><script language="javascript">alert("Message Successfully Sent");</script><%
session.removeAttribute("msg_sent");
}
else if(session.getAttribute("msg_sent_fail")=="msg_sent_fail")
{
%><script language="javascript">alert("Internet access failed....");</script><%
session.removeAttribute("msg_sent_fail");
}
%>
</body>
</html>

Java Class
81
Address. Java
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class address extends HttpServlet {


public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
HttpSession session=req.getSession(true);

String cus_id1=session.getAttribute("cus_id").toString();
int cus_id=Integer.parseInt(cus_id1);
String pincode= req.getParameter("pincode");
String address= req.getParameter("address");
String city= req.getParameter("city");
String state= req.getParameter("state");

Connection con=null;

try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","eshopping","no
lin");

PreparedStatement ps1=con.prepareStatement("update customer set


STREET_ADDRESS='"+address+"',"
+ "CITY='"+city+"',STATE='"+state+"', PINCODE='"+pincode+"' where
cus_id='"+cus_id+"'");
ps1.executeUpdate();
session.setAttribute("addrs_chng", "addrs_chng");
res.sendRedirect("customer/address.jsp");

}catch(Exception e){}
finally
{
try{
con.close();}catch(Exception e){}
}
}
}

Signin. Java

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
82
public class signin extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
HttpSession session=req.getSession(true);
String email= req.getParameter("email").trim();
String pass= req.getParameter("password");

Connection con=null;
Statement st;
ResultSet rs;
Statement st1;
ResultSet rs1;
String cus_id="";
String a_id="";

try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","eshopping","no
lin");

st=con.createStatement();
st1=con.createStatement();

rs=st.executeQuery("select CUS_ID,EMAIL_ID,PASSWORD from customer");


rs1=st1.executeQuery("select A_ID,EMAIL,PASSWORD from admin");

int i=0;
while(rs1.next())
{
if(rs1.getString(2).equals(email) && rs1.getString(3).equals(pass))
{
i=1;
a_id=rs1.getString("a_id");
break;
}
}
if(i==1)
{
session.setAttribute("a_id", a_id);
res.sendRedirect("admin/admin.jsp");
}
else
{
int j=0;
while(rs.next())
{
if(rs.getString(2).equals(email) && rs.getString(3).equals(pass))
{
j=1;
cus_id=rs.getString("cus_id");

83
break;
}
}
if(j==1)
{
session.setAttribute("cus_id", cus_id);
res.sendRedirect("customer/home.jsp");
}
else
{
session.setAttribute("loginfail", "loginfail");
res.sendRedirect("home_page/home.jsp");
}
}

}catch(Exception e){}
finally
{
try{
con.close();}catch(Exception e){}
}
}
}

Signup. Java
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class signup extends HttpServlet {


public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
HttpSession session=req.getSession(true);
String email= req.getParameter("email").trim();
String pass= req.getParameter("pass");
String repass= req.getParameter("repass");

Connection con=null;
Statement st;
ResultSet rs;
Statement st1;
ResultSet rs1;
Statement st2;
ResultSet rs2;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","eshopping","no
lin");
st= con.createStatement();
84
st1=con.createStatement();
st2=con.createStatement();

rs= st.executeQuery("select * from customer_id");


rs.next();
int j=rs.getInt(1)+1;

rs1=st1.executeQuery("select EMAIL from admin");


rs2=st2.executeQuery("select EMAIL_ID from customer");

int i=0;
while(rs1.next())
{
if(rs1.getString(1).equals(email))
{
i=1;
break;
}
}
if(i==1)
{
session.setAttribute("logupfail", "logupfail");
res.sendRedirect("home_page/home.jsp");
}
else
{
int k=0;
while(rs2.next())
{
if(rs2.getString(1).equals(email))
{
k=1;
break;
}
}
if(k==1)
{
session.setAttribute("logupfail", "logupfail");
res.sendRedirect("home_page/home.jsp");
}
else
{
PreparedStatement ps=con.prepareStatement("insert into
customer(CUS_ID,EMAIL_ID,PASSWORD) values(?,?,?)");
ps.setInt(1,j);
ps.setString(2, email);
ps.setString(3, pass);
ps.executeQuery();

PreparedStatement ps1=con.prepareStatement("update customer_id set


customer_id='"+j+"'");
ps1.executeUpdate();
session.setAttribute("logupsuccess", "logupsuccess");

85
res.sendRedirect("home_page/home.jsp");
}
}
}catch(Exception e){}
finally
{
try{
con.close();}catch(Exception e){}
}
}
}

Slider.JSP
<%--
Document : slider
Created on : Mar 10, 2017, 5:30:17 PM
Author : user
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<script src="js/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="js/jquery.jcarousel.pack.js" type="text/javascript"></script>
<script src="js/jquery-func.js" type="text/javascript"></script>
</head>
<body>
<div id="slider" class="box">
<div id="slider-holder">
<ul>
<li><img src="images/s.jpg" alt="" /></li>
<li><img src="images/s4.jpg" alt="" /></li>
<li><img src="images/s3.jpg" alt="" /></li>
<li><img src="images/s6.jpg" alt="" /></li>
</ul>
</div>
<div id="slider-nav"> <a href="#" class="active">1</a> <a href="#">2</a> <a
href="#">3</a> <a href="#">4</a> </div>
</div>
</body>
</html>

Update_Item.JSP
86
<%--
Document : update_cart_item_no
Created on : Apr 17, 2017, 1:21:44 AM
Author : user
--%>
<%@page import="java.util.*"%>
<%@page contentType="text/html" import="java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-
html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
String p_id=request.getParameter("p_id");
String i_id=request.getParameter("i_id");
String quantity=request.getParameter("quantity");
ArrayList al1=(ArrayList) session.getAttribute("cart");
int i=0;
for(i=0;i<al1.size();i++)
{
if(al1.get(i).toString().equals(i_id))
{
break;
}
}
i=i+1;
al1.remove(i);
al1.add(i,quantity);
session.setAttribute("cart",al1);
if(p_id.equals("1"))
response.sendRedirect("buy.jsp");
else if(p_id.equals("2"))
response.sendRedirect("place_order3.jsp");
%>
</body></html>

6.1 Screen Shot


87
Home page

88
Sign In

Sign Up

89
About Us

Contact Us

90
Feedback

Item buy

91
Shopping Cart

Email Login

92
Shipping Address

Order Summary

93
Mode Of Payment

Place Order

94
Admin_Home

Dispatched Order

95
Add Item Information

Add Category

96
Admin Check Feedback

Change Password

97
7. Testing and Implementation

Testing Phase

The basic goal of the software development process is to produce software that has no errors or very
few errors. In an effort to detect errors soon after they are introduced, each phase ends with
verification activity such as a review. As testing is the last phase before the final software is
delivered, it has the enormous responsibility of detecting any type of error that may in the software.
A software typically undergoes changes even after it has been delivered. And to validate that a
change has not affected some old functionality of software regression testing is performed

Levels of Testing:

The basic levels of testing are unit testing, integration testing and system and acceptance testing.
These different levels of testing attempt to detect different types of faults.

Client Needs Acceptance Testing


Requirements System Testing
Design Integration Testing
Code Unit Testing

Code/Unit Testing:

Code testing and implementation is a critical process that can even consume more than sixty percent
of the development time.

Testing:

The system development life cycle involves the phases of testing and debugging after the
requirement analysis, designing and coding. The project in question was tested , debugged and
implemented successfully.

Two strategies of software testing adopted for the new system are as follows:

1. Code testing
2. Specification testing

Code testing:

Code testing was carried out to see the correctness of the logic involved and the correctness of the
modules. Tests were conducted based upon sample and live data as well. All the modules are
checked separately for assuming correctness and accuracy in all the calculations.

98
Specification testing:

It examines the specification stating about what program should do and how it performs under
various conditions. This testing strategy is better strategy since it focuses on the way the software is
expected to work.

Unit Testing:

During the phase of unit testing different constituent modules were testing against the
specifications produced during the design for the modules. Unit testing is essentially for the
verification of the code produced during the coding the phase, and goal is to test the internal logic
of the modules. The modules once tested were then considered for integration and use by others.

White Box Testing Done

During this phase of the testing phase SDLC, server developed was tested while considering a valid
value corresponding to each of variable defined and corresponding to each function defined. During
this phase values corresponding to each variable viz. URL filtering, word filtering and scheduling
was done and desired results were obtained.

Black Box Testing Done

This phase of testing deals with input/output testing. Black box testing was performed on the
software developed, corresponding to valid inputs provided desired outputs were obtained.

Integration Testing:

The next level testing that was performed is often referred to as integration testing. During this
phase many unit tested modules were combined into subsystems, which were then tested. The goal
here was to see if modules can be integrated properly. Here the emphasis was on testing interfaces
between different constituent modules of system.

Functionality Testing:

Here the entire software system was tested. The reference document for this process is the
requirements document, and the goal was to see if software solution meets its requirements. This
level of testing is essentially a validation exercise, and in many situation it is the only validation
activity.

99
Stress Testing:

Proxy server developed for the specified purpose was testing under heavy load, i.e. a large no. of
clients were made to sit in lab and were asked to send requests for logging in and then were asked to
request for text on internet. System responded to request as desired.

Acceptance Testing:

Acceptance was performed in the real environment with realistic data of the client to demonstrate if
the software developed is working satisfactorily. Here the main focus was on the external behavior
of the system; the internal logic of the program was not emphasized.

Test Data and Test Cases:

The primary objective of test case design is to derive a set of tests that have the highest likelihood
of uncovering errors in software. The test case specification is the major activity in the testing
process. Careful selection of test cases that satisfy the criterion on approach specified is essential for
proper testing. Various characteristics of test cases that are required for portal are:

1. A good test has a high probability of finding an error.


2. A good test is not redundant.
3. A good test should be Best of Breed.
4. A good test should be neither too simple not too complex.

Test Data For This Application:

1. Member Details like Name, Address, Ticket details etc.

2. Project Details like Ticket Status, Country Dropdowns, States Dropdowns, telephone and
unique E-Mail Ids etc.

3. Content to be displayed on the site.

100
Test plan

Testing commences with a test plan and terminates with acceptance testing. A test plan is a general
document for the entire project that defines the scope, approach to be taken and schedule of testing
as well as identifies the test item for the entire testing process and the personnel responsible for the
different activities of testing.

Overview of Testing

1. Testing: Testing involves executing the program (or part of it) using sample data and inferring
from the output whether the software performs correctly or not. This can be done either during
module development (unit testing) or when several modules are combined (system testing).

2. Defect Testing: Defect testing is testing for situation where the program does not meet its
functional specification. Performance testing tests a system's performance or reliability under
realistic loads. This may go some way to ensuring that the program meets its non-functional
requirements.

3. Debugging: Debugging is a cycle of detection, location, repair and test. Debugging is a


hypothesis testing process. When a bug is detected, the tester must form a hypothesis about the
cause and location of the bug. Further examination of the execution of the program (possible
including many returns of it) will usually take place to confirm the hypothesis. If the hypothesis is
demonstrated to be incorrect, a new hypothesis must be formed. Debugging tools that show the state
of the program are useful for this, but inserting print statements is often the only approach.
Experienced debuggers use their knowledge of common and/or obscure bugs to facilitate the
hypothesis testing process. After fixing a bug, the system must be reset to ensure that the fix has
worked and that no other bugs have been introduced. This is called regression testing. In principle,
all tests should be performed again but this is often too expensive to do.

Test Planning

Testing needs to be planned, to be cost and time effective. Planning is setting out standards for tests.
Test plans set out the context in which individual engineers can place their own work. Typical test
plan contains:

101
Overview of testing process

1. Requirements trace ability (to ensure that all requirements are tested)

2. List of item to be tested

3. Schedule

4. Recording procedures so that test results can be audited

5. Hardware and software requirements

6. Constraints

TEST PLAN

Overview of Testing StrategiesLarge systems are usually tested using a mixture of strategies.
Different strategies may be needed for different parts of the system or stages of the process.

1. Top-down testing: This approach tests high levels of system before detailed components. This is
appropriate when developing the system top-down and is likely to show up structural design errors
early (and therefore cheaply). But this often has advantage that a limited, working system is
available early on. Validation (as distinct from verification) can begin early. Its disadvantage is that
stubs need to be generated (extra effort) and might be impracticable if component is complex (e.g.
converting an array into a linked list; unrealistic to generate random list; therefore end up
implementing unit anyway). Test output may be difficult to observe (needs creation of artificial

102
environment). This is not appropriate for OO systems (except within a class).
2. Bottom-up testing: This is opposite of top-down testing. This tests low-level units then works
up the hierarchy. Its advantages and disadvantages mirror those of top-down testing. In this testing
there is need to write test drivers for each unit. These are as reusable as the unit itself. Combining
top-down development with bottom-up testing means that all parts of system must be implemented
before testing can begin, which does not accord with incremental approach discussed above.
Bottom-up testing is less likely to reveal architectural faults early on. However, bottom-up testing
of critical low-level components is almost always necessary. Appropriate for OO systems.
3. Stress testing: Tests system's ability to cope with a specified load (e.g. transactions per
second). Tests should be planned to increase load incrementally. This type of testing goes beyond
design limit until system fails (this test is particularly important for distributed systems like
checking degradation of performance a s network traffic increases).
4. Back-to-back testing: Comparison of test results from different versions of the system (e.g.
compare with prototype, previous version or different configuration). Process Run first system,
saving test case results. Run second system, again saving its results. Compare result files. The key
point to be noted is that no difference does not mean no bugs. Both systems may have made the
same mistake.
5. Defect testing: A successful defect test is a test that causes the system to behave incorrectly.
Defect testing is not intended to show that a program meets its specification. If tests do not show up
defects it may mean that the tests are not exhaustive enough. Exhaustive testing is not always
practically applicable. Subset has to be defined (this should be part of the test plan, not left to the
individual programmer).

There are three approaches to defect testing. Each one suits different types of component. Studies
show that black box testing is more effective in discovering faults than white-box testing. However,
the rate of fault detection (faults detected per unit time) was similar for each approach. Also showed
that static code reviewing is more effective and less expensive than defect testing.

1. Black-box (Functional) Testing: Testing against specification of system or component. Study it


by examining its inputs and related outputs. Key is to devise inputs that have a higher likelihood of
causing outputs that reveal the presence of defects. Use experience and knowledge of domain to
identify such test cases. Failing this, a systematic approach may be necessary. Equivalence
partitioning is where the input to a program falls into a number of classes. E.g. positive numbers vs.
negative numbers. Programs normally behave the same way for each member of a class. Partitions
exist for both input and output. Partitions may be discrete or overlap. Invalid data (i.e. outside the
normal partitions) is one or more partitions that should be tested. Test cases are chosen to exercise
each portion. Also test boundary cases (typical, extreme, zero) since these frequently show up
defects. For completeness, test all combinations of partitions. Black box testing is rarely exhaustive
(because one doesn't test every value in an equivalence partition) and sometimes fails to reveal
corruption defects caused by "weird" combination of inputs. Black box testing should not be used to
try and reveal corruption defects caused, for example, by assigning a pointer to point to an object of
the wrong type. Static inspection (or using a better programming language) is preferable for this.
2. White-box (Structural) Testing: Testing based on knowledge of structure of component (e.g.
by looking at source code). Advantage is that structure of code can be used to find out how many
test cases need to be performed. Knowledge of the algorithm (examination of the code) can be used
to identify the equivalence partitions. Path testing is where the tester aims to exercise every
independent execution path through the component. All conditional statements are tested for both
true and false cases. If a unit has n control statements, there will be up to 2n possible paths through
it. This demonstrates that it is much easier to test small program units than large ones. Flow graphs
are a pictorial representation of the paths of control through a program (ignoring assignments,
procedure calls and I/O statements). Use flow graph to design test cases that execute each path.
Static tools may be used to make this easier in programs that have a complex branching structure.
Tools like Dynamic program analyzers instrument a program with additional code. Typically this

103
will count how many times each statement is executed. At the end, a print out report shows which
statements had executed and which had not been executed.

Typical levels of testing:

1.Unit -procedure, function, method


2.Module-package, abstract data type, class
3.Sub-system - collection of related modules, cluster of classes, method-message paths
4.Acceptance testing - whole system with real data (involve customer, user, etc)
5.Alpha testing is acceptance testing with a single client (common for bespoke systems).
6.Beta testing involves distributing system to potential customers to use and provide feedback.

Implementation:

Implementation is the stage in the project where the theoretical design is turned into the working
system and is giving confidence to the new system for the users i.e. will work efficiently and
effectively. It involves careful planning, investigation of the current system and its constraints on
implementation, design of method to achieve the change over, an evaluation, of change over
methods. A part from planning major task of preparing the implementation is education of users.
The more complex system is implemented, the more involved will be the system analysis and
design effort required just for implementation. An implementation coordinating committee based on
policies of individual organization has been appointed. The implementation process begins with
preparing a plan for the implementation for the system. According to this plan, the activities are to
be carried out, discussions may regarding the equipment has to be acquired to implement the new
system

The major elements of implementation plan are test plan, training plan, equipment installation plan,
and a conversion plan.

There are three types of implementation:

1. Implementation of a computer system to replace a manual system.


2. Implementation of a new computer system to replace an existing system.
3. Implementation of a modified application to replace an existing one, using the same computer.

Successful implementation may not guarantee improvement in the organization using the new
system, but improper installation will prevent it. It has been observed that even the best system
cannot show good result if the analysts managing the implementation do not attend to every
important detail. This is an area where the systems analysts need to work with utmost care.

Implementation Tools:

1. Training personnel
2. Conversion Procedures
3. Post-implementation review

104
Training of Personnel involved with system

Even well designed system can succeed or fail because of the way they are operated and used.
Therefore, the quality of training received by the personal involved with the system in various
capacities helps or hinders and may even prevent the successful implementation of management
information system.

System Operators Training

Running of the system successfully depend on the personnel working in the Computer Centre. They
are Responsible for providing the necessary support. Their training must ensure that they are able to
handle all possible operations, both routine and extra-ordinary in nature.

If the system calls for the installation of new equipment, such as new computer system, special
terminals or different data entry machines, the operators training should include such fundamentals
as how to turn the equipment on and use it, how to power off and a knowledge of what constitutes
normal operations. The operators should also be trained on different type of malfunctioning, how to
recognize them and what steps should also be taken whenever they arise.

User Training

User may be trained on use equipment, particularly in the case where, e.g. a micro computer is in
use and individual involved is both operator and user. In such cases, user must be given training on
how to operate and user. In such cases, user must be given training on how to operator the system
also. Questions that may be trivial to the analyst, such as how to turn on a terminal, how to insert a
diskette into a micro-computer or when it is safe to turn off equipment without danger of data loss
are significant problems to new users who are not familiar.

In most of the cases user training deals with the operation of the system itself, with proper attention
given to data handling techniques. It is imperative that users be properly trained in methods of
entering transaction, editing data, formulating inquiries, deleting and inserting of records. No
training is complete without familiarizing users with simple systems maintenance activities.
Weakness in any aspect of training may lead of awkward situation that creates user frustration and
error.

Post Implementation Review

After the system is implemented and conversion is complete, a review should be conducted to
determine whether the system is meeting expectations and where improvements are needed. A post
implementation review measures the systems performance against predefined requirement. It
determines how well the system continues to meet the performance specifications.

105
8. Conclusions, Limitation and Future Scope

8.1. CONCLUSIONS

The main objective of the application is to help computer science students understand the
basics of Java, JavaScript, and HTML. By browsing through the application and looking at the
code for each graphical interpretation, students should be able to easily understand the
implementation. The following results have been achieved after the completing the system and
relate back to the systems objective.

1. Should allow computer science students to browse through the code and application:
This is achieved when users, i.e., computer science students, are able to run and install the
application. When they run the application, they can browse through the implementation of
different objects.

2. Should allow users to browse through different product categories: This is achieved
when the user first runs the application and is directed to a home page that has categories
available for all the different item types that can be purchased with this online shopping-cart
Application. The user can browse and click on any category to view the items listed for that
particular category.

3. Should allow users to save items to the cart and also to view detailed information about
a particular item: The users can add any number of items to the shopping cart from any of
the listed categories by simply clicking the cart icon at the right-hand corner of each item.
Users can view a detailed description of the item and price by clicking on the more icon next
to the cart icon.

4. Should allow users to check out the items: This is achieved when users click the checkout
button in the shopping cart. The checkout button disappears when there are no items in the
shopping cart. This implies that users can only click the checkout button when there are items
in the shopping cart.

5. System users should be able to place the order by filling out the order form: This is
achieved when a user clicks the checkout button and an order form appears on the same page,
showing the detailed order total with shipping charges and sales tax, which requires the user
to complete all the information to successfully place an order. The user is not able to place an
order if any information on the form is invalid or empty.

6. The user should see a success message after placing an order: This is achieved when a
user successfully places an order by completely filling in all the rows after which he or she
can click the place-order button. The user receives a message that the order has been
successfully placed.

106
8.2. Limitations
Since, every system has some limitations so our proposed system is also not untouchable in
this regard. Although it includes every kind of features, but it cant be used in a huge organization
where number of networks are very large, because the database used in this system is an average
one. Also it doesnt have different kind of access feature for different users.

Though it was planned for this system to be absolutely perfect but everything as such has
some limitations, so does the System. Following may be the drawback in this system.

Though this system is developed as a multi user system but it is not a real time system.
The interaction with the database, every time they are loaded thus the system tends to be a bit
slow.

Lack of touch and feel of merchandise

Delivery timecustomers dont have the immediate satisfaction of receiving the product when
they buy it since they have to wait for it to be delivered.

Shipping charges- customers usually have to pay shipping charges, which may increase the overall
cost of what they are purchasing.

Shipped returns-Returns can be more of a hassle in online shopping because consumers have to
pack up the product, ship it back, and wait for the seller to receive and process the return before
consumers can get their product exchanged or refunded.

Lack of close quality examination

Security concerns- it can be difficult to tell whether the website is secure or not. If the site is not
secure or is fraudulent online consumers can potentially open their self up to identity theft.

Privacy concerns- if a site doesnt have a comprehensive privacy policy, it is impossible for
consumers to know who has access to their information, and whether their information is protected
Or shared with third parties. Information sharing could lead to spam, or even identity theft.

Lack of personal attention from a salesman

Unable to try the merchandise on (especially clothing)

More chances to encounter fraud (disappearance of shopping site)

More chances for mistakes in ordering the wrong item, slightly higher exposure of credit card
Security

Verification of credit card owner less rigorous (physically one can ask for other identifications).

107
8.3. Futur Scope

The following section discusses the work that will be implemented with future releases of
the software.
1. Detailed categories: Future work could involve adding more categories which are more
detailed and have additional items.
2. Bread /Milk List: Work can add a Bread list or Milk list so that users can add an item to a
list to watch for item prices to go down or to see when there is a sale on any of those items.

3. Enhanced User Interface: Work on enhancing the user interface by adding more user
interactive features.

4. Recommended Items: Add a bar that would display the most-recommended items which
would depend on the number of times an item has been purchased by any users.

5. Payment Options: Add different payment options, such as Visa, MasterCard, PayPal, etc.,
where a user can also save the card information for later checkouts.

6. Shipping Options: Add different types of shipping options: regular shipping, expedited
shipping, international shipping, etc.

7. Recent History: Display the users recently browsed items in the recent-history tab.

108
9.REFERENCES

http://www.sun.com

http://www.coreservlets.com

http://www.serverside.com

http://www.w3schools.com

http://www.google.com

http://www.webopedia.com

http://www.ddj.com

http://www.javatpoint.com
Bosnjak, M., Galesic, M. and Tuten, T., Personality determinants of online shopping: Explaining
online purchase intentions using a hierarchical approach, Journal of Business Research 60(3),
2007, 597605

BIBILIOGRAPHY

BOOKS

J2EE by GARRY CORNELL.


J2EE by Allamaraju & Buest (Apress Publications).
JSP & Servlets by Marty Hall (SUN Microsystems)
SYSTEM ANALYSIS AND DESIGN by ELIAS M AWAD.
SOFTWARE ENGINEERING by IAN SOMMEVILLE.
GNIX INFO SOFT MATERIALS

109
10. Appendix A

Backend remains on server side and has two components i.e.


1. Server side program
2. Data Base.

Data base is the most important thing in this universe as data base gives identity to a thing without
data base existence of a thing is impossible while working on a project first step is to design a
database.

What is data base?


Data Base is a collection of tables and table is a collection of records in a tabular form i.e. in row
and columns.
Data Base can be divided into two parts:-

1. RDBMS.

2. DBMS.
We will be using RDBMS (Relational Database Management System) in our project i.e. oracle 8i
Enterprise edition.
Why we are using Oracle (RDBMS)?

Some of the merits of using Oracle (RDBMS) is as under:-


Centralization of database.
Client Server Technology.
Security.
Normalization of Data Base.
Relationship.
Transaction Processor.
It gives some internet related features.

Hence because of these features we are using Oracle as a back end technology.

ABOUT ORACLE 10g

Oracle 10g contains all the features of previous version. It also supports some new features &
enhancement to some existing features. Oracle servers provide deficient & effective solution for the
major features.

110
Large Database & Space Management Control
Many Concurrent Database Performances
High Transaction Processing Performance
High Availability
Controlled Availability
Industry Accepted Standards
Manageable Security
Database Enforced Integrity
Distributed Database System
Portability
Compatibility
Connectivity

NEW FEATURES OF ORACLE 10g

Improved Scalability
Improved Security
Improved Performance via Partition
Enhanced Support for Database Replication
Capability to Handle a Much Larger Number of Concurrent Users
New & Improved Data Types

What is JAVASCRIPT?
JavaScript is a compact, object-based scripting language. It can provide interactive web
pages, validate from data, and make your web page clearer. JavaScript is a lightweight interpreted
scripting language. The language is most well known for its use in wesites.It was originally
developed by Brendan Each of Netscape Communications. It adds interactive functions to HTML
pages, which are otherwise static. JavaScript is easier to use than Java, but not as powerful and
deals mainly with the elements on the Web page. On the client, JavaScript is maintained as source
code embedded into an HTML page. On the Server, it is compiled into byte code (intermediate
language), similar o Java programs.

Features of JavaScript:-

JavaScript was designed to add interactively to HTML pages.


JavaScript is a scripting language-a scripting language is a lightweight programming
language.
A JavaScript is usually embedded directly in HTML pages.
A JavaScript is an interpreted language (means that script execute without preliminary
compilation).
All major browsers, like Netscape and Internet Explorer, support JavaScript.

Functions of JavaScript:-
JavaScript gives you the ability to perform the following functions:
Control document appearance and content
Control the browser
Interact with document content
Interact with the user
111
Read and write client state with cookies
Interact with applets
Manipulate Embedded Images

Limitations of JavaScript:-

JavaScript does not have any graphics capabilities


Client-side JavaScript cannot read or write files
JavaScript does not support networking of any kind
JavaScript doesnt have any multithreaded capabilities

What is CSS

CSS is an acronym stands for Cascading Style Sheets. It is a style sheet language which is used to
describe the look and formatting of a document written in markup language. It provides an
additional feature to HTML. It is generally used with HTML to change the style of web pages and
user interfaces. It can also be used with any kind of XML documents including plain XML, SVG
and XUL.

CSS is used along with HTML and JavaScript in most websites to create user interfaces for web
applications and user interfaces for many mobile applications.

What does CSS do


o You can add new looks to your old HTML documents.
o You can completely change the look of your website with only a few changes in CSS code.

Why use CSS

These are the three major benefits of CSS:

1) Solves a big problem

Before CSS, tags like font, color, background style, element alignments, border and size had to be
repeated on every web page. This was a very long process. For example: If you are developing a
large website where fonts and color information are added on every single page, it will be become a
long and expensive process. CSS was created to solve this problem. It was a W3C recommendation.

2) Saves a lot of time


CSS style definitions are saved in external CSS files so it is possible to change the entire website by
changing just one file.

3) Provide more attributes

CSS provides more detailed attributes than plain HTML to define the look and feel of the website.

112