CONTENT
PAGE
(i) Certificate 2
(ii) Company certificate
(iii) Acknowledgement 3
1. Company Profile 4-6
2. Software/Hardware Configuration 7
3. List of Tables 8
4. Introduction 9
5. Project Details 10-11
6. Language Details 12-20
7. System Design:
Module Flow Chart 21
8. Development Life cycle:
Introduction 22-24
Feasibility Study 24-26
9. Desigining 27-30
10.Testing: 30-35
Testing Methods 31-32
11.Tables Used 36-39
12.Snapshots 40-43
13.Future Scope of the Project 44
14.Conclusion 45
15.References 46
16.Website References 47
1
CERTIFICATE
This is to certify that MR. MOHIT KAUL (1811341) is a bonafide student of Bachelor of
Technology in Computer Engineering being run by Haryana Engineering College, Jagadhri of
Batch 2011-2015 has delivered a presentation with Seminar Report entitled
“ONLINE BOOKSHOP” in presence of the undersigned.
We wish her all Success in his life.
(Faculty Signature)
Date ………………. Er. Navdeep Kumar
(Associate Professor)
2
ACKNOWLEDGEMENT
I bow my head to almighty god who gave us strength and wisdom due to which we have been
able to express our views and research. A work of this nature can never be done by any person
alone. This project is an acknowledgement to the intensity, drive and technical competence of
many individuals who have contributed to it. No endeavour can successfully accomplish without
any active participation, sincere assistance and encouraging inspiration of others. Cooperation,
support, advice and guidance of many people who have brought this dissertation in this present
shape.
The special thanks go to my helpful supervisor Mr MukeshJamwal(java trainer, Grapess
Solutions Pvt Ltd. Yamuna Nagar). The supervision and support that he gave truly help the
progression and smoothness of the progression of the internship program. The cooperation is
much indeed appreciated.
My grateful thanks also go to my team members. We work together to provide success
environment to the project. A big contribution and hardwork from the team during 45 days is
very great indeed. All projects during the program would be nothing without the enthusiasm of
the team. Besides this, the internship program makes me realise the importance of working
together as a team and as a new experience in working environment which challenges us every
minute.
My sincere thanks go to our respected HOD for support. I would like to thank all the staff of the
institute who provided the best of their knowledge and give us newer and better ideas, whenever
required and requested for.
I offer appreciation to my parents and all our friends for their ever willing cooperation and moral
support.
MOHIT KAUL
1811341
CSE-4th yr.
3
COMPANY PROFILE
GRAPESS SOLUTIONS (P) Ltd.
An ISO 9001: 2008 Certified Company
#3, Block No. 533, First Floor, Opp. Kumar Mall,, Kumar Mall Rd, Model Town, Sarojini
Colony, Yamuna Nagar, Haryana 135106
Grapess Solutions has started in March,2010 with a vision to provide every solution of IT. We
have started with IT education & training and software solution
In Web Design & Development:
Grapess Solutions provides professional website design, development and maintenance services.
Our experienced web designers and developers carry out various website projects from brochure
sites to multi-functional web portals. Grapess Solutions has a large team of resources and the
required business and technical expertise to develop websites of any complexity. We provide
complete front-end and back-end development based on the latest technologies and industry
trends.
What you can expect with every website design project:
Great, fast loading, modern design.
Private, in progress viewing during design and development.
Content management system to easily edit your website.
Basic search engine optimization to help you rank better.
Site map to help visitors find what they are looking for.
User friendly/Search engine friendly navigation menu.
Email/information request forms to allow visitor feedback and inquiries.
Upload to your website host when going live.
Manual submission to Google, Yahoo, and Bing.
Free minor changes for two weeks following launch of new site
4
Vision / Mission:-
Our Vision
Our vision is to be the leader in Infrastructure Products, Services and creating value
for our customers to earn their Lifetime loyalty.
OurMission
Every team member at Grapess Solutions will strive to provide Cost effective, Best
Quality Products and Services to our customers through adherence to and with
continuous improvements in Standards, Systems and Processes.
Our Software Development Services include:
1. Windows Software Development
2. Web Application Development
3. Software Products
4. Software Rebranding
Website Designing
Professional website designing and website development services, web application development,
ecommerce website development, web design India, offshore website design, SEO services,
offshore engineering services and web design services.
Our services are backed by a professional work portfolio and glowing reviews. We have been
providing best-in-class web site design, web development, search engine optimization & website
maintenance services to Indian & offshore businesses since 2002. Our website design services
will get you the results that you always wanted. Our websites are clean, clear and customized to
your needs! Your website is an online resume for yourbusiness. Why wouldn’t you want to
appear your very best? At Grapess, we provide professional website designing and create custom
logos at affordable prices.
5
SOFTWARE/HARDWARE CONFIGURATION
Software
The following are the software required for the project:
Microsoft Windows7/8
Jdk
Apache Tomcat
MySQL
Hardware
The following are the hardware required for the project:
PC with Dual Core 1.3 or Higher Processor
512 MB RAM or Higher
Minimum 20 GB hard disk space.
For this software there are following alternatives:-
Front End : J2EE
Back End : MySQL
Editor : Eclipse
Doc Tool : MS-Word
6
LIST OF TABLES
1) Table 1: LoginInfo
2) Table 2: BookCategory
3) Table 3: BookSubCategory
4) Table 4: PublicationInfo
5) Table 5: BookInfo
6) Table 6: BookStock
7) Table 7: BookPhoto
8) Table 8: CartInfo
9) Table 9: CartItems
10) Table 10: OrderInfo
11) Table 11: OrderDetails
7
INTRODUCTION
This project deals with developing an e-commerce website for Online Book Shop. It provides the
user with a catalogue of different books available for purchase in the store. In order to facilitate
online purchase a shopping cart is provided to the user.
In order to e-commerce website, a number of technologies must be studied and understood.
These include multi-tiered architecture, server and client side scripting techniques,
implementation technologies such as JSP, programming language (such as JAVA, JAVA script,
and HTML), relational databases (such as MySQL, Access).
This is a project with the objective to develop a basic website where a consumer is provided with
a shopping cart application and also to know about the technologies used to develop such an
application.
An Online Book shop is a virtual store on the internet where customers can browse the catalogue
and select books of interest. The selected books may be collected in a shopping cart. At checkout
time, the items in the shopping cart will be presented as in order. At that time, more information
will be needed to complete the transaction. Usually, the customer will be asked to fill a billing
address, a shipping option, and payment information such as credit card number.
8
PROJECT DETAILS
There are two views of this Online Bookshop:
1) ADMINISTRATOR VIEW: The administrator controls the all online bookshop
activities. The admin also has a username & password through which he enters in the admin
view.It has the following :
Add or Delete a Category: The admin can add or delete a category according to the
needs of the website or the users.
Add or Delete a Book: Admin can add or delete a book from the catalogue.
Add or Delete a user: Admin can delete a user whenever he though to do so.
Logout:In the login page admin will move the login page.
2) USER VIEW: It contains following:
Login: The user can login using the username and password it has registered with. After login, the user can buy books from the catalogue.
Registration: A new user has to register first until then he cannot purchase the books.
The project has following functionalities:
1) A Home page with product catalogue: This is the page where the user will be navigated
after a successful login. It will display all the book categories and will have a search option
for the required book. It also includes some special sections like special books etc.
2) Search: A search is a keyword option provided to the user using a textbox. The keyword to
be entered should be the book title.
9
3) All Products: It contains all the products of the website.
4) Register with us: It is used for registering new users to the website. The users have to enter
their details to get them registered.
5) About Us: It gives the details of the website and the developers.
6) Contact: It consists the contact details of the owners.
7) Login : The registered users login to the website using their username and password.
8) Shopping Cart: The user can manage their shopping cart which will include all the books to
be selected. The user can edit, update and delete his shopping cart. A final shopping cart
summary is displayed which includes all the items the user selected and the final cost.
9) Choose A Category: In this the user can choose the category from which user has to select
the books of the category of the choice.
10) Administrator: The admin will be provided with special functionality likely
Add or Delete a book category.
Add or Delete a member.
Manage member orders.
LANGUAGE DETAILS
10
Java
Java is a blend of the best elements of its rich heritage languages combined with the innovative
concepts required by its unique mission. Although Java has become inseparably linked with the
online environment of the Internet, it is important to remember that Java is first and foremost a
programming language. Much of the character of Java is inherited from C and C++. From C,
Java derives its syntax. Many of Java’s object oriented features were influenced by C++.
James Gosling, Patrick Naughton, Chris Warth, Ed Frank and Mike Sheridan developed Java at
Sun Microsystems, Inc. in 1991. This Language was initially called “Oak” but was renamed
“Java” in 1995.
The original impetus for Java was the need for a platform independent language that could be
used to create software to be embedded in various consumer electronics devices such as remote
controls. But, with the emergence of the World Wide Web, Java was propelled to the forefront of
computer language design, because the web too, demanded portable programs.
Principles
There were five primary goals in the creation of the Java language:
1. It should be "simple, object-oriented and familiar".
2. It should be "robust and secure".
3. It should be "architecture-neutral and portable".
4. It should execute with "high performance".
5. It should be "interpreted, threaded, and dynamic".
6. Java™ has significant advantages over other languages and environments that make it
suitable for just about any programming task. The advantages of Java are as follows:
Java is easy to learn.
Java was designed to be easy to use and is therefore easy to write, compile, debug, and
learn than other programming languages.
Java is object-oriented.
This allows you to create modular programs and reusable code.
11
Java is platform-independent.
One of the most significant advantages of Java is its ability to move easily from one computer
system to another. The ability to run the same program on many different systems is crucial to
World Wide Web software, and Java succeeds at this by being platform-independent at both the
source and binary levels. Because of Java's robustness, ease of use, cross-platform capabilities
and security features, it has become a language of choice for providing worldwide Internet
solutions.
JRE (Java Runtime Environment)
The Java Runtime Environment (JRE) provides the libraries, the Java Virtual Machine, and other
components to run applets and applications written in the Java programming language. In
addition, two key deployment technologies are part of the JRE: Java Plug-in, which enables
applets to run in popular browsers; and Java Web Start, which deploys standalone applications
over a network. This is the official Java Download from Sun Microsystems.
JDK (Java Development Kit)
The Java Development Kit (JDK) is a Sun Microsystems product aimed at Java developers.
Since the introduction of Java, it has been by far the most widely used Java SDK. On 17
November 2006, Sun announced that it would be released under the GNU General Public
License (GPL), thus making it free software. This happened in large part on 8 May 2007[3]; Sun
contributed the source code to the Open JDK.
The JDK has as its primary components a collection of programming tools, including:
Java – the loader for Java applications. This tool is an interpreter and can interpret the class files
generated by the Javac compiler. Now a single launcher is used for both development and
deployment. The old deployment launcher, JRE, no longer comes with Sun JDK, and instead it
has been replaced by this new java loader.
12
Javac– the compiler, which converts source code into Java byte code.
Applet viewer– this tool can be used to run and debug Java applets without a web browser
The Java Buzzwords
The key feature responsible for the development of Java is:
Simple
Java was design to be easy for the professional programmers to learn and use efficiently. If one
already understand the basic concepts of OOP, learning Java will be ever easier.
Robust
The multi plat formed environment of the Web places extraordinary demands on a program,
because the program must execute reliably in a verity of systems.
Multithreaded
Java was design to meet the real world requirements of creating interactive, networked programs.
To accomplish this, Java supports multithreaded programming, which allows us to write
programs that do many things simultaneously.
Distributed
Java is design for the distributed environment of the Internet, because it handles the TCP/IP
protocols.
The brief discussion of APIs
AWT
13
It stands for Abstract Window Toolkit. Since all applets run in a window, it is necessary to
include AWT, which supports window-based applet programs. Applets are event-driven. An
applet waits until an event occurs. The AWT notifies the applet about an event by calling an
event handler that had been provided by the applet. Once this happens, the applet must take
appropriate actions and then quickly return control to the AWT. The architecture of an applet is
not as easy to understand as that of a console-based program, Java’s AWT makes it as simple as
possible.
Awt.Event:
Applets are event-driven programs. Thus, event handle is at the core of successful applet
programming. Most events to which user’s applet will respond are generated by the user. These
events are passed to user’s applet in variety of ways, with the specific method depending upon
the actual event. There are several types of events. The most commonly handled events are those
generated by the mouse, the keyboard, and various controls, such as push button. Events are
supported by the java.awt.event package.
Exception Handling-
An exception is an abnormal condition that arises in a code sequence at run time. In other words,
an exception is a run-time error. In computer languages that do not support exception handling,
errors must be checked and handled manually—typically through the use of error codes, and so
on. This approach is as cumbersome as it is troublesome. Java’s exception handling avoids these
problems and, in the process, brings run-time error management into the object-oriented world.
A Java exception is an object that describes an exceptional condition that has occurred in a piece
of code. When an exceptional condition arises, an object representing that exception is created
and thrown in the method that caused the error. That method may choose to handle the
exception itself, or pass it on. Either way, at some point, the exception is caught and processed.
Exceptions can be generated by the Java run-time system, or they can be manually generated by
the user’s code. Exceptions thrown by Java relate to fundamental errors that violate the rules of
the Java language or the constraints of the Java execution environment. Manually generated
exceptions are typically used to report some error condition to the caller of a method.
14
Swing
Swing is a set of classes that provides more powerful and flexible components than are possible
with the AWT. In addition to the familiar components, such as buttons, check boxes, and labels,
Swing supplies several exciting additions, including tabbed panes, scroll panes, trees, and tables.
Even familiar components such as buttons have more capabilities in Swing. For example, a
button may have both an image and a text string associated with it. Also the image can be
changed as the state of the button changes. Unlike AWT components, Swing components are not
implemented by platform-specific code. Instead, they are written entirely in Java and, therefore,
are platform independent. The Swing-related classes are contained in javax.swing. Some of the
classes used are JApplet, JLabel, JButton, JScrollPane, JTextArea, JTextField, JMenuBar,
JMenu, JFrame. JApplet and JFrame provides a method getContentPane() which returns a
reference to their associated content pane. So to get a reference to the JApplet’s container where
user will add their GUI objects.
Container appletContainer = getContentPane ();
This statement can be in the instance variable initialization list, where user declare and
instantiate the GUI objects. Then, subsequent adds or sets of layout managers in the constructor
or in init() would be on this appletContainer. For example,
AppletContainer.add(nameLabel);
JApplet
Fundamental to Swing is the JApplet class, which extends Applet. Applets that use Swing must
be subclasses of JApplet. JApplet is rich with functionality that is not found in Applet.
JLabelSwing labels are instances of JLabel class, which extends JComponent. It can display
text and / or an icon. This class is used for putting a label on an applet, like a label used is “Enter
your name”.
15
JTextField
It allows user to edit one line of the text. Like a text field of 20 characters long is created with the
label “Enter your name” to enter the name of the user.
JButton
JButton class provides the functionality of a push button. JButton allows an icon, a string, or
both to be associated with push button.
JTextArea
It allows user to edit in an area specified in terms of rows and columns.
JScrollPane
Scroll panes are implemented in Swing by the JScrollPane, which extends JComponent. A scroll
pane is a component that presents a rectangular area in which a component may be viewed.
Horizontal and / or vertical scroll bars may be provided if necessary.
JFrame
The JFrame implements frames in Swings. Frame encapsulates a “window”. It is the subclass of
a window and has a titlebar, menubar, borders and resizing corners.
JMenuBar and JMenu
A menu bar displays a list of top-level menu choices. JMenuBar and JMenu implement it.
JavaServer Pages (JSP)
This technology enables you to mix regular, staticHTML with dynamically generated content
from servlets. You simplywrite the regular HTML in the normal manner, using familiarWeb-
page-building tools. You then enclose the code for the dynamicparts in special tags, most of
16
which start with <% and end with %>. Forexample, here is a section of a JSP page that results in
“Thanks for ordering Core Web Programming” for a URL of http://host/OrderConfirmation.
jsp?title=Core+Web+Programming:
Thanks for ordering <I><%= request.getParameter("title") %></I>
Separating the static HTML from the dynamic content provides a numberof benefits over
servlets alone, and the approach used in JavaServer Pages offers several advantages over
competing technologies such as ASP, PHP, orColdFusion. That JSP is widely supported
and thus doesn’t lock you into a particular operating system or Webserver and that JSP gives you
full access to servlet and Java technology for thedynamic part, rather than requiring you to use an
unfamiliar and weaker special-purpose language.
The process of making JavaServer Pages accessible on the Web is muchsimpler than that for
servlets. Assuming you have a Web server that supportsJSP, you give your file a .jsp extension
and simply install it in any place youcould put a normal Web page: no compiling, no packages,
and no userCLASSPATH settings. However, although your personal environment doesn’tneed
any special settings, the server still has to be set up with access to theservlet and JSP class files
and the Java compiler. For details, see your server’sdocumentation or Section 1.5 (Installation
and Setup).Although what you write often looks more like a regular HTML file than aservlet,
behind the scenes, the JSP page is automatically converted to a normalservlet, with the static
HTML simply being printed to the output streamassociated with the servlet’s service method.
This translation is normallydone the first time the page is requested. To ensure that the first real
userdoesn’t get a momentary delay when the JSP page is translated
JSP scripting elements let you insert code into the servlet that will be generatedfrom the JSP
page. There are three forms:
1. Expressions of the form <%= expression %>, which are evaluatedand inserted into the
servlet’s output.
2. Scriptletsof the form <% code %>, which are inserted into theservlet’s _jspService method
(called by service).
17
3. Declarations of the form <%! code %>, which are inserted intothe body of the servlet class,
outside of any existing methods
JDBC is a Java API for executing SQL statements. (As a point of interest, JDBC is a
trademarked name and is not an acronym; nevertheless, JDBC is often thought of as standing for
"Java Database Connectivity".) It consists of a set of classes and interfaces written in the Java
programming language. JDBC provides a standard API for tool/database developers and makes it
possible to write database applications using a pure Java API.
Using JDBC, it is easy to send SQL statements to virtually any relational database. In other
words, with the JDBC API, it isn't necessary to write one program to access a Sybase database,
another program to access an Oracle database, another program to access an Informix database,
and so on. One can write a single program using the JDBC API, and the program will be able to
send SQL statements to the appropriate database. And, with an application written in the Java
programming language, one also doesn't have to worry about writing different applications to run
on different platforms. The combination of Java and JDBC lets a programmer write it once and
run it anywhere.
Introduction of Java Database Connectivity
Java, being robust, secure, easy to use, easy to understand, and automatically Downloadable on a
network, is an excellent language basis for database applications. What is needed is a way for
Java applications to talk to a variety of different databases. JDBC is the mechanism for doing
this. JDBC extends what can be done in Java. For example, with Java and the JDBC API, it is
possible to publish a web page containing an applet that uses information obtained from a remote
database. Or an enterprise can use JDBC to connect all its employees (even if they are using a
conglomeration of Windows, Macintosh, and UNIX machines) to one or more internal databases
via an intranet.
With more and more programmers using the Java programming language, the need for easy
database access from Java is continuing to grow. MIS managers like the combination of Java and
JDBC because it makes disseminating information easy and economical. Businesses can
continue to use their installed databases and access information easily even if it is stored on
18
different database management systems. Development time for new applications is short.
Installation and version control are greatly simplified.
What Does JDBC Do?
Simply put, JDBC makes it possible to do three things:
1. establish a connection with a database
2. send SQL statements
3. process the results.
The following code fragment gives a basic example of these three steps:
Class.forName("com.mysql.jdbc.Driver");con= DriverManager.getConnection("jdbc:mysql://localhost:3306/cineplex", "root", "1");Statement stmt = con.createStatement();
ResultSetrs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = getInt("a");
String s = getString("b");
float f = getFloat("c");
}
JavaSoft provides three JDBC product components as part of the Java Developer's Kit (JDK):
. the JDBC driver manager,
. the JDBC driver test suite, and
. the JDBC-ODBC bridge.
SYSTEM DESIGN
MODULE FLOW CHART:
19
DEVELOPMENT LIFE CYCLE
20
Login
Admin User
Add category
Add SubCategory
Add book
Delete Book
Logout
Choose a Category
Purchase Books
Logout
INTRODUCTION
The Software Development Life Cycle (SDLC) is a conceptual model used in project
management that describes the stages involved in an information system development project
from an initial feasibility study through maintenance of the completed application. Various
SDLC methodologies have been developed to guide the processes involved including the
waterfall model (the original SDLC method). Documentation is crucial regardless of the type of
model chosen or devised for any application, and is usually done in parallel with the
development process. Some methods work better for specific types of projects, but in the final
analysis, the most important factor for the success of a project may be how closely particular
plan was followed.
System Analysis
The Analysis model:
21
DataDictionary
Entity RelationshipDiagram
Data Object Description
Process Specification
Data Flow Diagram
State Transition Diagram
Control Specification
The analysis model must achieve three primary objectives:
To describe what the customer requires.
To establish the basis for the enhancement of a software design.
To define a set of requirements that can be validated once the software is completely
enhanced. The main elements of the analysis model are briefly described below.
At the core of the model lies the data dictionary, which is a repository that contains
descriptions of all the data objects
Consumed or produced by the software .Three different diagrams surround the core.
The entity relation diagram depicts relationships between data objects.
22
The data flow diagram provides an indication of how the data is transformed as they
move through the system.
The state transition diagram indicates how the system behaves as a consequence of
external events.
System analysis is an explicit formal inquiry carried out to help someone identify a better course
of action and make a better decision than he might otherwise have made. The characteristic
attributes of a problem situation where systems analysis is called upon are complexity of the
issue and uncertainty of the outcome of any course of action that might reasonably be taken.
Systems analysis usually has some combination of the following: identification and re-
identification) of objectives, constraints, and alternative courses of action; examination of the
probable consequences of the alternatives in terms of costs, benefits, and risks; presentation of
the results in a comparative framework so that the decision maker can make an informed choice
from among the alternatives.
There are several specific kinds or focuses of systems analysis for which different terms are
used: A systems analysis related to public decisions is often referred to as a POLICY
ANALYSIS. A systems analysis that concentrates on comparison and ranking of alternatives on
basis of their known characteristics is referred to as DECISION ANALYSIS.
FEASIBILITY STUDY
The feasibility study is used to determine if the project should get the go-ahead. If the project is
to proceed, the feasibility study will produce a project plan and budget estimates for the future
stages of development. Feasibility is the determination of whether or not a project is worth doing
the process followed in making this determination is called a feasibility study. It is an analysis of
possible alternative solutions to aproblem and a recommendation on the best
alternative.Feasibility study is carried out to select the best system that meets system
performance requirements.
Different types of feasibility study:
Technical feasibility
23
Operational feasibility
Economic feasibility
Technical Feasibility:
This is concerned with the specifying equipment and software that will successfully satisfy the
requirements. The proposed system is technically feasible as it can be developed easily with the
help of available technology. The proposed system requires MS-Access which is used as back-
end and Core Java with Swings and JDBC as front end.
In the technical needs of the system these points are considered.
The facility to produce in given time.
Response time under conditions.
Availability to process a certain volume of transaction at a particular speed
Economical Feasibility:
Economic analysis is the most frequently used technique for evaluating the effectiveness of the
proposed system. The producer is to determine the benefits and the saving that are expected
from a proposed system and compare them with the proposed system.
The only tangible benefits proposed that the manual work and burden is reduced maximum as
possible, resulting the reduction in manpower requirement and cost incurred on manpower as
well. The system provides many benefits that can’t be measured in terms of money for e.g. user
friendliness, more efficient user response, maintenance of database etc.
Operational Feasibility:
24
The proposed system is highly user friendly and it is much easily to interact with the user.
Therefore, the user will easily accept the system as data entry system and queries can be easily
solved. Initial stages of the system might face some resistance but once complete automation is
achieved and operators are trained. The system will provide maximum easiness.
It is mainly related to human organizational and political aspects in it we consider:
What changes will be brought with the system?
What organizational structures are distributed?
What new skill will be required?
COST-BENEFIT ANALYSIS
Cost Benefit analysis:
Cost saving benefits lead to reduction in administrative and operational costs. A reduction in the
size of the clerical staff used in the support of an administrative activity is an example of a cost
saving benefit. Cost and benefits can be classified as follows:
Tangible or Intangible
Fixed or Variable.
Direct or Indirect
Tangible or Intangible:
Tangible refers to easy with which cost or benefit can be measured. An outlay of cost for any
specific items or activity is referred to as a tangible cost. Cost that are known to exist what their
financial value cannot be exactly measured as known as intangible cost.
25
Fixed or Variable cost:
Some cost and benefit remain constant regardless of how a system is used fixed costs are
considered as sink cost. One encountered they will not recur. For e.g the purchase of equipment
for a computer center is called as fixed cost. It remains constant whether it is used.
In variable cost these are incurred on regular bases they are generally proportion to work volume
and continue as long as the system is in operation.
Direct or Indirect:
Direct cost are those which are directly associated with a system. There is directly applied
operator. For e.g. the purchase of a floppy for Rs.400 is a direct cost because we can associate
the floppy box with money spend.
Indirect costs are not directly associate with a specific activity in the system they are often
referring to as an overhead expense. For example cost of space to install a system, maintenance
of computer center, heat-light and air-conditioning are all tangible cost.
DESIGNING
SYSTEM DESIGN
System design is the process of developing specifications for a candidate system that meet the
criteria established in the Planning. Major step in system design is the preparation of the input
forms and the output reports in a form applicable to the user.
The purpose of design phase is to plan a solution for problem specified by the requirement
document. In other words, starting with what is needed, design takes us toward how to satisfy the
needs. The design of a system is the most critical factor affecting the quality are translated into a
blue-print for constructing the software.
26
The main objective of the system design is to make the system user friendly. System design involves various stages as:
Data Entry
Data Correction
Data Deletion
Processing
Sorting and Indexing
Report Generation
System design is the creative act of invention, developing new inputs, a database, offline files, procedures and output for processing business to meet an organization objective. System design builds information gathered during the system analysis.
The designing phase of any software development is carried out in the following stages:
Architectural design( high level design)
Detailed design(low level design or physical design)
HIGH LEVEL DESIGN:
The top level design 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 results, at the end
of the system design all the major data structures, file formats, output formats, and the major
modules in the system and their specifications are decided.
It involves:
Identifying the entities
All the entities related to the model were identified, checked and consolidated.
27
Identifying the relationships
The relationships between the entities within and outside the system were identified.
Attribute definition
Attributes for each entity were identified and their field characteristics were identified. At the
end of the logical design, a system modeled on DBMS should be fully organized. Further, though
a fully normalized design may not be the design adopted in the final physical model, it is still
desirable fully normalize the design and then de-normalize it in a controlled manner to take care
of optimality. Since normalization is a body of rules addressing analysis and conversion of data
structures into relations that exhibit more desirable properties of internal consistency, minimum
redundancy and maximum stability.
DATA NORMALIZATION:
The focus of normalization is on reducing storage overheads. Specially, the aims are;
To identify and isolate the entities involved.
To remove redundant information.
To determine the identifying attributes of records.
An entity is something exists. It may be something tangible or it may even be just a relationship.
Every occurrence of an entity will have some discernible attributes. Removing redundancy, the
second aim of normalization, is the other way of eliminating waste space. The last aim or having
identifying attribute can be accessed. It also facilitates linking of tables.
LOW LEVEL DESIGN:
During detailed design, the internal logic of each of the modules specified design is decided.
During the phase further details of the data structure and algorithmic design of each of the
modules is specified. The logic of the module is usually specified in a high level design
28
description language, which is independent of the target language in which the software will
eventually be implemented.
In the system design the focus is on identifying the modules, where as during detailed design
focus is on designing the logic for each of the modules. The three main tools of system design
are:
Data flow diagram
Flow charts
Data dictionary
TESTING
Introduction
During earlier development phases, an attempt is made to build software from an abstract
concept to a tangible implementation. Software testing is a critical element of software quality
assurance and represents ultimate review of specification, design and coding notion of
“correctness” of the software just developed and overcome a conflict of interest that occurs when
errors are recovered. A thorough testing of system before any implementation is mandatory, as
regards its individual program, the system as a whole, user acceptance of the system etc. this is
because implementing a new system is a major job, which requires a lot of man-hours and other
resources, so an error not detected before implementation may a cost a lot. Effective testing early
in a process is also necessary because in some cases, a small error not detected and corrected
early before installation may explore into much larger problems.
After programming comes the stage of installing the computerized system. Actual
implementation of the system can be begin at this point using either of parallel or direct change
over plan, or a blend of the two.
Testing the system
Testing can be done with two types of data. Live data and test data.
29
Live data is the data actually to be used in the proposed system.
Test data is previously designed sample input to achieve predictable results.
Testing Objective
Testing is a process of execution a program with the intent of finding an error.
A good test case is one that has a high portability of finding an undiscovered error.
A successful test is one that uncovers an as-yet-discovered error.
Testing Principles
ATI tests should be traceable to customer requirements.
Test should be planned long before testing phase.
Testing should begin “in small “ and progress toward testing “in the large”.
Exhaustive testing is completely possible.
To be most effective, an independent third party should conduct testing.
TESTING METHODS
White Box Testing:
White box testing of software is predicated on close examination of procedural detail. Providing
test cases that exercise specific sets of conditions and or loops tests logical paths through the
software. White Box Testing, sometime called glass box testing, is a test case design method that
uses the control structure of the procedural design to derive test cases.
Using white box testing methods, following test cases can be derived.
Guarantee that all independent paths within module have been
exercised at least once.
Exercise all logical decisions on their true and false sides. Execute all
loops at their boundaries and within their operational bounds.
30
Exercise internal data structures to assure their validity.
The errors that can be encountered while conducting white box testing
are-
Logical errors and incorrect assumptions. Typographical errors
Black Box Testing:
Black box testing is carried out to check the functionality of the various modules. Although they
are designed to uncover errors, black box tests are used to demonstrate that software functions
are optional; that input is properly accepted and output is correctly produced, and the integrity of
external information is maintained, a black box test examines some fundamental aspects of the
system with little regard for the internal logical structure of the software. Black box testing
focuses on the functional requirements of the software.
Black box testing attempts to find errors in the following categories:
Incorrect or missing functions.
Interface errors.
Errors In data structure or external database access.
Performance errors
Initialization and termination errors.
Unlike white box testing, which is performed early in the testing process, black box tends to
apply during later stages of testing. Because black box testing purposely disregards control
structure, attention is focused on the information domain.
SOFTWARE TESTING STRATEGIES:
A strategy for software testing integrates software test case design methods into a well planned
series of steps that result in the successful construction of software. An important, software
31
testing strategy provides a road map. Testing is set of activities that can be planned in advanced
and conducted systematically. Various strategies are given below:
Unit Testing: Unit testing focuses verification effort on the smallest unit of software design i.e.
module. Using procedural design as a guide, important control paths are tested to uncover errors
within the boundary of the module.
Integration Testing: Integration testing is systematic technique for constructing the program
structure while conducting tests to uncover errors associated with interfacing.
Acceptance Testing: To ensure that the final system, as it will be delivered, complies with all
the client’s requirements of the system, as detailed in the SRS. If monitor alterations are
required, then some form of regression testing may also have to be used.
Validation Testing: At the culmination of Integration testing, software is completely assembled
as a package, Interfacing errors have been uncovered and corrected and a final series of software
test-validation testing may begin.
System Testing: Software is incorporated with other system elements and a series of system
integration and validation test are conducted. The various types of system testing are:
Recovery Testing: many computer based systems must recover from faults and resume
processing within a pre-specified time.
Security Testing: Security testing attempts to verify that protection mechanisms built into a
system will in fact protect it from improper penetration.
Stress Testing: Stress tests are designed to confront programs with abnormal situations.
Performance Testing: Performance testing is designed to test run time performance of
software within the context to an integrated system.
All above mentioned testing principles have been applied to all the modules and the modules
have passed the tests successfully.
32
TESTING OF FORMS
Forms are the interface between the user and database system. Testing of forms was extensive
task. All data entry and query formats are designed using forms. Forms were tested to ensure that
they are performing the tasks and well they are designed fork and correction and modifications
were made found to be necessary.
System testing is designed to uncover weaknesses that were not found in the earlier tests. This
includes forced system failure and its users in the operational environment will implement
validation of the total system as it. After a successful testing of the individual programs and
forms, the whole system was through a series of test to ensure the proper working of the system
as a whole. The system as a whole unit put to all-possible inputs. The consistency and validity is
then checked by the outputs. The activities involved in the system testing are:
Integration Testing
Acceptance Testing
In integration testing the entire system is tested and Acceptance Testing involves planning and
execution of functional tests, performance tests and stress testing order to demonstrate that the
implemented system satisfied its requirements. The functional tests, performance tests and stress
tests are performed to determine the limitation of the system.
Functional Tests:
The system went through functional tests all along the development stage. Whenever a new
function was added it went through a thorough testing for all possible input values and its
interoperability with other functions by the coder. On delivery of the intermediate system to the
customer, the customer studied the system functionalities and provided the feedback, which often
mentioned the changed desired. So the system, went through functional test both at the developer
and customer ends.
33
Performance Tests:
Before the delivery of the system to the customers the new system went through various tests to
benchmark its performance.
These included the GUI testing.
The functional testing.
And, the overall system integrity testing.
Stress Tests:
The system was pushed to its limits and beyond during the stress testing, to measure its
performance and stability versus the load.
Security Tests:
The functional environment of the system posed no real security threat but the system was
developed considering the entire data to be highly critical and thus denying free access to anyone
without proper access rights. The entire system was password protected.
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. A Post-
Implementation Review (PIR) is an assessment and review of the completed working solution. It
will be performed after a period of live running, sometime after the project is completed.
34
TABLES USED
Table 1:LoginInfo
LoginInfo
Column Name Data Type ConstraintUserName Varchar(100) Primary keyPassword Varchar(100)RoleName Varchar(100)EmailID Varchar(100) Unique keySecurityQuestion Varchar(1000)SecurityAnswer Varchar(100)LastLogin Datetime
Table 2: BookCategory
BookCategory
Column Name Data Type ConstraintBookID Varchar(20) Primary keyBookName Varchar(100) Unique keyDescription Varchar(1000)
35
Table 3: BookSubCategory
BookSubCategory
Column Name Data Type ConstraintSubBookCategoryID Int Auto increment , Primary
keySubBookCategoryName Varchar(100)Description Varchar(1000)
BookID Varchar(20) Foreign key with Product Category
Table 4: CompanyInfo
CompanyInfo
Column Name Data Type Constraint
PublicationID Varchar(20) Primary key
PublicationName Varchar(100) Unique key
Description Varchar(1000)
Table 5: BookInfo
BookInfo
Column Name Data Type ConstraintBookID Int Primary key , auto incrementBookName Varchar(100)SubBookCategoryID Int Foreign key with
ProductSubCategoryPublicationID Varchar(20) Foreign key with
CompanyInfoPrice FloatQuantity Int
Table 6:BookStock
36
BookStock
Column Name Data Type ConstraintStockID Int Primary key,auto incrementBookID Int Foreign key with Product
InfoQuantity IntStockType Enum(‘IN’,’OUT’)StockDate Datetime
Table 7:BookPhoto
BookPhoto
Column Name Data Type ConstraintPhotoID Int Primary key,auto incrementPhotoName Varchar(100)ExtName Varchar(100)PhotoType Varchar(100)PhotoSize IntBookID Int Foreign key with product
info
Table 8:CartInfo
CartInfo
Column Name Data Type ConstraintCartID Int Primary key,auto incrementUserName Varchar(100)CartDate DatetimeIsOrder Enum(‘1’,’0’)
Table 9:CartItems
37
CartItems
Column Name Data Type ConstraintBookItemID Int Primary key,auto incrementBookID Int Foreign key with ProductInfoQuantity IntPrice FloatCartID Int Foreign key with CartInfo
Table 10:OrderInfo
OrderInfo
Column Name Data Type Constraint
OrderID Int Primary key,auto incrementUserName Varchar(100) Foreign key with LoginInfo
CartID Int Foreign key with CartInfoOrderDate Datetime
ShippingDate DatetimeOrderStatus Varchar(1000)ShippingAddress Varchar(1000)
Table 11:
OrderDetails
Column Name Data Type Constraint
DetailID Int Primary key,auto increment
BookID Int Foreign key with ProductInfo
Quantity Int
Price Float
SNAPSHOTS
38
1. HOME PAGE: The home page is the first look of the online bookshop. This home page is
filled with graphics as well as information about which the site is all about.
The Home page consists of:
Links to Login page and Registration page.
Options of choose a Category and Select Publications.
Information about new Books and special offers.
Information about the website and contact details.
Home Page
2. LOGIN PAGE: The Login page can be accessed by the registered users only. The Login
page consists of:
39
Username Text Field: The user has to enter the username in this text field.
Password Text Field:The user has to enter the password in this text field.
(Login Page)
40
If the user enters invalid Username or Password or both, a message will be displayed “Invalid
Username Or Password”.
3. REGISTRATION PAGE: The registration page is where new users have to register in
order to purchase the books. Users can only login when they have registered first.
The Registration page consists of:
Enter New Username: The new users have to give a unique username to register.
Enter New Password: The user has to give a new password by which they can login
their account.
Enter Email Id: The user has to enter a valid email id for registering their accounts.
41
Choose Security Question: In this field, the user can select a security question fron
the already given choices of questions, such as:
What was your childhood pet name?
What is the name of your pet?
Enter Security Answer: In this field, the user will answer the security question. This
security question can be used in case the user forgets his/her password.
(Registration Page)
42
FUTURE SCOPE OF THE PROJECT
This project can be easily implemented under various situations.We can add new features as and
when we require. Reusability is possible as and when require in this project. There is flexibility
in all the modules.
We can also include online payment services to this project using PayPal. This will help
customers to pay online for their purchases using Credit/Debit card. There are many features
which could be added to this project for making this project more productive.
43
CONCLUSION
The software development is never completed. There is always a need for modification. There
could have been other approaches to implement the system. I have tried to my level best to make
the system an interactive as possible.
The developed system is flexible and changes whenever can be made easy. Using the
facilities and functionalities of J2EE and jsp, the website has been developed in a neat
and simple manner, thereby reducing the operators work. The speed and accuracy are
maintained in proper way. The user friendly nature of this website developed in J2EE and
jsp is very easy to work with both for the admin as well as other users with little
knowledge of computer.
44
REFERENCES
1) Servlet and JSP Quick Reference http://www.coreservlets.comhttp://www.moreservlets.com
2) JSP: The Complete Reference. Phil Hanna. Osborne/McGraw-Hill.
3) Java Servlet Programming, 2nd edition by Jason hunter, William Crawford, Publisher: O’Reilly media.
4) Java Web Programming with Eclipse by David Turner and JineokChae.
5) http://www.oracle.com/technetwork/java/index.html
6) Y. Daniel Liang, ”Introduction to Java Programming” 9thed, 2012.
7) www.w3schools.com/sql
45
Website Reference
www.oracle.com/technetwork/java/index.html
www.freewebmasterhelp.com
www.tutorialspoint.com/jsp/
www.coreservlets.com
www.w3schools.com/jsp
www.tomcat.apache.org/
46