BMS Project Report-8-7-2023
BMS Project Report-8-7-2023
PROJECT REPORT
ON
BOOK STORE MANAGEMENT SYSTEM
Submitted by
Neha Devi
(SEM-IVth)
Roll No. 21013728026
Under the Guidance of
Internal Guide External Guide
Mr. Sachin Awasthi Mr. Desh Raj
This is to certify that the work embodied in this dissertation entitled “BOOK STORE
MANAGEMENT SYSTEM has been satisfactorily completed by Miss. Neha Devi
(21249). It is a bonafide piece of work, carried out under our / my guidance in the Master
of Computer Application, Govt. P.G. College, and Dharamshala for the partial
fulfillment of the Master of Computer of Application degree during the academic year
2021-23.
Approved By Forwarded by
Dr.Vikram Shree Vats Dr. Sanjivan Katoch
Coordinator , Department of MCA Principal (MCA)
Govt. P.G. College, Dharamshala Govt. P.G. College, Dharamshala
GOVT. P.G. COLLEGE DHARAMSHALA
SCHOOL OF COMPUTER SCIENCE & ENGINEERING
MASTER OF COMPUTER APPLICATION
APPROVAL CERTIFICATE
2021-23
Date: Date:
GOVT. P.G. COLLEGE DHARAMSHALA
SCHOOL OF COMPUTER SCIENCE & ENGINEERING
MASTER OF COMPUTER APPLICATION
DECLARATION
2021-23
(Neha Devi)
Roll No. 21013728026
GOVT. P.G. COLLEGE DHARAMSHALA
MASTER OF COMPUTER APPLICATION
ACKNOWLEDGEMENT
IT industry is the most dynamic in the present world. The pace at which it is moving
ahead makes difficult for us to cope with the coding computer technology; if we climb the
hills individually .the efforts of colleagues and friends have helped me in achieving the
desired goal. My sincere thanks to Mr. Desh Raj, RajMaya IT Solutions Pvt. Ltd., for his
support and giving me an opportunity to do project me in this company and providing me
proper in reinstruction in this organization.
We acknowledge the able guidance in valuable suggestions, training about new
technology of Project leader Miss. Neha Devi, Project guide Mr. Desh Raj thankful to
whole team of crisp during the course of the project.
I would like to give special thanks to Principal Dr. Sanjivan Katoch of college and
Dr. Vikram Shree Vats Coordinator, Govt. P.G. College, Dharamshala, his great
support and inspiring me to complete my Project work.
I would like to give thanks to Dr. Pawan Thakur, Mr. Satish Sood, Mr. Sachin
Awasthi and Miss. Susheela Pathania for all their wisdom and guidance during my
years as a postgraduate student. I think him for having the confidence in me, to conduct
my research, and for giving me the opportunity to learn from my own mistakes. His
guidance has been absolutely invaluable to me, who have been imparting their immense
knowledge self-ledge for the past two years.
(Neha Devi)
Roll No. 21013728026
PREFACE
Bookstore Management System is basically used to build an web application program which help people to find
and buy latest design of Books with different categories like Biography, Programming, Management, etc. It is useful in
the way that it makes an easier way to buy Personal Bookstore.
Today most of the book shop is useful for shopping site. The admin have lots of paper work and they are using
desktop, spread sheet like MS Excel application to manage data in soft copy about user record. In this proposed
Bookstore System it will run in server and user can handle whole the registration activities.
This application maintains the centralized database so that any changes done at a location reflects immediately.
This is an online tool so more than one user can login into system and use the tool simultaneously.
The aim of this application is to reduce the manual effort needed to manage transactions and historical data used
in various gods owns. Also this application provides an interface to users to view the details And Design about
Bookstore.
In the existing system, most of the records are maintained on paper. It becomes very inconvenient to modify the data
. In the existing system, here is a possibility that the same data in different registers may have different values
which means the entries of the same data do not match. This inconsistent state does not supply the concrete
information which poses a problem in the case information related to particular search record.
Our project is very useful. User is no longer required to check his register in search of records, as now it can be
searched over the software by choosing some options. The user need not to type in most of the information. He/she is
just required to enter the desired options. On the whole it liberates the user from keeping lengthy manual records.
In a nutshell, it abates the work load of an organization.
In today’s world, no one likes to perform calculations on calculator or manually when computer is there. Everyone
wants his/her work to be done by computer automatically and displaying the result for further manipulations.
A book shop uses a personal computer to maintain the inventory of books that are being sold at the shop. The list
includes details such as author, title, price, publisher, stock position,etc. Whenever a customer wants a book, the
shopkeeper inputs the title and author of the book and the system replies whether it is in the list or not. If it is not, an
appropriate message s displayed. If book is in the list, then the system displays the book details and asks for number of
copies. If the requested copies are available the, total cost of the books is displayed; otherwise the message “Required
copies not in stock” is displayed.
.
LIST OF CONTENTS
S. NO. CHAPTER NAME PAGE NO.
1 INTRODUCTION 1
1.1 INTRODUCTION 2
1.2 OBJECTIVES 2
1.3 PROBLEM DEFINATION 2
1.4 IDENTIFICATION OF NEED 3
2 SYSTEM ANALYSIS 4-6
2.1 PRELIMINARY INVESTIGATION 6-7
3.5 TEST CASES (UNIT TEST CASES AND SYSTEM TEST 40-43
CASES)
4 43
CODING
S. NO. CHAPTER NAME PAGE NO.
4.1 COMPLETE PROJECT CODING 43-58
5 TESTING 61-63
5.4 TEST REPORTS FOR UNIT TEST CASES AND SYSTEM 71-92
TEST CASES
5.5 COST ESTIMATION OF THE PROJECT ALONG WITH 92-103
COST ESTIMATION MODEL
6 CONCLUSION 104
7 LIMITATION 105
1
Chapter 1
Introduction
1.1 INTRODUCTION
Bookstore Management System is basically used to build a web application program which help people to find
and buy latest design of Books with different categories like Biography, Programming, Management, etc. It is useful in
the way that it makes an easier way to buy Personal Bookstore.
This Software allows the Admin to store the book details and the customer details.
Easier access to information like customer information and availability.
Provide facility of storing data to reduce the paper work.
In Bookstore Management System Users can by a book and Admin shows their name and other background
of the user.
A new idea about Project how Bookstore Management System works.
Objectives
1.2 OBJECTIVES
2
It provides a facility to handle all the activities at one place. With the help of this application, admin can
perform different kind of operations at the same time and place.
Bookstore management System has an ability to keep the records safe related to Books.
We provide the best service in our website or focuses on user choice. We will improve new feat user can
easily understand and trust our system.
The old manual system was suffering from a series if drawbacks. Since whole of the system was to
be maintained with hands the process of keeping, maintaining and retrieving the information was
very tedious and lengthy. The records were never used to be in a systematic order. There used to be
lots of difficulties in associating
Any particular transaction with a particular context. If any information was to be found it was
required to go through the different registers, documents there would never exist anything like
report generation. There would always be unnecessary consumption of time while entering records
and retrieving records. One more problem was that it was very difficult to find errors while entering
the records. Once the records were entered it was very difficult to update these records.
The reason behind it is that there is lot of information to be maintained and have to be kept in mind
while running the business. For this reason we have provided features present system is partially
automated (computerized), actually existing system is quite laborious as one has to enter same
information at three different places.
3
Chapter 2
System Analysis
SYSTEM ANALYSIS
System analysis focuses on specifying for what the system or the application is required to do. It
allows the individuals to see the logical elements (what the system should do) apart from the
physical components it uses (computers, terminals and storage system). It is the process of
gathering and interpreting facts, diagnosing problems and using the information to recommend
improvements to the system.
System Analysis phase is divided into many sub-phases to make analysis work easy. This phase is
not easy phase, but very cumbersome and complex. This phase of SDLC is tricky and time
consuming also.
4
1. System study: The system study is information-oriented stage in which user; middle level and
higher-level management have to face interviews.
1.1. Interview: The system analysis team conducts face-to-face interview with the staff
of organization.
1.2. Questionnaire: distribute questions (closed, open, probing types) to user and note
their responses.
1.3. Observation: The actual position of men and machine are observed on-site. Study
of literatures, objective of organization, procedural manual etc is important tools for
data collection.
2. Requirement analysis: The user expectation with new or store system is called user requirement.
The requirement can be qualitative and quantitative.
3. Documentation: The report of system study and requirement analysis is studied and documented.
Designer team for system designing uses this document. If document does not contain appropriate
information, design cannot be successful.
5
Following points should be well considered:
Documents and reports that must be provided by the new system: there can also be few
reports, which can help
Management in decision-making and cost controlling, but since these reports do not get
required attention, such kind of reports and information were also identified and given
required attention.
Details of the information needed for each document and report.
The required frequency and distribution for each document.
Probable sources of information for each document and report.
With the implementation of computerized system, the task of keeping records in an
organized manner will be solved. The greatest of all is the retrieval of information, which
will be at the click of the mouse. So the proposed system helps in saving the time in
different operations and making information flow easy giving valuable reports.
Preliminary Investigation basically refers to the collection of information that guides the
management of an organization to evaluate the merits and demerits of the project request and make
an informed judgment about the feasibility of the proposed system. This sort of investigation
provides us with a through picture of the kind of software and hardware requirements which are
most feasible for the system, plus the environment in which the entire project has to be installed and
made operational.
They were quite effective in guiding us towards visualizing the features that were needed to be put
together in the system and the required output which had to be generated once the system became
functional.
These specifications provided to us by the organization showed how the new system should look
like; it helped us in understanding the basic structure of the application which we were supposed to
develop.
2) On site observation:
6
Another technique utilized by us to gain information about the project was to visit the client site
where the system had to be installed. Here a detailed system study was carried out, checking the
existing system to replicate it with our system. We also observed the activities of the system
directly. During the on-site observation, we saw the office environment, work load of the system
and users, method of work, and the facilities provided by the organization. This information helped
us to understand how the system should operate. But after interviewing the persons, who is affected
by the system, we got more details that further explain the project and shown whether assistance is
merited economically, operationally and technically.
3) Conducting interviews:
This method of investigation conducted by us involved questioning the concerned personnel to get
the user’s (client) view about the system and the features they desired it to have. Some of the
Questions put forward by our team were:
7
a. Operational feasibility
People are inherently resistant to change and computers have been known to facilitate change.
There is always some reluctance among the users against the introduction of new system but they
were told that this system would eliminate the unnecessary overhead of database migration and
conversion, which presently had to be carried out on daily basis to facilitate transactions between
the different departments. The objective this feasibility phase is to take the operational staff into
confidence. As the success of a good system depends upon the willingness of the operating staff,
they were taken into full confidence that the new proposed system would make their jobs easier,
relieve them from the unnecessary overheads and reduce the possibility of errors creeping into the
system.
b. Technical feasibility
Technical feasibility center’s on the existing computer system. (Hardware/software) and to what
extent it can support the proposed addition also the organization already has sufficient high-end
machines to serve the processing requirements of the proposed system. So there is no need to
purchase new software as the organization has necessary software. Having gone through the steps
of the overall analysis and feasibility study the next step was to carry out a detailed system
analysis. The project analysis phase was conducted to learn about the proposed system, to study
the problems and finally select a system that would take care of the problems identified in the
working of the present system.
c. Economics feasibility
Economic feasibility is the most frequently used method for evaluating the effectiveness of the
candidate system. More commonly known as cost\benefit analysis, the procedure is to determine
the benefits and savings that are expected from a candidate system and compare them with the
costs. If benefits outweigh the costs, then the decision is made to design and implement the
system. A cost\benefit analysis was done for the proposed system to evaluate whether it would be
economically viable or not. The organization has in store many machines with high processing
power necessary to implement the system. Also the organization has necessary software or
hardware to support the system. Considering the programmer time and the negligible
hardware/software cost required for developing the system, it was found that the benefits in terms
of reduced overhead as a result of elimination of the requirement of database migration and
conversion was more than the cost.
8
2.3 Project Planning
The BMS is critical to set-up online order, customers to browse through book categories. This is a small scale
project for BMS. The basic idea is that the customers can buy a book from anywhere during any time by the cash through.
User
User can Register, Login, Logout the system.
View different categories and by books.
Contact with Admin
Add Books to Cart
Order Books
Functionality
One or more user visit web page at a time.
Usability
In any browser run this webpage.
Performance
It performs the webpage as per User’s operating system.
Admin
Admin can manage system.
Provide books.
Functionality
Admin can insert a book or manage the records.
• Design of solution
Functionalities of Admin:
This Module includes the mainly following tasks:
Entry of Category.
Category List.
9
Add a New Book.
View Book.
Functionalities of Client:
This Module includes the mainly following tasks:
View Books.
Search Books.
To ensure the smooth execution and timely completion of the Book Store Management System
Project, it is crucial to create a project schedule. The project schedule outlines the tasks, their
dependencies, estimated durations, and the sequence in which they should be completed. Here is a
sample project schedule for your reference:
1. Requirements Gathering and Analysis
Duration: 1 week
Tasks:
Meet with book store owner to gather project requirements
Analyze existing systems and identify key features for the result management
system
Define project scope and objectives
2. System Design and Architecture
Duration: 2 weeks
Tasks:
Design the database schema for storing book store data
Determine the system architecture and decide on technologies (PHP, MySQL,
Bootstrap, CSS)
Create wireframes and mock-ups for the user interface
3. User Registration and Login Module
Duration: 1 week
10
Tasks:
Develop the user registration functionality
Implement user login and authentication
Set up user roles and permissions
4. Add and Manage books Information
Duration: 2 weeks
Tasks:
Create forms to add and edit books details (name, title, cost, etc.)
Implement validation and data storage for book store information
Enable searching and filtering of books records
5. Books Entry and Management
Duration: 3 weeks
Tasks:
Develop the functionality to enter and update books records
Calculate sales based on the sale data
Implement validation and error handling for order entry
6. Reporting and Analytics
Duration: 2 weeks
Tasks:
Generate reports for books, order, titles, etc.
Implement data visualization to provide insights into book store sales
Enable export functionality for reports in different formats (PDF, Excel)
7. User Interface Design and Enhancement
Duration: 2 weeks
Tasks:
Refine the user interface design using Bootstrap
Ensure responsiveness and compatibility with different devices
Improve user experience through intuitive navigation and user-friendly
interfaces
8. Testing and Quality Assurance
Duration: 1 week
Tasks:
Perform unit testing for each module and functionality
11
Conduct integration testing to ensure the seamless interaction of different
components
Identify and fix bugs and issues
9. Documentation and Project Review
Duration: 1 week
Tasks:
Document the project requirements, design, and implementation details
Create user manuals and technical documentation
Conduct a project review to evaluate the overall success and areas of
improvement
Once you’ve got answers to these questions, then you can begin to plan dates, link activities,
set the duration, milestones and resources. The following are the steps needed to schedule a
project:
1. Define activities
What are the activities that you have to do in the project? By using a Work Breakdown
Structure (WBS) and a deliverables diagram, you can begin to take these activities and organize
them by mapping out the tasks necessary to complete them in an order than makes sense.
2. Do estimates
Now that you have the activities defined and broken down into tasks, you next have to
determine the time and effort it will take to complete them. This is an essential piece of the
equation in order to calculate the correct schedule.
3. Determine dependencies
12
Tasks are not an island, and often one cannot be started until the other is completed. That’s
called a task dependency, and your schedule is going to have to reflect these linked tasks. One
way to do this is by putting a bit of slack in your schedule to accommodate these related tasks.
4. Assign resources
The last step to finalizing your planned schedule is to decide on what resources you are going
to need to get those tasks done on time. You’re going to have to assemble a team, and their
time will need to be scheduled just like the tasks.
PERT chart
A PERT chart is a project management tool that provides a graphical representation of a project's
timeline. PERT, or Program Evaluation Review Technique, allows the tasks in a particular project
to be analyzed.
Pert Chart
Gantt chart
A Gantt chart, commonly used in project management, is one of the most popular and useful ways
13
of showing activities (tasks or events) displayed against time. On the left of the chart is a list of the
activities and along the top is a suitable time scale. Each activity is represented by a bar; the
position and length of the bar reflects the start date, duration and end date of the activity.
GANTT CHART
2.5 Software Requirement Analysis
This project is a web application that is developed in PHP having MySql as back end.
ENVIRONMENT:
LANGUAGE: PHP
14
a. MySQL
A database management, or DBMS, gives the user access to their data and helps them
transform the data into information. Such database management systems include dBase,
paradox, IMS, SQL Server and MySQL Server. These systems allow users to create, update
and extract information from their database.
A database is a structured collection of data. Data refers to the characteristics of people,
things and events. MySQL Server stores each data item in its own fields. In SQL Server, the
fields relating to a particular person, thing or event are bundled together to form a single
complete unit of data, called a record (it can also be referred to as raw or an occurrence).
Each record is made up of a number of fields. No two fields in a record can have the same
field name.
During an MySQL Server Database design project, the analysis of your business needs
identifies all the fields or attributes of interest. If your business needs change over time, you
define any additional fields or change the definition of existing fields.
b. Apache Server :-
Often referred to as simply Apache, a public-domain open source web server developed by a
loosely-knit group of programmers. The first version of Apache, based on the NCSA httpd
web server, was developed in 1995. Core development of the Apache web server is performed
by a group of about 20 volunteer programmers, called the Apache group. However, because the
source code is freely available, anyone canadapt the server for specific needs, and there is a
large public library of Apache Add-ons. In many respects, development of Apache is similar to
development of the Linux Operating System.
Software requirement on Client side/User interface:-
Application will be access through a browser interface. The interface would be vied best application
using 1024 x 786 and 800 x 600 pixels resolutions setting. The software would be fully compatible
with Microsoft internet explorer for version 9 and above.
a. CSS:- Cascading Style Sheet is a style sheet language used for describing the presentation of a document
15
written in a markup language Although most often used to set the visual style of web page and user
interfaces written in HTML and XHTML, the language can be applied to any XML document, including
plain XML, SVG and XUL, and is applicable to rendering in speech, or on other media. Along with HTML
and JavaScript, CSS is a cornerstone technology used by most websites to create visually engaging
webpages, user interfaces for web applications, and user interfaces for many mobile applications.
b. Bootstrap:- Bootstrap is a free and open-source, front-end web frame work for designing websites and
web applications. It contains HTML- and CSS-based design templates for typography, forms, buttons,
navigation and other interface components, as well as optional JavaScript extensions. Unlike many
web frameworks, it concerns itself with front-end development only.
Bootstrap is modular and consists of a series of less stylesheets that implement the various components of
the toolkit. These stylesheets are generally compiled into a bundle and included in web pages, but
individual components can be included or removed. Bootstrap provides a number of configuration variables
that control things such as color and padding of various components.
c. HTML:- HTML stands for HYPER TEXT MARKUP LANGUAGE, which is most widely used language
on web to develop web pages. HTML refers to the way in which Web pages (HTML documents) are
linked together. Thus, the link available on a web page is called Hypertext.
HTML was created by Berners-Lee in late 1991 but “HTML 2.0” was the first standard HTML
specification which was published in 1995. HTML 4.01 was a major version of HTML and it was
published in late 1999. Though HTML 4.01 version is widely used but currently we are having HTML-5
version which is an extension to HTML 4.01, and this version was published in 2012.
As its name suggests, HTML is a Mark-up Language which means you use HTML to simply “mark-up”
a text document with tags that tells a web browser how to structure it to display.
Back End - PHP, MySQL
1. PHP
The PHP Hypertext Pre-processor (PHP) is a programming language that allows web developers to
create dynamic content that interacts with databases. PHP is basically used for developing web based
software applications. This tutorial helps you to build your base with PHP. PHP started out as a small open source
project that evolved as more and more people found out how useful it was. Rasmus Lerdorf unleashed the first
version of PHP way back in 1994.
PHP is a recursive acronym for "PHP: Hypertext Preprocessor".
PHP is a server side scripting language that is embedded in HTML. It is used to manage dynamic
content, databases, session tracking, even build entire e-commerce sites.
It is integrated with a number of popular databases, including MySQL, Postgre SQL, Oracle,
Sybase, Informix, and Microsoft SQL Server.
PHP is pleasingly zippy in its execution, especially when compiled as an Apache module on the
16
Unix side. The MySQL server, once started, executes even very complex queries with huge result
sets in record-setting time.
PHP supports a large number of major protocols such as POP3, IMAP, and LDAP. PHP4 added
support for Java and distributed object architectures (COM and CORBA), making n-tier
development a possibility for the first time.
PHP is forgiving: PHP language tries to be as forgiving as possible.
PHP Syntax is C-Like.
2. MySQL
MySQL is a database, widely used for accessing querying, updating, and managing data in
databases. MySQL is an open source RDBMS that relies on SQL for processing the data in
database. MySQL provides APIs for the languages like C, C++, Eiffel, JAVA, Perl, PHP and
Python. MySQL is most commonly used for web applications and for embedded applications
and has become a popular alternative to proprietary database system because of its speed and
reliability. MySQL can run on UNIX, Windows and Mac OS.
I. Functional Requirements
a. Log in Module (LM).
b. Registered Module (RUM).
c. Normal User Module (NUM).
d. Administrator Module (AM).
II. Non Functional Requirements
a. Accuracy
b. Fast response
c. Performance
d. Security
e. Reliability
Hardware requirement
System type 32 bit/64 bit Operating System.
Windows 7/8/8.1/10/11
Mac OS
1 GB RAM
17
Software Requirement
Xampp Server
MySQL
Browser
PHP MyAdmin
Client Side Tools
Processor : PC with a Dual core processor or above is Recommended: 2.20 GHz processor.
Operating System : Windows or open source 32/64 bit operating system, or later versions. Browser Mozilla
Firefox 2.0 /Internet Explorer 8.0 Onwards / Google Chrome.
18
0 Level DFD (Website Flow Diagram)
Add to
cart
Order
Details
Order
Successfullylo
2.6.1 State Diagram and Sequence Diagram
w Diagram
19
Flowchart Diagram
20
User Flow Diagram
21
2.6.2 ER-Diagram
Entity-Relationship Diagram is a graphical representation of entities and their relationship to each other. It
describes how data is related to each other. An entity is a piece of data- an object or a concept about which data is
stored. A relationship is how the data is shared between entities.
22
E-R Diagram for Bookstore Management System
E-R Diagram for Bookstore Management System)
city e-mail
password con-no
name date
id Customers Buys id
name
name
image
id price
Cart BMS
Books image
qty Contai
ns
Cat..
price
Has
Man desc
y
Category
id name
23
(Use Case Diagram Symbols)
An actor is represents a user or another system that will interact with the sys
Item you are modeling. A use case is an external view of the system that represents some action the user
might perform in order to complete a task.
24
User Use Case Diagram
25
BMS Use Case Diagram
BOOKSTORE MANAGEMENT SYSTEM
View Product
Order
Login
User
Add to Cart
Admin
Register
Delete User
26
2.6.4 Models/Collaboration diagram/Activity diagrams
Activity Diagram
Activity diagram is basically a flowchart to represent the flow from one activity to another activity. The
activity can be described as an operation of the system.
Name of symbols Symbols Description
Start symbol Represents the beginning of
a process or workflow in an
activity diagram. It can be
used by itself or with a note
symbol that explains the
starting point.
Activity symbol Indicates the activities that
make up a modeled process.
These symbols, which
include short descriptions
within the shape, are the
main building blocks of an
activity diagram.
27
time. Represented with a
thick vertical or horizontal
line.
Home Page
View Books
Book Detail
Add to Cart
28
(User Activity Diagram)
29
Chapter 3
System Design
The Purpose of Design Phase is to plan a solution for problem specified by the requirements. System Design
aims to identify the modules that should be in the system, the specification of those modules and how they
interact with other to produce the results. The goal of the design process is to produce a model that can be used later to
build that system. The produced model is called design of the system.
System Design is the process of defining the architecture, components, modules, interfaces and data for a
system to satisfy specified requirements.
Normally, the design proceeds in 2 stages:
Physical Design
Database Design
Physical Design
The Physical Design is a graphical representation of a system showing the system’s internal and external entities
and the flow of data into and out of these entities. An internal entity is an entity within the system that transforms
data.
Modular design, or "modularity in design", is a design approach that subdivides a system into smaller parts
called modules or skids, that can be independently created and then used in different systems. A modular
system can be characterized by functional partitioning into discrete scalable, reusable modules; rigorous use
of well-defined modular interfaces; and making use of industry standards for interfaces.
Besides reduction in cost (due to less customization, and shorter learning time), and flexibility in design,
modularity offers other benefits such as augmentation (adding new solution by merely plugging in a new
module), and exclusion. Examples of modular systems are cars , computers , process systems etc.
30
Spiral Model
The spiral model combines the idea of iterative development with the systematic, controlled
aspects of the waterfall model. This Spiral model is a combination of iterative development
process model and sequential linear development model i.e. the waterfall model with a very
high emphasis on risk analysis. It allows incremental releases of the product or incremental
Identification
This phase starts with gathering the business requirements in the baseline spiral. In the
subsystem requirements and unit requirements are all done in this phase.
This phase also includes understanding the system requirements by continuous communication
between the customer and the system analyst. At the end of the spiral, the product is deployed
Design
The Design phase starts with the conceptual design in the baseline spiral and involves
architectural design, logical design of modules, physical product design and the final design
Construct or Build
The Construct phase refers to production of the actual software product at every spiral. In the
baseline spiral, when the product is just thought of and the design is being developed a POC (Proof
31
Then in the subsequent spirals with higher clarity on requirements and design details a working model
of the software called build is produced with a version number. These builds are sent to the customer for
feedback.
management risks, such as schedule slippage and cost overrun. After testing the build, at the end
of first iteration, the customer evaluates the software and provides feedback.
The following illustration is a representation of the Spiral Model, listing the activities in each phase.
Based on the customer evaluation, the software development process enters the next iteration
and subsequently follows the linear approach to implement the feedback suggested by the
32
customer. The process of iterations along the spiral continues throughout the life of the software.
development process of any product, i.e. learning with maturity which involves minimum risk for
when they become available or known. This assures that there is no conflict with previous
This method is consistent with approaches that have multiple software builds and releases which
allows making an orderly transition to a maintenance activity. Another positive aspect of this
method
is that the spiral model forces an early user involvement in the system development effort.
On the other side, it takes a very strict management to complete such products and there is a risk
of running the spiral in an indefinite loop. So, the discipline of change and the extent of taking
change requests are very important to develop and deploy the product successfully.
33
The advantages of the Spiral SDLC Model are as follows −
1. Domain constraints
o Domain constraints can be defined as the definition of a valid set of values for an attribute.
o The data type of domain includes string, character, integer, time, date, currency, etc. The value of
o the attribute must be available in the corresponding domain.
4. Key constraints
o Keys are the entity set that is used to identify an entity within its entity set uniquely.
o An entity set can have multiple keys, but out of which one key will be the primary key. A primary
34
o key can contain a unique and null value in the relational table.
38
3.4 User Interface design
Login Detail
Username Dhaval Password Dhaval
Expected Result :
Registration Details
Username EMPTY Password EMPTY
Full Name EMPTY Security Answer EMPTY
Expected Result :
39
If password or username does not exist then gives error for valid detail.
If password is < 8 characters then it will gives error.
Order Details
Full Name Address Contact Number EMPTY
Expected Result :
(Test Cases 1)
40
2. Admin Login
(Text Cases 2)
3. Add Book
(Text Cases 3)
41
4. User Registration
( Text Cases 4)
42
Chapter 4
Coding
$link = mysql_connect("localhost","root","");
mysql_select_db("bms",$link);
?>
Header.php
<?php
session_start();
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Bookstore Management System</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width", initial-scale=1.0>
</head>
<body>
<div id="logo">
43
<h1><a href="#">Bookstore Management System</a></h1>
</div>
<!-- end #logo -->
<div id="header">
<div id="menu">
<ul>
<li><a href="index.php" class="first">Home</a></li>
<?php
if(isset($_SESSION['client']['status']))
{
echo '<li class="current_page_item"><a
href="logout.php">Logout</a></li>';
}
else
{
echo '<li><a
href="login.php">Login</a></li>';
echo '<li class="current_page_item"><a
href="register.php">Register</a></li>';
}
?>
<div id="sidebar">
<?php
if(isset($_SESSION['client']['status']))
{
echo '<ul>
<li>
<h2>Hi : '.$_SESSION['client']
['unm'].'</h2>
<ul>
<li><a
href="logout.php">Log Out</a></li>
</ul>
</li>
</ul>';
}
?>
<ul>
<li>
<h2>Category</h2>
<ul>
<?php
include("includes/connection.php");
$cat_res=mysql_query($cat_q,$link);
while($cat_row=mysql_fetch_assoc($cat_res))
{
echo '<li><a href="book_list.php?
id='.$cat_row['cat_id'].'&cat='.$cat_row['cat_nm'].'">'.$cat_row['cat_nm'].'</a></
li>';
}
45
?>
</ul>
</li>
</ul>
</div>
<!-- end #sidebar -->
<div style="clear: both;"> </div>
</div>
<!-- end #page -->
<div id="footer">
<p>© 2019. All rights reserved. Project Made By <a
href="index.php" rel="nofollow">Dhaval & Kumar</a>.</p>
</div>
<!-- end #footer -->
</body>
</html>
Login.php
<?php
include("includes/header.php");
?>
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Login</a></h2>
<p class="meta"></p>
<div class="entry">
Password :<br>
<input type="password" name="pwd" class="txt"><br><br>
<?php
if(!empty($_SESSION['error']))
{
foreach($_SESSION['error'] as $er)
{
echo '<font color="red">'.$er.'</font><br>';
}
unset($_SESSION['error']);
46
}
?>
<br>
<p class="login_link">
<a href="forget_password.php" style="text-decoration:
none">Forget Password ?</a>
<a href="register.php" style="margin-left: 100px;text-decoration:
none">Register</a>
</p>
</form>
</div>
</div>
</div><!-- end #content -->
<?php
include("includes/footer.php");
?>
Login Process.php
<?php
session_start();
if(! empty($_POST))
{
extract($_POST);
$_SESSION['error']=array();
if(empty($unm) || empty($pwd))
{
$_SESSION['error'][]="Please enter User Name or Password";
header("location:login.php");
}
else
{
include("includes/connection.php");
$res=mysql_query($q,$link);
$row=mysql_fetch_assoc($res);
47
if(! empty($row))
{
$_SESSION['client']['unm']=$row['r_fnm'];
$_SESSION['client']['id']=$row['r_id'];
$_SESSION['client']['status']=true;
header("location:index.php");
}
else
{
$_SESSION['error'][]="Wrong Username or Password";
header("location:login.php");
}
}
}
else
{
header("location:login.php");
}
?>
Index.php
<?php
include("includes/header.php");
?>
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Login</a></h2>
<p class="meta"></p>
<div class="entry">
Password :<br>
<input type="password" name="pwd" class="txt"><br><br>
<?php
if(!empty($_SESSION['error']))
{
foreach($_SESSION['error'] as $er)
{
echo '<font color="red">'.$er.'</font><br>';
}
unset($_SESSION['error']);
}
48
?>
<br>
<p class="login_link">
<a href="forget_password.php" style="text-decoration:
none">Forget Password ?</a>
<a href="register.php" style="margin-left: 100px;text-decoration:
none">Register</a>
</p>
</form>
</div>
</div>
</div><!-- end #content -->
<?php
include("includes/footer.php");
?>
register.php
<?php
include("includes/header.php");
?>
<div id="content">
<div class="post">
<h2 class="title"><a href="#">User Registration</a></h2>
<p class="meta"></p>
<div class="entry">
<?php
if(isset($_GET['register']))
{
echo '<font color="red">Registered Sussessfully..</font>';
echo '<br><br>';
}
?>
Password :<br>
<input type="password" name="pwd" class="txt">
<?php
if(isset($_SESSION['error']['pwd']))
{
echo '<font color="red">'.$_SESSION['error']
['pwd'].'</font>';
}
?>
<br><br>
E-Mail :<br>
<input type="text" name="email" class="txt">
<?php
if(isset($_SESSION['error']['email']))
{
echo '<font color="red">'.$_SESSION['error']
['email'].'</font>';
}
?>
<br><br>
Contact No :<br>
<input type="text" name="cno" class="txt">
<?php
if(isset($_SESSION['error']['cno']))
{
echo '<font color="red">'.$_SESSION['error']
['cno'].'</font>';
}
?>
<br><br>
<p class="login_link">
<a href="login.php" style="margin-left: 145px; text-decoration:
none">Already Account - Login</a>
</p>
</form>
<?php
unset($_SESSION['error']);
unset($_GET['register']);
?>
</div>
</div>
</div><!-- end #content -->
<?php
include("includes/footer.php");
?>
cart.php
<?php
include("includes/header.php");
?>
<div id="content">
<div class="post">
51
<h2 class="title"><a href="#">Cart</a></h2>
<p class="meta"></p>
<div class="entry">
<?php
$count=1;
$total=0;
if(isset($_SESSION['cart']))
{
foreach($_SESSION['cart'] as $id=>$val)
{
$rate=$val['qty'] * $val['price'];
$total=$total+$rate;
echo '<tr>
<td>'.$count.'</td>
<td>'.$val['nm'].'</td>
<td><img src="'.$val['img'].'"
width="80" height="60"></td>
<td><input type="number" min="1"
value="'.$val['qty'].'" style="width: 50px" name="'.$id.'"></td>
<td>'.$val['price'].'</td>
<td>'.$rate.'</td>
<td><a style="color: red;text-
decoration:none;" href="addtocart.php?id='.$id.'">X</a></td>
</tr>';
$count++;
}
}
?>
52
<div align="center" style="margin-top: 20px">
<input type="submit" value="Re-calculate" class="btn_refresh">
</div>
</form>
</div>
</div>
</div><!-- end #content -->
<?php
include("includes/footer.php");
?>
contact.php
<?php
include("includes/header.php");
?>
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Contact Us</a></h2>
<p class="meta"></p>
<div class="entry">
Mobile No :<br>
<input type="text" name="mno" class="txt">
<?php
53
if(isset($_SESSION['error']['mno']))
{
echo '<font color="red">'.
$_SESSION['error']['mno'].'</font>';
}
?>
<br><br>
E-Mail ID :<br>
<input type="email" name="email" class="txt">
<?php
if(isset($_SESSION['error']['email']))
{
echo '<font color="red">'.
$_SESSION['error']['email'].'</font>';
}
?>
<br><br>
Message :<br>
<textarea class="txt" name="msg"></textarea>
<?php
if(isset($_SESSION['error']['msg']))
{
echo '<font color="red">'.
$_SESSION['error']['msg'].'</font>';
}
unset($_SESSION['error']);
?>
<br><br>
</form>
</td>
</tr>
</table>
</div>
</div>
</div><!-- end #content -->
<?php
include("includes/footer.php");
?>
order.php
<?php
include("includes/header.php");
include("includes/connection.php");
?>
54
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Order - Cash On Delivery</a></h2>
<p class="meta"></p>
<div class="entry">
<?php
if(isset($_GET['order']))
{
echo '<font style="color:red">Order Successfully Placed</font><br><br>';
}
?>
<?php
if(!empty($_SESSION['error']))
{
foreach($_SESSION['error'] as $er)
{
echo '<font color="red">'.$er.'</font><br>';
}
unset($_SESSION['error']);
}
?>
<br>
Address :<br>
<input type="text" name="add" class="txt"
placeholder="Address"><br><br>
City :<br>
<input type="text" name="city" class="txt"
placeholder="City"><br><br>
State :<br>
<input type="text" name="state" class="txt"
placeholder="State"><br><br>
55
Mobile Number :<br>
<input type="text" name="mno" class="txt" placeholder="Mobile
Number"><br><br>
</form>
</div>
</div>
</div><!-- end #content -->
<?php
include("includes/footer.php");
?>
search.php
<?php
include("includes/header.php");
?>
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Search : <?php echo $_GET['s']; ?></a></h2>
<p class="meta"></p>
<div class="entry">
<?php
include("includes/connection.php");
$s=$_GET['s'];
$blres=mysql_query($blq,$link);
while($blrow=mysql_fetch_assoc($blres))
{
echo '<div class="book_box">
<a href="book_detail.php?id='.$blrow['b_id'].'">
<img src="'.$blrow['b_img'].'">
<h2>'.$blrow['b_nm'].'</h2>
<p>Rs. '.$blrow['b_price'].'</p>
</a>
</div>';
}
?>
<div style="clear:both;"></div>
56
</div>
</div>
</div><!-- end #content -->
<?php
include("includes/footer.php");
?>
logout.php
<?php
session_start();
session_destroy();
header("location:index.php");
?>
forgotpassword.php
<?php
include("includes/header.php");
?>
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Forget Password</a></h2>
<p class="meta"></p>
<div class="entry">
<?php
if(!empty($_SESSION['error']))
{
foreach($_SESSION['error'] as $er)
{
echo '<font color="red">'.$er.'</font><br>';
}
unset($_SESSION['error']);
}
?>
57
?>
<input type="text" name="unm" class="txt"><br><br>
</form>
</div>
</div>
</div><!-- end #content -->
<?php
include("includes/footer.php");
?>
58
4.2 Validation Checks
Validation means check the input submitted by the user. There are two types of validation are available in
PHP. They are as follows −
Fig.5.1 validation
59
Name Should required letters and white-spaces
Email Should required @ and .
Website Should required a valid URL
Radio Must be selectable at least once
Check Box Must be checkable at least once
Drop Down menu Must be selectable at least once
Chapter 5
Testing
5. Testing
Software testing is any activity aimed at evaluating an attribute or capability of a program or system
and determining that it meets its required results. Although crucial to software quality and widely
deployed by programmers and testers, software testing still remains an art, due to limited
understanding of the principles of software. The difficulty in software testing systems from the
complexity of software: we cannot completely test a program with moderate complexity. Testing is
more than just debugging. The purpose of testing can be quality assurance, verification and
validation or reliability estimation. Testing can be used as a generic metric as well. Correctness
testing and reliability testing are two major areas of testing. Software testing is a trade-off between
budget, time and quality.
Testing Objectives
The main objective of testing is to uncover a host of errors, systematically and with minimum effort
and time. Stating formally, we can say,
Testing is a process of executing a program with the intent of finding an error.
60
Module
Project level
Unit testing
Unit testing focuses verification effort on the smallest unit of software i.e. the module. Using the
detailed design and the process specifications testing is done to uncover errors within the boundary
of the module. All modules must be successful in the unit test before the start of the integration
testing begins.
In this project each service can be thought of a module. There are so many modules like Login,
Registration, Homepage, and Normal User. Giving different sets of inputs has tested each module.
When developing the module as well as finishing the development so that each module works
without any error. The inputs are validated when accepting from the user.
In this application developer tests the programs up as system. Software units in a system are the
modules and routines that are assembled and integrated to form a specific function. Unit testing is
first done on modules, independent of one another to locate errors. This enables to detect errors.
Through this error resulting from interaction between modules initially avoided.
Integration testing
Integration testing is a type of testing which involves testing the integrity of various modules i.e.
61
whether several different modules or units outputs desired result when they are integrated or made
to work together or not.
In this project integrating all the modules forms the main system. When integrating all the modules
I have checked whether the integration effects working of any of the services by giving different
combinations of inputs.
The purpose of integration testing is to verify the functional, performance, and reliability between
the modules that are integrated.
Integration Testing
System testing
System Testing (ST) is a black box testing technique performed to evaluate the complete system the
system's compliance against specified requirements. In System testing, the functionalities of the
system are tested from an end-to-end perspective.
System Testing is usually carried out by a team that is independent of the development team in
order to measure the quality of the system unbiased. It includes both functional and Non-Functional
62
testing.
63
5.1 Testing Techniques
Black box testing
Black-box testing is a method of software testing that examines the functionality of
an application based on the specifications. It is also known as specifications based .
Testing Independent testing team usually perform this type of testing during the
software testing life cycle.
This method of test can be applied to each and every level of software testing such as
unit, integration, system and acceptance testing.
This method is named so because the software program, in the eyes of the tester, is like a
black box; inside which one cannot see. This method attempts to find errors in the
following categories:
Tests are done from a user’s point of view and will help in exposing discrepancies in
the specifications.
Tester need not know programming languages or how the software has been implemented.
C. Branch Coverage – This technique is running a series of tests to ensure that all branches are tested
D. at least once.
E. Path coverage – This technique corresponds to testing all possible paths which means that
Gray-box Testing:
Grey-box testing is a testing technique performed with limited information about the
internal functionality of the system. Grey-box testers have access to the detailed design
information about requirements.
Grey box are generated based on the state based modes, UML diagrams or of the target
system.
Grey Box Testing is a technique to test the software product or application with partial
knowledge of the internal workings of an application.
65
( Gray Box Testing Testing)
66
5.2 Testing Strategies
A testing strategy is a general approach to the testing process rather than a method of devising
particular system or component tests. Different testing strategies may be adopted depending on the
type of system to be tested and the development process used. There are two different strategies
available:
a. Top-Down Testing
b. Bottom-Up Testing
a. Top-Down Testing
Top-Down Testing high levels of a system are tested before testing the detailed components. The
application is represented as a single abstract component with sub- components represented by
stubs. Stubs have the same interface as the component but very limited functionality.
After the top-level component has been tested, its sub-components are implemented and tested in
the same way. This process continues recursively until the bottom - level components are
implemented. The whole system may then be completely tested. Top- down testing should be used
with top-down program development so that a system component is tested as soon as it is coded.
Coding and testing are a single activity with no separate component or module testing phase.
If top-down testing is used, unnoticed design errors may be detected at an early stage in the
testing process. As these errors are usually structural errors, early detection means that extensive
re-design re-implementation may be avoided. Top-down testing has the further advantage that we
could have a prototype system available at a very early stage, which itself is a psychological
boost. Validation can begin early in the testing process as a demonstrable system can be made
available to the users.
67
b. Bottom-Up Testing
Bottom-Up Testing is the opposite of Top-Down. It involves testing the modules at the lower levels
in the hierarchy, and then working up the hierarchy of modules until the final module is tested. This
type of testing is appropriate for object-oriented systems in that individual objects may be tested
using their own test drivers. They are then integrated and the object collection is tested.
A test plan is a document describing the scope, approach, objectives, resources, and schedule of a
software testing effort. It identifies the items to be tested, items not be tested, who will do the
testing, the test approach followed, what will be the pass/fail criteria, training needs for team, the
testing schedule etc.
68
Test Plan Identifiers:-
8. Test deliverables The deliverables that are delivered as part of the testing
process, such as test plans, test specifications and test
summary reports.
9. Testing tasks All tasks for planning and executing the testing.
69
10. Environmental Defining the environmental requirements such as
needs hardware, software, OS, network configurations, tools
required.
13. Schedule States the important project delivery dates and key
milestones.
70
Test Planning Activities:-
To determine the scope and the risks that need to be tested and that are not to be tested.
Planning when and how to test and deciding how the test results will be evaluated, and
defining test exit criterion.
Defining the management information, including the metrics required and defect
resolution and risk issues.
5.4 Test Reports unit test case and system test case
1. Home Page
71
(BMS Home Page)
72
2. Selected Category
Register
73
3. Book Details (Before Login)
74
4. Visitor Login Page
75
5. Register Page
76
6. Contact Us Page
77
8. Order Page
78
9. Home Page (Logged In)
79
10. Book Details (Logged In)
80
11. Add to Cart (Logged In)
81
12. Search Books
82
14. Admin Home Page
New Template.
83
16. View Category
List of Books.
84
BMS View Books)
19. View Contacted List
85
20. Users List
86
Debugging and Code Improvement
It is a systematic process of spotting and fixing the number of bugs, or defects, in a piece of
software so that the software is behaving as expected. Debugging is harder for complex systems in
particular when various subsystems are tightly coupled as changes in one system or interface may
cause bugs to emerge in another.
Debugging is a developer activity and effective debugging is very important before testing begins to
increase the quality of the system. Debugging will not give confidence that the system meets its
requirements completely but testing gives confidence.
Code improvement is the most formal type of review, which is a kind of static testing to avoid the
defect multiplication at a later stage.
The main purpose of code inspection is to find defects and it can also spot any process
improvement if any.
An inspection report lists the findings, which include metrics that can be used to aid
improvements to the process as well as correcting defects in the document under review.
Preparation before the meeting is essential, which includes reading of any source
documents to ensure consistency.
Inspections are often led by a trained moderator, who is not the author of the code.
The inspection process is the most formal type of review based on rules and
checklists and makes use of entry and exit criteria.
It usually involves peer examination of the code and each one has a defined set of roles.
After the meeting, a formal follow-up process is used to ensure that corrective action is
completed in a timely manner.
87
SYSTEM SECURITY AND MEASURES
System security refers to protecting the system from theft, unauthorized access and modifications,
and accidental or unintentional damage. In computerized systems, security involves protecting all
the parts of computer system which includes data, software, and hardware. Systems security
includes system privacy and system integrity.
System privacy deals with protecting individuals systems from being accessed
and used without the permission/knowledge of the concerned individuals.
System integrity is concerned with the quality and reliability of raw as well as
processed data in the system.
Control Measures
There are varieties of control measures which can be broadly classified as follows −
Backup
Regular backup of databases daily/weekly depending on the time criticality and size.
Backup copies kept in safe remote location particularly necessary for disaster recovery.
88
Duplicate systems run and all transactions mirrored if it is a very critical system and
cannot tolerate any disruption before storing in disk.
Identification of all persons who read or modify data and logging it in a file.
Using logical or software control
Password system.
Risk analysis
A risk is the possibility of losing something of value. Risk analysis starts with planning for secure
system by identifying the vulnerability of system and impact of this. The plan is then made to
manage the risk and cope with disaster. It is done to accesses the probability of possible disaster and
their cost.
Risk analysis is teamwork of experts with different backgrounds like chemicals, human error, and
process equipment.
Identification of all the threats and hazards that each of the components faces.
Quantify risks i.e. assessment of loss in the case threats become reality.
89
Risk analysis
As the risks or threats are changing and the potential loss are also changing, management of risk
should be performed on periodic basis by senior managers.
System Security
Comparison of the cost of security measures with the loss and probability of threats.
90
Database/Data Security
The Database/Data Security aspect of the Student Result Management System project in PHP, MySQL,
and Bootstrap focuses on ensuring the confidentiality, integrity, and availability of the system's data. This
section outlines the measures taken to secure the database and protect sensitive student information.
Data Encryption: Implement encryption techniques to safeguard sensitive data stored in the
database. Encryption algorithms such as AES (Advanced Encryption Standard) can be utilized to
encrypt data at rest, preventing unauthorized access even if the database is compromised.
User Authentication and Authorization: Implement a robust user authentication system to verify
the identity of users accessing the system. This can include password-based authentication, multi-
factor authentication, or integration with existing authentication systems. Additionally, role-based
access controls should be implemented to ensure that users have appropriate permissions and access
levels based on their roles (e.g., administrators, teachers, students).
Parameterized Queries and Prepared Statements: Utilize parameterized queries and prepared
statements when interacting with the database to prevent SQL injection attacks. This technique
ensures that user input is properly sanitized and validated before executing database queries,
mitigating the risk of unauthorized data manipulation or retrieval.
Secure Connection: Ensure that the connection between the application and the database is
secured using SSL/TLS protocols. This encrypts the data transmission, protecting it from interception
or eavesdropping.
Regular Data Backups: Implement regular backup procedures to create copies of the database,
ensuring that data can be restored in case of data loss, system failures, or security breaches. Backup
files should be stored securely, preferably offsite or in encrypted formats.
Logging and Auditing: Implement logging mechanisms to track user activities and system events.
This includes logging login attempts, database queries, and critical operations. Audit logs help in
identifying suspicious activities and provide a trail for forensic analysis in case of security incidents.
Data Privacy Compliance: Ensure compliance with applicable data privacy regulations such as
GDPR (General Data Protection Regulation) or local data protection laws. This includes obtaining
necessary consents for data collection, implementing privacy policies, and providing mechanisms for
users to manage their data preferences.
Regular Security Assessments: Conduct regular security assessments, vulnerability scanning, and
penetration testing to identify and address potential vulnerabilities in the system. This helps in
proactively identifying security weaknesses and implementing necessary patches or updates.
91
Employee Training and Awareness: Educate system administrators, developers, and other
personnel about data security best practices. Training programs and awareness campaigns should
emphasize the importance of data protection, secure coding practices, and handling of sensitive
information.
System Updates and Patches: Keep the system up-to-date with the latest security patches and
updates for the PHP, MySQL, and Bootstrap frameworks. Regularly check for security advisories and
apply patches promptly to address any known vulnerabilities.
5.5 Cost Estimation Of Project
The process of project cost estimation is central to setting up the foundation for making key
decisions, taking initiatives, budgeting activities and controlling expenditures. Cost forecasts
and projections are used to establish a set of metrics against which project success will be
measured, and to communicate work progress to the stakeholders at any given point in
time.
Resource Costing
The resource costing aspect of the Student Result Management System project in PHP,
MySQL, and Bootstrap involves estimating the costs associated with various resources
required for the project's implementation. These resources include human resources,
92
hardware and infrastructure, and software and tools. The costs for human resources depend
on factors such as experience level and project duration, while hardware and infrastructure
costs depend on specifications and scalability requirements. Software and tools costs vary
based on licensing models and additional requirements.
Unit Costs
Unit costs refer to the expenses associated with specific components or modules of the project. This
includes development efforts, testing, documentation, and training. The estimated costs for each module
are based on the time required for development, testing activities, documentation efforts, and training
sessions.
Historical Costing
Historical costing involves analyzing costs from similar past projects or systems to estimate potential
expenses for the Student Result Management System project. By reviewing previous project records,
conducting interviews, or referring to industry benchmarks, historical cost data can be used as a
reference to estimate the overall project costs accurately.
Introduction To PHP
1. PHP:
Download and install the PHP interpreter on your system. You can get the latest version of
PHP from the official PHP website (https://www.php.net/downloads.php) based on your
operating system. Follow the installation instructions provided.
2. Web Server:
PHP applications are typically run on a web server. You have a few options for web servers
in PHP development:
Apache:
Apache HTTP Server is a popular and widely used web server. You can download and
install Apache from the official Apache website (https://httpd.apache.org/).
Nginx:
Nginx is another popular web server known for its performance and scalability. You can
93
download and install Nginx from the official Nginx website (https://nginx.org/).
XAMPP or WampServer:
Alternatively, you can use pre-packaged solutions like XAMPP
(https://www.apachefriends.org/index.html) or WampServer
(https://www.wampserver.com/). These bundles include Apache, PHP, MySQL, and
other necessary components in a single installation package, simplifying the setup
process.
3. Text Editor or Integrated Development Environment (IDE): You'll need a text editor or an
IDE to write and edit your PHP code. Some popular choices for PHP development include:
PhpStorm:
A powerful PHP IDE developed by JetBrains. It provides advanced features like code
completion, debugging, and integration with version control systems.
If your application requires a database, you'll need to set up a database management system.
MySQL is a popular choice, but you can also use MariaDB or PostgreSQL, depending on
your requirements. Download and install the appropriate database system for your operating
system from their respective websites.
5. Browser:
You'll need a web browser to test and preview your PHP applications. Popular browsers like
Google Chrome, Mozilla Firefox, or Microsoft Edge can be used.
94
.PHP FRAMEWORK CLASS LIBRARY
A PHP framework is a collection of libraries, components, and tools that provide a structured way to
build web applications. These frameworks simplify the development process by providing reusable
code and predefined structures, allowing developers to focus on application logic rather than low-
level implementation details. While there are several PHP frameworks available, this section
provides an overview of a typical PHP framework's class library.
1. Routing:
The routing component helps in defining and managing application routes, which
determine how URLs are mapped to specific actions or controllers.
It allows developers to define routes for different HTTP methods (GET, POST, etc.)
and handle dynamic URL parameters.
The routing class library provides methods to register routes, match incoming requests
to appropriate controllers, and pass parameters to the corresponding actions.
2. Controller:
The controller class library contains classes that handle user requests, process data,
and generate responses.
Controllers typically contain methods (actions) that correspond to different application
functionalities.
The controller classes receive input from the user, interact with models or services to
retrieve or manipulate data, and generate output or views to be presented to the user.
3. Model:
The model component provides classes and functionalities to interact with the
application's data storage, such as databases or external APIs.
Models represent the data structures and business logic of the application.
The model classes encapsulate data access methods, validation rules, and relationships
between different data entities.
4. View:
The view class library focuses on rendering and presenting data to the user interface.
Views are responsible for generating HTML, CSS, and JavaScript code that forms the
user interface.
View templates often use templating engines or syntax to dynamically populate data
and create reusable components.
5. Middleware:
95
Middleware classes intercept incoming requests and perform specific actions before
passing them to the appropriate controller.
Middleware components handle tasks such as authentication, input validation,
logging, or modifying the request or response objects.
Middleware classes can be chained or stacked to execute multiple tasks in a specific
order.
6. Form Validation:
The form validation class library assists in validating user input data received through
forms.
It provides methods and rules to ensure that user-submitted data meets the specified
validation criteria.
The form validation component helps in preventing security vulnerabilities and
ensuring data integrity.
7. Authentication and Authorization:
The authentication and authorization class library helps in managing user
authentication and access control.
It provides methods for user registration, login, password hashing, and managing user
sessions.
The authorization component allows developers to define access control rules based
on user roles or permissions.
8. Database Abstraction:
The database abstraction class library simplifies database interactions by providing an
object-oriented interface.
It includes methods for querying the database, managing transactions, and handling
database-specific operations.
The database abstraction layer supports multiple database systems and provides a
consistent API for data manipulation.
9. Caching:
The caching component offers methods for caching frequently accessed data, reducing
database or API calls and improving performance.
It supports different caching strategies, such as in-memory caching, file caching, or
caching using external services like Redis or Memcached.
10. Error Handling and Logging:
The error handling and logging class library provides mechanisms to capture and
96
manage application errors and exceptions.
It offers logging capabilities to record application events, error messages, and stack
traces for debugging and troubleshooting.
The Client Application Development aspect of the Student Result Management System project in
PHP, MySQL, and Bootstrap focuses on developing the user-facing application that enables
administrators, teachers, and students to interact with the system. This section outlines the key
considerations and activities involved in developing the client application.
b. Front-End Development:
Develop the client application using PHP, HTML, CSS, and JavaScript.
Utilize the Bootstrap framework for responsive and flexible layouts.
Implement interactive features and functionalities using JavaScript libraries and
frameworks, such as jQuery or Vue.js.
Ensure cross-browser compatibility and accessibility to support a wide range of users.
Integrate the client application with the back-end system, ensuring seamless data flow and
synchronization.
Implement APIs (Application Programming Interfaces) or data exchange mechanisms to
facilitate integration with other systems, such as student information systems or learning
management systems.
98
Implement bug tracking and issue management systems to capture and resolve any
identified issues.
PHP TECHNOLOGY
PHP TECNOLOGY
Why PHP?
PHP un perfectly on different operating system such as window and so on.
PHP is compatible with almost all web servers used today (Apache).
PHP is free to download from the official PHP resource: http://www.phpPHP YII2 .
PHP is easy to learn and runs efficiently and swiftly on any compatible web server.
99
Backend used:
a. MySQL :
MySQL is the world's most popular open source database software, with over 100 million copies of its
software downloaded or distributed throughout it's history. With its superior speed, reliability, and ease of
use, MySQL has become the preferred choice for Web, Web 2.0, SaaS, ISV, Telecom companies and
forward-thinking corporate IT Managers because it eliminates the major problems associated with
downtime, maintenance and administration for modern, online applications. Many of the world's largest and
fastest-growing organizations use MySQL to save time and money powering their high-volume Web sites,
critical business systems, and packaged software — including industry leaders such as Yahoo!, Alcatel-
Lucent, Google, Nokia, YouTube, Wikipedia, and Booking.com. The flagship MySQL offering is MySQL
Enterprise, a comprehensive set of productiontested software, proactive monitoring tools, and premium
support services available in an affordable annual subscription. MySQL is a key part of WAMP (Windows,
Apache, MySQL, PHP / Perl / Python), the fastgrowing open source enterprise software stack. More and
more companies are using LAMP
as an alternative to expensive proprietary software stacks because of its lower cost andfreedom from
platform lock-in.
MySQL was originally founded and developed in Sweden by two Swedes and a Finn: DavidAx mark, Allan
Larsson and Michael "Monty" Widenius, who had worked together since the1980's
b. Apache Server
Often referred to as simply Apache, a public-domain open source web server developed by a loosely-
knit group of programmers. The first version of Apache, based on the NCSA httpd web server, was
developed in 1995. Core development of the Apache web server is performed by a group of about 20
volunteer programmers, called the Apache group. However, because the source code is freely
available, anyone can adapt the server for specific needs, and there is a large public library of Apache
Add-ons. In many respects, development of Apache is similar to development of the Linux Operating
System.
a) Bootstrap:
b) XAMPP:
XAMPP. Stands for "Windows, Apache, MySQL, and PHP." XAMPP is a variation of LAMP
for Windows systems and is often installed as a software bundle (Apache,MySQL, and PHP). It is
often used for web development and internal testing, but may also be used to serve live websites
c) CSS:
CSS stands for Cascading Style Sheets.CSS describes how HTML elements are to be displayed on
screen, paper, or in other media.CSS saves a lot of work. It can control the layout of multiple web
pages all at once. External style sheets are stored in CSS files.
d) jQuery:
jQuery is a lightweight, "write less, do more", JavaScript library. The purpose of jQuery is to make it
much easier to use JavaScript on your website. jQuery takes a lot of commontasks that require many
lines of JavaScript code to accomplish, and wraps them into methods that you can call with a single
line of code. jQuery also simplifies a lot of the complicated things from JavaScript, like AJAX calls
and DOM manipulation the jQuery library contains the following features: HTML/DOM
manipulation CSS manipulation HTML event methods Effects and animations AJAX Utilities
e) PHP: -
PHP is an acronym for "PHP: Hypertext Preprocessor PHP is a widely-used, open source scripting
language. PHP scripts are executed on the server .PHP is free to download anduse.
f) SQL SERVER:-
A database management, or DBMS, gives the user access to their data and helps them transform the data
into information. Such database management systems include dBase, paradox, IMS, SQL Server and SQL
Server. These systems allow users to create, update and extract information from their database.
A database is a structured collection of data. Data refers to the characteristics of people, things and events.
SQL Server stores each data item in its own fields. In SQL Server, the fields relating to a particular
person, thing or event are bundled together to form a single complete unit of data, called a record (it can
101
also be referred to as raw or an occurrence). Each record is made up of a number of fields. No two fields
in a record can have the same field name.
During an SQL Server Database design project, the analysis of your business needs identifies all the fields
or attributes of interest. If your business needs change over time, you define any additional fields or
change the definition of existing fields.
SQL Server stores records relating to each other in a table. Different tables are created for the various
groups of information. Related tables are grouped together to form a database.
Primary Key
Every table in SQL Server has a field or a combination of fields that uniquely identifies each record inthe
table. The Unique identifier is called the Primary Key, or simply the Key. The primary key provides the
means to distinguish one record from all other in a table. It allows the user and the database system to
identify, locate and refer to one particular record in the database.
Relational Database
Sometimes all the information of interest to a business operation can be stored in one table. SQL Server
makes it very easy to link the data in multiple tables. Matching an employee to the department in which
they work is one example. This is what makes SQL Server a relational database management system, or
RDBMS. It stores data in two or more tables and enables you to define relationships between the table and
enables you to define relationships between the tables.
102
Foreign Key
When a field is one table matches the primary key of another field is referred to as a foreign key. A
foreign key is a field or a group of fields in one table whose values match those of the primary key
of another table.
Referential Integrity
Not only does SQL Server allow you to link multiple tables, it also maintains consistency between
them. Ensuring that the data among related tables is correctly matched is referred to as maintaining
referential integrity.
Implementation approaches
Far the biggest challenge encountered was time constraints. Implementation takes an extraordinary
amount of time and a large amount of coordination. Scheduling project meetings around every
group member’s schedule has been nearly impossible. Many of the group members were unable to devote
the amount of focus that the implementation stage required. Both the former and the latter problem may
be more of an issue in the academic environment where priorities of the different group members are
skewed in a variety of directions. Another issue that cropped up was knowledge of the PHP programming.
At least two of the four group members were unfamiliar with PHP Swing API, which is php primary
user interface package. Again, this may not be as much of an issue in software engineering outside
One of tools we found very useful, in situations where member responsibilities need to be hashed out, is
the responsibility matrix. It has really been the only tool that has allowed us to continue making
progress. Everyone is assigned a task, and everyone is held accountable for the completion of their
assigned task. It also allows us to track tasks that need to be done. The responsibility matrix has proven
103
Chapter 6
Conclusion
6. Conclusion
At the first look we can say that Bookstore Management System is a perfect system but it has many
limitations that are as follow :
This is also used for list the category and books also manage the customer and books of the Bookstore.
The Bookstore Management System is used to give information of the Books to the customer.
We faced problems like Database creation, Flow of our system, designing of front end and back end tools,
coding etc.
Only single user can use a system at a time.
In this system we cannot add a service module.
We learnt new languages like jQuery, PHP, Boot-Strap, HTML, CSS, etc..
104
Chapter 7
Limitation of System
7 Limitation of system
Help
Currently the help feature is not available. Using this functionality user can get help about the system.
Payment
Currently the feature of online payment is not available. User cannot give payment online.
Multilingual
Multilingual is not supported in our system. Therefore user cannot work in different languages.
User cannot take the backup or recover the data in this the system.
Many More Others.
105
Chapter 8
Future Scope of Project
The Book Store Management System project developed using PHP, MySQL, and Bootstrap has great
potential for future enhancements and expansion. Here are some key areas of future scope for the project:
Advanced Reporting and Analytics: Enhance the reporting capabilities of the system by
incorporating advanced analytics features. This could include generating visual dashboards and
charts to present data insights, enabling administrators and customers to analyze performance
trends, identify areas for improvement, and make data-driven decisions.
Mobile Application Development: Develop a mobile application for the Book Store Management
System, allowing administrators, customers, and stores to access the system's functionalities on
their smartphones and tablets. The mobile app can provide real-time notifications, result updates,
and personalized academic information, enhancing convenience and accessibility.
Book Store -Customers Communication Portal: Create a dedicated portal within the system to
facilitate effective communication between book store owner and customers.
Data Security and Privacy Enhancements: Strengthen the system's security measures to protect
sensitive customer data. Implement encryption techniques, role-based access controls, and regular
security audits to ensure data privacy and comply with relevant data protection regulations.
106
Scalability and Performance Optimization: Optimize the system's performance to handle a larger
number of users and increasing data volumes. This can be achieved through database optimization,
code refactoring, and implementing caching mechanisms.
Seamless Integration with Student Information Systems (SIS): Integrate the Book Store
Management System with existing Book Store Systems used in Book Stores. This integration
would enable seamless data synchronization, ensuring accurate and up-to-date student
information across different systems.
Continuous Support and Maintenance: Provide ongoing support, bug fixes, and system updates to
ensure the smooth functioning of the Book Store Management System. Regular maintenance and
improvements will help address user feedback, accommodate changing requirements, and keep the
system up-to-date with technological advancements.
107
Chapter 8
Bibliography
9. Bibliography
Websites Used
o www.google.com
o www.w3cschools.com
o www.stackoverflow.com
o www.quora.com
o www.Scribd.com
Apps Used
Youtube
108
A
Project Report
By
Neha Devi
GOVT P.G.
COLLEGE
DHARAMSHALA
SESSION – 2021-
23
Roll No.21013728026
109