1. Studocu is not sponsored or endorsed by any college or university
Online Book Store In Python and Django report
Project Management (KLE Institute of Technology)
Studocu is not sponsored or endorsed by any college or university
Online Book Store In Python and Django report
Project Management (KLE Institute of Technology)
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
2. Online Book Store In Python and Django
CHAPTER 1
INTRODUCTION
1.1 Project Descripation
An online book store is a virtual store on the Internet where customers can browse the
catalog and select books of interest . This project intends different types of forms with many
types of books like story, drama, romance, history, adventures, etc. its a bookstore projects
that acts as a central database containing various books in stock along with their title, author
and cost. This project is a website that acts as a central book store. This web project is
developed using python as the front end and django as a back-end. The django database
stores various book related details. A user visiting the website can see a wide range of books
arranged in respective categories. The user may select desired book and view its price. The
user may even search for specific books on the website. Once the user selects a book , he
then has to fill in a form and the book is booked for the user. The software has the following
three main components:-
• Implement of new user to register and login.
• Implement user to choose any book.
• Implement the user to buy books.
The website will be implemented using Python as the programming language. Django
database will be used to link database.
1.1.1 Problem Statement
Customer could see all interested books related to his behavior without using search
opportunities, because profiling system must show books according to received
information form customer.
Analyzing system must basically understand customer in terms of their profile, buying
behavior, expectation and satisfaction.
Regarding to Online bookstore website there problem in detection of consumer behavior,
making website convenient, practicable, and useful to customer.
In the market there are o lot online bookstore websites, but there are only a few online
bookstores where could be a customer profiling, based on behavior of consumer.
Using a friendly appearance the website must come with a friendly appearance that could
be understandable for all users.
1.1.2 Objectives
The main objective of the project is to create an online book store that allows users to
purchase a book based on title, author and subject.
We are bookseller , have collection of many amazing books which are selections of titles
relating to history, outdoor activities, love stories ,fiction, biographics. Online bookstore
are mainly for bookworms people.
The user can order their books online through credit card payment. The Administrator
will have additional functionalities when compared to the common user.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
3. Online Book store is an online web application where the customer can purchase books
online, through a web browser.
For the project, we propose to build an online bookshop for People. The online bookshop
will contain stories, study material, any courses books like computer and be available to
everyone.
It will provide a service in which students can buy books online without any treble. There
will be free shipping. They do need to register with the site in order to books. Payment
information will be requested after adding any numbers of books in the cart.
1.1.3 Advantages
Provides the searching facilities based on various factors. Such as Books, Customer,
Order, Payment
Online Book Store also manage the Bill details online for Order details, Payment details,
Books.
It tracks all the information of Stock, Bill, Order etc
Manage the information of Stock
Shows the information and description of the Books, Customer
To increase efficiency of managing the Books, Stock
It deals with monitoring the information and transactions of Order.
Manage the information of Books
1.1.4 Limitations of the system
It is not east to satisfy the user requirement on the par
It is not easy to understand working of system by the user and operator
It might not easy to operate for new user
Having a good user interface every time is not cost effective
Expanding requires lot of time
Delivered might not be on schedule and not within the budget.
1.1.5 Modules
The site will contain the following features:
Registration / Login
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
4. Add to Cart
Searching for book
Buy book
Update cart
Users Register
The user needs to be registered in order to login.
Login: The users need to login in to get access to the system.
View product:Here the user can view different products and its details.
Search :The user can search product by name after which the system will evaluate prices
of the same product from different websites to give the user the best search result.
1.1.7 Scope
The Online Book Store 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.
The proposed system can be used even by the naïve 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.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
5. 1.2 Company Profile
Apponix is most innovative Training, Development and recruitment company strategically
located in Bangalore, delivering classroom and training across India, UK and USA. Apponix
stands for professionalism and quality of service, leading the way with INNOVATIVE
concepts and constantly striving for EXCELLENCE across all industry sectors.
1.2.1 About Apponix
Apponix was started in the year 2013 which was started by Mr.Praveen and Mr.Pradeep,
initially they started their Bangalore Rajajinagar and then Marathahalli Branch later UK
and USA Branch. Later in November 2019 Hubli branch was started. In 2013 they started
with networking and later in 2015 started with web development department later on as the
technology grows new technology was started such as Linux, Data science, Digital
Marketing, AWS, python, DevOps, SCCM, iOS, java and J2EE, Microsoft Azure and
server, Android, VMWare, PowerShell, Artificial Intelligence, ASP.NET, Graphic Design,
Software Testing and Bigdata. The motivation or reason for selecting the organization is
this company provide an ample of opportunity for learning
1.2.2 FOCUS OF THE ORGANIZATION
1. Achieving sample exposure
2. Revolutionizing the standard of learning and development
3. Addressing on-the-job challenges
4. Providing tailored training solutions
5. eLearning concept
6. Integration of classroom face-to-face learning experience
1.2.3 LEARNING RESPONSIBILITIES
1. Learning and understanding working of an organization
2. Learning software development process and working in a team
3. Learning new development technologies
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
6. 4. Hands on work experience of building a software or software modules.
1.2.4 ORGANIZATION PROFILE
1.2.4.1 ORGANIZATION HIERARCHY CHART
1.2.4.2 DEPARTMENT DETAILS
• SOFTWARE DEVELOPMENT DEPARTMENT
• DIGITAL MARKETING DEPARTMENT:
• HR DEPARTMENT
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
7. 1.2.4.3 BRANCHES:
1. Head Office -
Bangalore 306,
10th Main, 46th Cross, 4th Block Rajajinagar,
Bangalore – 560010
M: +91 8050580888
info@apponix.com
2. Hubli Branch
2nd floor, virupaksha krupa building
P.B. road Vidyanagar, Above Vodafone and Airtel store
Hubli – 580021
M: +91-9069980888
1.2.4.4 OTHER DETAILS
• There are 70 employees in the company
• The Registration Number of company is 69063
• Totally there are 5 Departments in the company
• Apponix initial establishment year is 13th May 2013
• The major functionality of the company is to provide Software solutions and Corporate
Training
• Official Partners of the company are:
• Talent Arena
• Just Learnnow.com
CH
APTER 2
LITERATURE SURVEY
This project designs an online bookstore provides a web-based interface. It is the graphical user
interface. It have a form for user to input query information to search the database. The users
interface then pass the input to the control function, which implemented in php. The control
function is designed to process the input from the users interface, generate the searching query
and then gets data from the database and returns to the users interface. The control functions
also have bridges to search some external real online bookshops. It can generate the query based
on the user input and pass them to the commercial bookshop. The bridge can also handle the
response from the commercial bookshop and parse the useful information and display to the
user in HTML forms.
• Taking backup of the Database .
• Editing / Deleting / Creating the database .
• Changing the password .
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
8. 2.1 Existing System
The Existing system is a paper based system. Here a paper is used as a means of clearance.
Students are meant to fill forms that are supposed to be signed by all departments. Photocopying
the form for all the departments that made it expensive and tiresome.
Challenges of Current clearance management information system
• The paper based system is tiresome and time consuming whereby in case any changes are
to be made, a different magazine or newspaper has to be published to reflect those
changes.
• This system is very expensive because a lot of money has to be spent to publish new
copies of magazines and newspaper with the latest information.
• It is hard to manipulate the information already published. In most cases written
documents are hard to edit.
• Information published in the magazine or newspaper is accessed by few people mostly
people living in urban areas leaving out people in remote areas.
Results of paper based systems
These refer to the characteristics of the existing paper based system and they include:
• A paper-based system can only be organized in a single way, cannot be easily, modified,
accessed remotely and updated and cannot be expanded without considerable effort.
• A paper-based system would need extensive labor and re-organization in order to change
the sequence and order of information which is expensive.
• A paper system cannot be easily modified and expanded. Updating data requires new
forms.
• The paper based system requires expensive machines that help in printing clearance
forms rapidly and these machines are very expensive.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
9. • A paper system requires massive amounts of space, fire protection, etc. These all add
overhead to your operation, whether in the home environment, or a high-level printing
firm.
• Paper is a risk in case of a fire outbreak. Paper is also a subject to damage from
temperature, water, fire and theft.
2.2 Proposed System
To overcome the drawbacks of the existing system, this project aims to reduce the paper work
and saving time to generate accurate information that is needed by users. The system has the best
user interface.
Advantages of Proposed System
• It is trouble-free to use.
• Is highly reliable, approximate result from user
• Best user Interface
• Efficient reports when needed
• It is the best way one can get in touch with service providers.
2.2 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 a problem 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
➢Economic feasibility
➢ Operational feasibility
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
10. 2.2.1 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 required
MS-Access which is used as backend and python with django database 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
2.2.2 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.
2.2.3 Operational Feasibility
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?
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
11. ➢ What organizational structures are distributed?
➢ What new skill will be required?
2.3 Tools and Technology Used
2.3.1 Python
Python is an interpreted, object-oriented, high-level programming language with dynamic
semantics. Its high-level built in data structures, combined with dynamic typing and
dynamic binding, make it very attractive for Rapid Application Development, as well as
for use as a scripting or glue language to connect existing components together. Python's
simple, easy to learn syntax emphasizes readability and therefore reduces the cost of
program maintenance. Python supports modules and packages, which encourages
program modularity and code reuse. The Python interpreter and the extensive standard
library are available in source or binary form without charge for all major platforms, and
can be freely distributed.
Often, programmers fall in love with Python because of the increased productivity it
provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast.
Debugging Python programs is easy: a bug or bad input will never cause a segmentation
fault. Instead, when the interpreter discovers an error, it raises an exception. When the
program doesn't catch the exception, the interpreter prints a stack trace. A source level
debugger allows inspection of local and global variables, evaluation of arbitrary
expressions, setting breakpoints, stepping through the code a line at a time, and so on.
The debugger is written in Python itself, testifying to Python's introspective power. On
the other hand, often the quickest way to debug a program is to add a few print statements
to the source: the fast edit-test-debug cycle makes this simple approach very effective.
2.3.2 Django
Django is a high-level Python web framework that enables rapid development of secure
and maintainable websites. Built by experienced developers, Django takes care of much
of the hassle of web development, so you can focus on writing your app without needing
to reinvent the wheel. It is free and open source, has a thriving and active community,
great documentation, and many options for free and paid-for support.
Complete
Django follows the "Batteries included" philosophy and provides almost everything
developers might want to do "out of the box". Because everything you need is part of the
one "product", it all works seamlessly together, follows consistent design principles, and
has extensive and up-to-date documentation.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
12. Versatile
Django can be (and has been) used to build almost any type of website — from content
management systems and wikis, through to social networks and news sites. It can work
with any client-side framework, and can deliver content in almost any format (including
HTML, RSS feeds, JSON, XML, etc).
Internally, while it provides choices for almost any functionality you might want (e.g.
several popular databases, templating engines, etc.), it can also be extended to use other
components if needed.
Secure
Django helps developers avoid many common security mistakes by providing a
framework that has been engineered to "do the right things" to protect the website
automatically. For example, Django provides a secure way to manage user accounts and
passwords, avoiding common mistakes like putting session information in cookies where
it is vulnerable (instead cookies just contain a key, and the actual data is stored in the
database) or directly storing passwords rather than a password hash.
A password hash is a fixed-length value created by sending the password through
a cryptographic hash function. Django can check if an entered password is correct by
running it through the hash function and comparing the output to the stored hash value.
However due to the "one-way" nature of the function, even if a stored hash value is
compromised it is hard for an attacker to work out the original password.
Django enables protection against many vulnerabilities by default, including SQL
injection, cross-site scripting, cross-site request forgery and clickjacking (see Website
security for more details of such attacks).
Scalable
Django uses a component-based "shared-nothing" architecture (each part of the
architecture is independent of the others, and can hence be replaced or changed if
needed). Having a clear separation between the different parts means that it can scale for
increased traffic by adding hardware at any level: caching servers, database servers, or
application servers. Some of the busiest sites have successfully scaled Django to meet
their demands (e.g. Instagram and Disqus, to name just two).
Maintainable
Django code is written using design principles and patterns that encourage the creation of
maintainable and reusable code. In particular, it makes use of the Don't Repeat Yourself
(DRY) principle so there is no unnecessary duplication, reducing the amount of code.
Django also promotes the grouping of related functionality into reusable "applications"
and, at a lower level, groups related code into modules (along the lines of the Model
View Controller (MVC) pattern).
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
13. Portable
Django is written in Python, which runs on many platforms. That means that you are not
tied to any particular server platform, and can run your applications on many flavors of
Linux, Windows, and macOS. Furthermore, Django is well-supported by many web
hosting providers, who often provide specific infrastructure and documentation for
hosting Django sites.
CHAPTER 3
Software Requirements Specification
A software requirements specification (SRS) is a document that describes what the
software will do and how it will be expected to perform. It also describes the
functionality the product needs to fulfill all stakeholders (business, users) needs.
3.1 Functional Requirements
Visual Studio Code is a lightweight but powerful source code editor which runs on
your desktop and is available for Windows, macOS and Linux. It comes with built-in
support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions
for other languages and runtimes (such as C++, C#, Java, Python, PHP, Go, .NET).
Go beyond syntax highlighting and autocomplete with IntelliSense, which provides
smart completions based on variable types, function definitions, and imported modules.
Debug code right from the editor. Launch or attach to your running apps and debug with
break points, call stacks, and an interactive console.
Want even more features? Install extensions to add new languages, themes, debuggers,
and to connect to additional services. Extensions run in separate processes, ensuring
they won't slow down your editor.
With Microsoft Azure you can deploy and host your React, Angular, Vue, Node, Python
(and more!) sites, store and query relational and document based data, and scale with
serverless computing, all with ease, all from within VS Code.
Software Requirement
Windows 7 or higher
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
15. CHAPTER 4
DESIGN
Web development broadly refers to the tasks associated with developing websites for hosting via
intranet or internet. The web development process includes web design, web content
development, client-side/server-side scripting and network security configuration, among other
tasks. Web development is also known as website development.
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.
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)
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
16. 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.
Identifying the relationships
The relationships between the entities within and outside the system were identified.
3.1 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.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
17. 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
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
3.2 Project Design
In order to design a web site, the relational database must be designed first. Conceptual design
can be divided into two parts: The data model and the process model. The data model focuses on
what data should be stored in the database while the process model deals with how the data is
processed. To put this in the context of the relational database, the data model is used to design
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
18. the relational tables. The process model is used to design the queries that will access and perform
operations on those tables.
3.3 Functional Decomposition Diagram
A decomposition diagram shows a top-down functional decomposition of a system and exposes
the system's structure. The objective of the Functional Decomposition is to break down a system
step by step, beginning with the main function of a system and continuing with the interim levels
down to the level of elementary functions. The diagram is the starting point for more detailed
process diagrams, such as data flow diagrams (DFD). shows the Functional Decomposition
Diagram for this project.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
20. 3.4 Data Flow Diagram (DFD)
Data Flow Diagrams show the flow of data from external entities into the system, and from one
process to another within the system. There are four symbols for drawing a DFD:
Rectangles representing external entities, which are sources or destinations of data.
Ellipses representing processes, which take data as input, validate and process it and
output it.
Arrows representing the data flows, which can either, be electronic data or physical
items.
Open-ended rectangles or a Disk symbol representing data stores, including
electronic stores such as databases or XML files and physical stores such as filing
cabinets or stacks of paper.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
21. 3.5 Development Life Cycle
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
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
22. 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.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
23. 5.Testing
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.
5.1 Testing the system
Testing can be done with two types of data. Live data and test data.
Live data is the data actually to be used in the proposed system.
Test data is previously designed sample input to achieve predictable results.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
24. 5.2 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.
5.3 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.
5.4 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.
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
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
25. 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.
5.5 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
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:
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
26. 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.
5.6 Testing 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
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
27. 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.
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.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
28. 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.
6.Snapshots
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
35. 6.1 Limitations and Future Development
There are some limitations for the current system to which solutions can be provided as a future
development:
The system is not configured for multi- users at this time. The concept of
transaction can be used to achieve this.
The Website is not accessible to everyone. It can be deployed on a web server so
that everybody who is connected to the Internet can use it.
Credit Card validation is not done. Third party proprietary software can be used
for validation check.
As for other future developments, the following can be done:
The Administrator of the web site can be given more functionality, like
looking at a specific customer’s profile, the books that have to be reordered,
etc.
Multiple Shopping carts can be allowed.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133
36. 7. Conclusion
The Internet has become a major resource in modern business, thus electronic shopping has
gained significance not only from the entrepreneur’s but also from the customer’s point of view.
For the entrepreneur, electronic shopping generates new business opportunities and for the
customer, it makes comparative shopping possible. As per a survey, most consumers of online
stores are impulsive and usually make a decision to stay on a site within the first few seconds.
“Website design is like a shop interior. If the shop looks poor or like hundreds of other shops the
customer is most likely to skip to the other site”. Hence we have designed the project to provide
the user with easy navigation, retrieval of data and necessary feedback as much as possible. In
this project, the user is provided with an ecommerce web site that can be used to buy books
online. To implement this as a web application we used Python as the Technology. DAJNGO was
used as back-end database since it is one of the most popular open source databases, and it
provides fast data access, easy installation and simplicity.
A good shopping cart design must be accompanied with user-friendly shopping cart application
logic. It should be convenient for the customer to view the contents of their cart and to be able to
remove or add items to their cart. The shopping cart application described in this project
provides a number of features that are designed to make the customer more comfortable. This
project helps in understanding the creation of an interactive web page and the technologies used
to implement it. The design of the project which includes Data Model and Process Model
illustrates how the database is built with different tables, how the data is accessed and processed
from the tables. The building of the project has given me a precise knowledge about how python
is used to develop a website, how it connects to the database to access the data and how the data
and web pages are modified to provide the user with a shopping cart application.
Downloaded by Arjun Subhash (saladisubhashaa@gmail.com)
lOMoARcPSD|35945133