My Project Documentation
-
Upload
rabbzvicta -
Category
Documents
-
view
160 -
download
8
Transcript of My Project Documentation
DECLARATION
I hereby sincerely declare that this project is my original work and has never been submitted
for the award of Bachelor of Science in Computer Science degree or any other Certificate in
any institution of higher learning or any institution approved by the Ministry of Higher
Education, Science and Technology.
MR. MWAKIDOSHI S. MWAMBEKE
Sign: …………. Date_____/____/2011.
This project has been submitted for the examination and as per the requirement of Computer
Science Project 1 (COM 311) course with the Approval of my Supervisor.
DR. MUSEMBI (SUPERVISOR.)
Sign……………….. Date: ____/_____/2011.
No part of this publication may be reproduced or retransmitted in any form or by any means
including photocopying, recording or any information storage or retrieval system, without prior
permission from the author.
Mwakidoshi S. Mwambeke
Copyright @2011
{All rights reserved.}
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 1
DEDICATIONTo my beloved parents, brothers and sisters for all your love and support, in every
sphere possible, to me as I traverse the career mountain towards its highest pinnacle.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 2
PREFACEOnline PSV Booking Management System is a web-based application system which is
divided into two parts: Public Area and Staff Area.
The Public Area is the part that customers/passengers of the Bus Company use to book
their bus seats for their preferred journey. They will be able to do this by visiting the
company’s website and then click on the ‘Booking’ link. And then, feed in the details
as required.
The Staff Area is the part that company’s owners and employees use to manage the
system once they are authenticated. The extend of management of the system by the
authenticated user depends on the user’s access privilege.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 3
ACKNOWLEDGMENTSThanks to everybody who helped make this project possible, both directly and
indirectly.
To my project supervisor, Dr. Musembi, for guiding me through the project process
phases. Also, he was my Database Systems lecturer who imparted in me SQL
knowledge that greatly contributed to the development of this project.
To my HTML and PHP lecturer, Mr. Rotich , for the knowledge imparted which also
greatly contributed to this project development.
To my Software Engineering I lecturer, Dr. Z. M. Mapelu, and Software Engineering II
lecturer, Mrs. Siele, also for the knowledge imparted which greatly contributed to the
successfully development of this project.
To my Software Development lecturer, Mr. Shadrack Metto, for the development
concept he imparted on me that made this project development a success.
To my Procedural Programming lecturer, Mr. Tarus, for the programming concepts of
which I greatly utilized during this project development.
To my project co-coordinator, Mr. Kogo, for the ideas he gave me for the project
documentation format and how to precisely and concisely write its content.
To my friends and colleagues especially one Mr. Tom Mwenda for providing
encouragement and feedback throughout the project process.
And lastly, thanks to my parents for their financial support and motivation as I
developed the project.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 4
ABSTRACTThe adoption of World Wide Web (WWW) has made the use of Internet, as an
appreciable way of communication and sharing resources, very reliable.
Nowadays, services over the Internet have been greatly embraced due to convenience
and faster access of the services unlike the manual process. This has led to the
development of web-based applications.
Objectives of the Online PSV Booking Management System is to improve efficiency
and effectiveness during seat booking process by the customers, to efficiently and
effectively manage and administer all company’s records and to schedule company’s
employees.
The public part of the Online PSV Booking Management System offers customers
capability to book their bus seats online and then the system auto generates provisional
tickets. On the staff part of the system, company’s owners and employees use to
manage the system once they are authenticated and also generate relevant reports.
Very few Public Service Vehicles Companies offer online seat booking process. Online
PSV Booking Management Systems are however, still very expensive in Kenya and
thus, the need for cheaply and locally produced systems so as to replace the expensive
systems from the developed countries which are only affordable to a few local PSV
companies.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 5
CHAPTER 1: INTRODUCTION
1.0 INTRODUCTION
Problem definition identifies the specific problem to be solved.
1.1 PROBLEM STATEMENT
Most PSV (Passenger Service Vehicle) companies use a manual system or standalone system
of booking seats for both their employees and their passengers.
This manual system/stand alone system is inefficient, ineffective, unreliable and inconvenient
since it requires passengers to go physically to the booking office. They may even find queue
which may inconvenience them. Sometimes, they may even find that the seats for their
specified journey are all booked hence wasting their time going to the booking office.
In addition, the manual systems/stand alone systems makes the booking offices overcrowded
due to the reason that there is only one option to book a seat. This option is seat-booking at the
booking offices. Hence, all of their passengers would have to go to their booking offices.
Furthermore, the management of the booking records by the company’s employees can only be
done at the company’s offices. This means that, one cannot do his/her duties outside the office.
Also, a lot of paper work is encountered when using the manual system. Hence, records are
stored in paper files which are difficult to deal with when retrieving a desired record, paper
files occupy large space and they are also more vulnerable to natural calamities such as fire.
Clerks may also cause double booking erroneously.
Due to the above stated problems associated with manual system/standalone system, there is
much need to come up with an online-based system whereby much of the booking process will
be done online. In this type of system, passengers will have to book for their seats anywhere
provided there’s Internet connectivity and the Online PSV Booking Management System is
available. On the other hand, the PSV Company’s employees and owners will also be able to
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 6
do their managerial and administrative duties online hence more convenient. Double booking
will be unable to occur due to the higher degree of accuracy of the web-based system.
1.2 JUSTIFICATION OF AN ONLINE-BASED SYSTEM
The Web-based System would increase the efficiency of customer service hence it will attract a
very good number of passengers due to the conveniences it will offer to the passengers.
The passengers will be able to book for their seats online hence no need to go physically to the
booking office and therefore overcrowding at the offices will be greatly reduced. To add on
this, security problems that would otherwise be caused by congestion of customers at the
booking offices will be reduced.
The system will offer better management of records since the management process can be done
even outside the company’s premises. This is achievable especially when one is at home but
needs to do some administrative duties hence he will have to accomplish what he/she wants
online.
The system will also save time since it will offer faster services to both the company’s staff and
passengers.
Moreover, it is cost effective since the company will require only a few numbers of employees
to handle booking process, and also web-based system makes it possible to share resources
since only one server will be required.
Furthermore, there is presence of centralized database whereby authorized individuals can
retrieve their desired information reliably and efficiently
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 7
1.3 SCOPE AND CONTEXT OF THE PROJECT
The system is purely designed using PHP (server-side programming language), MySQL (Database System) and JavaScript (client-side scripting language). Due to this fact, it is meant to be accessed through most of the popular Internet browsers. But this system will render well when one uses Mozilla Firefox as compared to other browsers.
The system will enable the bus company’s passengers to book for their bus seats online. Moreover, the staff of the company will be able to manage and administer their duties related to the journey activities online.
Benefits of the systemi. Seat booking process done by the passengers will be convenient since they
will be able to book seats online hence no need to go physically to the
booking office.
ii. Double booking will be avoided due to the accuracy of the system.
Booking process will be error free.
iii. Booking records will be able to be retrieved as desired at a faster rate due
to the random filing system which is located at the hard disk
iv. Congestion at the booking office will be greatly reduced since many
passengers may prefer online services.
v. Company’s staff members will be able to perform their duties related to
journey activities online hence they can work outside their offices.
Goals of the system
To increase the efficiency of passenger/customer service at the Simba Coach
Bus Limited Company.
To minimize congestion at the booking offices.
To improve the effectiveness and efficiency of the duties performed by the
company’s employees.
To avoid double-booking.
To minimize greatly paper work hence making the offices presentable due to
lack of old paper files that may be on the shelves, tables, etc.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 8
1.4 CONSTRAINTS OF THE PROJECT
The Online PSV Booking Management System was meant to offer much functions but it was
limited to the functions stipulated in the Scope and Context of the Project section due to the
following constraints: -
i. Knowledge constraint:- The development of a very good web based system which
will be more reliable, efficient and effective calls for an exhaustive use of: -
a) Server-side programming languages (e.g. PHP)
b) Client-side scripting languages (e.g. JavaScript, VBScript)
c) Asynchronous scripting language (Ajax)
d) Extensible Markup Language XML)
e) JQuery
But due to lack of enough time, I couldn’t manage to get much of the understanding to
some of them hence lack of enough skills made the scope of the system as described in
section 2.3 above to be smaller than desired.
ii. Resource constraint: - Due to lack of enough Internet connectivity and some other
relevant sources of information, research on how to come up with a competitive system
was greatly limited. Also I could not easily download relevant codes and e-books due
the same reason.
Furthermore, lack of relevant Computer Aided Software Engineering (CASE) tools
made the development process of the system difficulty hence leading to a minimized
scope of the system.
iii. Cost constraint: - Due to lack of enough funds, to cater for the cost of downloading
from the Internet free relevant resources such as web servers (e.g. xampp, wamp),
tutorials, and other software packages such as MS Project. This greatly led to lack of
relevant materials and hence the scope of the project had to be reduced to its current
size as stipulated in section 2.3 above.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 9
iv. System complexity constraint: - Due to the highly required performance and
reliability, functionalities which are very complex were needed to be implemented. This
implementation could not take place due to the lack of enough technical skills and
knowledge.
v. Time constraint: - Since the whole system development process was supposed to be
carried out by me only, a time period of one semester (equivalent to 16 weeks) could to
be sufficient enough to come up with a highly proficiently system.
1.5 SOLUTION STRATEGY
1.5.1 Solution Strategies
There are several strategies that may be used to solve the PSV Booking Management
System. The strategies are as follows:-
Online-based system: - This is a system of which customers/passengers use to book their bus seats online. Therefore, they will not have to go to the booking office. Booking of the seats can be done anywhere provided there is connection to the Internet and the services are available. Also, the company’s employees can manage and administer their job processes online anywhere (at home, at office, etc.).
Stand alone system: - This is a system of which customers/passengers will have to go to the bus booking office so as to book their seats. Also, the staff personnel can only do their duties at the office only since that’s where the system will be located.
To select the best strategy, a feasibility study was carried out on each strategy and evaluated in
terms of economic, operational, technical and time constraints as described in the following
section.
1.5.2 Feasibility Study
Feasibility study on solution strategies refers to the process of assessing the strategies and finding
out the best strategy which will be the most useful among others.
After an exhaustive study, the Feasibility Study Analysis Table was drawn as shown in section
1.2.3.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 10
Now, am going to show how I carried out the feasibility study on each strategy and then drawing
the Feasibility Study Analysis Table based on the feasibility study results.
1.5.2.1 Feasibility Study on the Online-based System
i. Economic Feasibility
Economical feasibility determines whether there are sufficient benefits in creating to make the cost acceptable, or is the cost of the system too high. As this signifies cost-benefit analysis and savings. An online-based system requires a web server and additional hardware such as
connection cables, hubs et cetera. This requires much funding so as to achieve the
required Internet connectivity.
On the other hand, online-based system makes possible a reliable, efficient and
effective sharing of resources and information, and centralized administration hence the
system is cheaper.
On the behalf of the cost-benefit analysis, the proposed system is feasible and is economical regarding its pre-assumed cost for making a system.
ii. Operational Feasibility
Operational feasibility criteria measure the urgency of the problem (survey and study phases) or the acceptability of a solution (selection, acquisition and design phases). So, this system would be operational feasible.
iii. Technical Feasibility
Technical feasibility determines whether the work for the project can be done with the existing equipment, software technology and available personnel. Technical feasibility is concerned with specifying equipment and software that will satisfy the user requirement. Technical components installed on the system. The proposed system can run on any machines supporting Internet services and works on the best software and hardware that had been used while designing the system so it would be feasible in all technical terms of feasibility.
iv. Time Feasibility
Time feasibility is realized since the system is small in size hence the time frame of three
(3) months allocated for development is appropriately enough.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 11
1.5.2.2 Feasibility Study on the Stand Alone System
i. Economic feasibility
It does not require interconnectivity of devices and hence cheaper than the web-based system.
Unfortunately, it is not economically feasible since it does not provide the mechanisms for
sharing information and resources.
ii. Operational feasibility
The customers/passengers tend not to acknowledge the stand alone system because they will
still have to visit booking offices and sometimes even make a queue in order to book a seat.
This is just the same what they do to the manual system. Due to this reason, it is found to be
not operational feasible.
iii. Technical feasibility
Since the system is small in size and I have the technical know how for developing and
maintaining the system, it is found to be technically feasible.
iv. Time feasibility
Time feasibility is realized since the system is small in size hence the time frame of three (3)
months allocated for development is appropriately enough.
1.5.3 Choice of the Best Strategy
The feasibility study carried out as shown in the above section 2.2 helped in identifying the best strategy. After the study, I decided to draw a Feasibility Study Analysis Table whereby the constraints stated in section 2.2 were weighted as per each strategy.The range of constraint weight was from 1 to 10 whereby:
Constraint weight 1 makes the associated strategy to be highly recommendedConstraint weight 10 makes the associated strategy to be lowly recommended
Therefore, the highest recommendation for use of the strategy to lowest recommendation starts from constraint weight 1 then 2 followed by 3, incremented by one until the last constraint weight 10.
1.5.4 Feasibility Study Analysis Table
The Feasibility Study Analysis Table
CONSTRAINTSSTRATEGIES Cost Operational Technical Time Resource Knowledge Total Weight
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 12
Online-based 3 2 4 6 2 1 18
Stand-alone 4 6 2 5 4 3 24
From the above feasibility study analysis table, Online-based strategy has the least total weight
and so it was the best recommended strategy.
Therefore, the system that was found to be the best recommended was developed. This system
is an online-based system.
Further, the online-based system has also different strategies that can be used for its
development. These strategies are: -
STRATEGIES Programming
Language
Database System Platform Interface
1 PHP MySQL MS Windows Graphical
2 VB MS Access MS Windows Graphical
After a thorough feasibility study on the above two strategies, a feasibility study analysis table
was drawn as shown below: -
CONSTRAINTSSTRATEGIES Cost Operational Technical Time Resource Knowledge Total Weight
1 2 3 3 5 4 3 20
2 2 4 5 4 3 4 22
From the above feasibility study analysis table, strategy 1 has the least total weight and so it
was the best recommended strategy which was then used.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 13
1.6 LIST OF PRIORITIES FOR PRODUCT CHARACTERISTICS
Normal product characteristicsThe following are the normal product characteristics which are meant to satisfy the customer.
Graphical user interface(GUI) Storage of information i.e. database.
Expected product characteristics These characteristics are implicit to the product. The following are some of them:-
Data Entry Forms. Submit Buttons HyperLinks to other documents Login for security reasons.
Exciting or aesthetical characteristicsThese characteristics go beyond the customers expectations. The following are some of them for this product:-
Moving background pictures. Friendly error reports
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 14
CHAPTER 2: LITERATURE REVIEWMany systems were created that were some how related to this system (Online PSV Booking
Management System) I have developed. The major differences being that I managed to
develop a system with more functionality i.e. the company’s employees can now perform their
formal duties online, also generation of journey reports and financial report for the specified
journey will be able to be performed online. Moreover online administrative duties are
enhanced and made more reliable, effective and efficient.
The somehow-related systems that were previously developed include the following:-
Peter Morris (1999), Bus Booking System, Stanford University, USA
The Bus Booking System that was developed by Peter Morris in the year 1999 while being a
student at Stanford University, USA, was a standalone system which was intended to only
improve efficiency in keeping the booking records in a computerized manner. The passengers
still had to go physically to the booking offices. The only differences between the manual
system and Peter Morris’ system are that record keeping is computerized and passenger’s
details are fed into the computer and then a ticket is generated and printed out after fare
payment. The managerial and administrative journey duties were still left to be done manual.
Evelyn Tammy (2002), Bus Reservation System, Massachusetts Institute of Technology, USA
The Bus Reservation System developed by Evelyn Tammy is a web-based system. It is mainly
intended to make booking process efficient and convenient since passengers can book for their
seats online. This made no need of passengers going physically to the booking offices to
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 15
reserve bus seats for their journey. However, payment was still to be made at the booking
offices before the stipulated deadline. The managerial and administrative journey duties were
still left to be done manual but computerized record keeping of reservations was made
possible.
Presently, among others, Modern Bus Online Bus Reservation System
(www.moderncoast.co.ke), after a thorough consultation with some of their IT staff members, I
found out that the system only support online seat reservation but cannot offer online
administrative duties like managing passengers’ payment details and even
add/update/view/delete journey details.
After I had critically analyzed the previous and current systems that are somehow related to the
system I desired to develop, I decided to come up with my system (Online PSV Booking
Management System) which will have more functionality as compared to the previous ones.
So, in addition to improving online seat booking process by adding a functionality whereby a
passenger will be able to regenerate his/her bus ticket in case the ticket got lost (but this will
require that the passenger remembers his/her ticket number), I decided also to make the bus
company’s managerial and administrative duties to be done online.
Thus, in my system: -
Administrators can perform online duties such as the following: -
(i) Add/remove system users.
(ii) Generate Financial Report
(iii) Generate journey reports
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 16
(iv)Manage system contents on the public area (where passengers visit so as to book their
seats).
(v) Add/update/remove/view journey details and conditions for travelling.
(vi)Add/update/remove/view staff privileges and details.
(vii) Manage passengers’ payment details.
Company clerks can perform only one duty which is also done online. This duty is: -
Manage passengers’ payment details.
However, my system lacks a functionality whereby passengers could pay for their tickets
online. This was as a result of lack of enough knowledge and skills, currently, to implement it.
I therefore, highly recommend myself or other developers to implement, in the very near
future, this missing functionality.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 17
CHAPTER 3: METHODOLOGY
3.0 INTRODUCTION
Software engineering is the practice of using selected process techniques to improve the quality
of a software development effort. This is based on the assumption, subject to endless debate
and supported by patient experience, that a methodical approach to software development
results in fewer defects and, therefore, ultimately provides shorter delivery times and better
value.
A methodology is a standard process followed to conduct all the steps necessary to analyse,
design and maintain information systems.
There are a number of software development methodologies, but the ones I have learnt so far
include:-
i. Systems Development Life Cycle (SDLC)
ii. Structured Systems Analysis and Design Method (SSADM)
iii. Object Oriented Analysis And Design OOAD)
iv. The Prototype Model
v. The Incremental Model
3.1 BRIEF DESCRIPTION OF EACH METHODOLOGY
i. Systems Development Life Cycle (SDLC): - This is a common methodology for
systems development in many organizations and is consistent with management
approaches. This approach is sometimes called waterfall model since the progress
is seen as flowing steadily downwards (like a waterfall) through the phases of
Project Identification & Planning, Feasibility Study, Analysis, Design,
Implementation, Testing and Maintenance.
ii. Structured Systems Analysis and Design Method (SSADM): - This was developed so
as to address problems that SDLC faced. They made analysis and design through
the use of tools such as Data Flow Diagrams (DFD) and Transform Analysis.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 18
SSADM makes it easier to go back to earlier phases in the life cycle when
necessary. There’s portioning the problem into smaller units and making distinction
between physical and logical design. It is also referred to as a waterfall method for
the production of an Information System design. SSADM can be thought to
represent a pinnacle of the rigorous document-led approach to system design.
iii. Object Oriented Analysis And Design: - This refers to a process-oriented and data-
oriented approach. It combines data and processes as a single entity called an
object. Unified Modeling Language (UML) is used in standard OOAD.
iv. The Prototype Model: - This involves producing a mock-up or model of the
software product. The prototype is presented to customers to demonstrate the
proposed behavior.
v. The Incremental Model: - This is a variation of prototyping where a minimal subset
of the whole product is delivered and then the process is continued throughout the
product’s life cycle.
Other methodologies include: -
Rapid Application Development (RAD) model A sequential software engineering methodology A cyclical Software Engineering methodology The Boehm-Spiral Software Engineering methodology The waterSluice Software Engineering Methodology
3.2 CHOICE OF METHODOLOGY
Since I clearly understood the user requirements of Online PSV Booking Management System,
I only decided to choose between Systems Development Life Cycle (SDLC) and Structured
Systems Analysis and Design Method (SSADM).
I eventually ruled out the use of SSADM on the basis that the size of SSADM is a big
hindrance to using it in all circumstances. Moreover, there was limited time to learn all of its
relevant concepts since the learning curve is considerable as not only are there several
modeling techniques to come to terms with, but there are also a lot of standards for the
preparation and presentation of documents.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 19
Therefore, I decided to use SDLC methodology. This is because I understand it very well and I
can manage to develop the system using this methodology.
3.3 DETAILED DESCRIPTION OF THE SDLC METHODOLOGY
The phases in SDLC are: Project Identification & Planning, Feasibility Study, Requirement
Specifications phase, Software Design, Implementation and Testing & Maintenance. All these
phases are cascaded to each other so that second phase is started as and when defined set of
goals are achieved for first phase and it is signed off, so the name "Waterfall Model". All the
methods and processes undertaken in SDLC are more visible.
The stages of "The SDLC” are: -
Project Identification & Planning: In this phase, there is identification of the need for a new
system or enhanced system. It is initiated through communication of a need or presence of a
problem. The critical step at this point is determining the scope of the proposed system. One
need to understand how data is currently handled which leads to evaluation of shortcomings. A
list of required activities and expected results should be developed. Finally, the report is
created.
Feasibility Study: The input of feasibility study is a set of an outline description of the system
and how the system is intended to support the business. The result of feasibility study should
be a report that recommends whether or not it is worthy to carry out the requirements. Carrying
out the feasibility study involves information assessment whereby there’s identification of
information that is required to answer business question, information collection and report
writing.
Requirement Analysis & Definition: All possible requirements of the system to be developed
are captured in this phase. Requirements are set of functionalities and constraints that the end-
user (who will be using the system) expects from the system. The requirements are gathered
from the end-user by consultation, these requirements are analyzed for their validity and the
possibility of incorporating the requirements in the system to be development is also studied.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 20
Finally, a Requirement Specification document is created which serves the purpose of
guideline for the next phase of the model.
System & Software Design: Before a starting for actual coding, it is highly important to
understand what we are going to create and what it should look like? The requirement
specifications from first phase are studied in this phase and system design is prepared. System
Design helps in specifying hardware and system requirements and also helps in defining
overall system architecture. The system design specifications serve as input for the next phase
of the model.
Implementation & Unit Testing: On receiving system design documents, the work is divided
in modules/units and actual coding is started. The system is first developed in small programs
called units, which are integrated in the next phase. Each unit is developed and tested for its
functionality; this is referred to as Unit Testing. Unit testing mainly verifies if the
modules/units meet their specifications.
Integration & System Testing: As specified above, the system is first divided in units which
are developed and tested for their functionalities. These units are integrated into a complete
system during Integration phase and tested to check if all modules/units coordinate between
each other and the system as a whole behaves as per the specifications. After successfully
testing the software, it is delivered to the customer.
Operations & Maintenance: This phase of "The SDLC” is virtually never ending phase (Very
long). Generally, problems with the system developed (which are not found during the
development life cycle) come up after its practical use starts, so the issues related to the system
are solved after deployment of the system. Not all the problems come in picture directly but
they arise time to time and needs to be solved; hence this process is referred as Maintenance.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 21
CHAPTER 4: PROJECT PLANNING
4.1 DEVELOPMENT PROCESS PLAN
4.1.1 Determination of Phase Dependent Tools, Notation and Techniques.
Background InformationThe development of software requirements specifications, architectural and detailed design and
the source code, the following may be used:
i. Automated tools
ii. Specialized notations
iii. Modern techniques
Automated testing tools may be used to perform unit testing, system testing and acceptance
testing.
Tools and techniques that may be used to track and control progress include:-
- PERT charts (Network charts).
- Work Breakdown Structures (WBS)
- Personnel staffing charts.
- Gantt Charts
Choice of Phase Dependent Tools, Notation and Techniques.
I decided to use Work Breakdown Structure (WBS), PERT charts and Gantt charts to schedule
the project.
4.1.1.1 Work Breakdown Structure (WBS)
I used this technique so as to break the whole project task into small tasks which involved: -
Identifiable parts of tasks
Finding deliverables
Finding milestones
The project was divided into the following tasks (phases) as follows: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 22
Project Identification & Planning: In this phase, there is identification of the need for
a new system or enhanced system. It is initiated through communication of a need or
presence of a problem. The critical step at this point is determining the scope of the
proposed system. One need to understand how data is currently handled which leads to
evaluation of shortcomings. A list of required activities and expected results should be
developed. Finally, the report is created.
Feasibility Study: The input of feasibility study is a set of an outline description of the
system and how the system is intended to support the business. The result of feasibility
study should be a report that recommends whether or not it is worthy to carry out the
requirements. Carrying out the feasibility study involves information assessment
whereby there’s identification of information that is required to answer business
question, information collection and report writing.
Requirement Analysis & Definition: All possible requirements of the system to be
developed are captured in this phase. Requirements are set of functionalities and
constraints that the end-user (who will be using the system) expects from the system.
The requirements are gathered from the end-user by consultation, these requirements
are analyzed for their validity and the possibility of incorporating the requirements in
the system to be development is also studied. Finally, a Requirement Specification
document is created which serves the purpose of guideline for the next phase of the
model.
System & Software Design: Before a starting for actual coding, it is highly important
to understand what we are going to create and what it should look like? The
requirement specifications from first phase are studied in this phase and system design
is prepared. System Design helps in specifying hardware and system requirements and
also helps in defining overall system architecture. The system design specifications
serve as input for the next phase of the model.
Implementation & Unit Testing: On receiving system design documents, the work is
divided in modules/units and actual coding is started. The system is first developed in
small programs called units, which are integrated in the next phase. Each unit is
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 23
developed and tested for its functionality; this is referred to as Unit Testing. Unit testing
mainly verifies if the modules/units meet their specifications.
Integration & System Testing: As specified above, the system is first divided in units
which are developed and tested for their functionalities. These units are integrated into
a complete system during Integration phase and tested to check if all modules/units
coordinate between each other and the system as a whole behaves as per the
specifications. After successfully testing the software, it is delivered to the customer.
Documentation: This will define the way in which a project will be managed and the
governance surrounding it.
Operations & Maintenance: This phase is virtually never ending phase (Very long).
Generally, problems with the system developed (which are not found during the
development life cycle) come up after its practical use starts, so the issues related to the
system are solved after deployment of the system. Not all the problems come in picture
directly but they arise time to time and needs to be solved; hence this process is referred
as Maintenance.
Work Breakdown Structure (WBS) created from Microsoft Office Project 2003
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 24
4.1.1.2 Program Evaluation and Review Tests (PERT) Chart
Here, I drew a graph which showed dependencies among the tasks and duration of each
task. The tasks were labeled as in the work breakdown structure as shown above. The
graph is as shown below: -
4.2 SOFTWARE COST ESTIMATION
This is meant to determine in Programmer Months (PM) the resource needed to complete
project. It is one of the most difficult and error prone task in Software Engineering. However, it
is a requirement by contracting practices that a firm cost commitment be part of the feasibility
study. It is not surprising then that there a lot of cost and schedule overruns in software
projects. One way of solving this problem is to have the estimates at various levels as follows:
Feasibility – preliminary estimate
Requirement analysis – improved estimate
Design – final estimate
Some factors that may contribute to the software cost are: -
Programmer ability
Product complexity
Available time
Required reliability
Level of technology
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 25
17
8621711651 2 3 4 5 6
7
4.3 SOFTARE COST ESTIMATION TECHNIQUES
There are several techniques used to estimate software cost. But I have learnt to use only 3 of
them. These three are: -
Estimation of lines of code technique
Constructive Cost Model (COCOMO)
Function Point Analysis
Estimation of lines of code (LOC) technique
This is also called expert judgment and is based on experience, background and business sense
of some key players. An expert may use experience such as: -
Size of previous project
Size of completion time
Breakdown of project into smaller pieces
A standard approach is for each piece to estimate the maximum possible size (maxi), minimum
possible size (mini) and the best guess size (besti).
The estimate for the whole project is
LOC = (1/6){ maxi + mini + 4 besti}
Cost = α*(KLOC)β + γ
Where KLOC is Kilo Lines Of Code, α is the marginal cost per KLOC and represents
the added cost per additional KLOC, β determines the nonlinearity of the relationship, and γ is
greater than or equal to zero and reflects the fixed cost of doing any project.
When β is greater than zero implies diseconomy of scale but when it is less than zero implies
economy of the scale.
COstructive Cost Model (COCOMO) technique
Historical project data is divided into three types and the cost is given in programmer months
or development times TDEV as shown below: -
Type PM TDEV
Application
Utility
System
2.4(KDSI)1.05
3.0(KDSI)1.12
3.6(KDSI)1.20
2.5(PM)0.38
2.5(PM)0.35
2.5(PM)0.32
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 26
Function point Analysis Technique
This is newer than the LOC based methods discussed above. This method is based on
identification and quantification of the functionality required. This is done by counting the
things in the external behavior that require processing. These are mainly: -
Number of user inputs:
Each user input that provides distinct application oriented data to the software is
counted.
Number of user outputs:
Each user output that provides distinct application oriented information to the user is
counted.
Number of user inquiries:
Any inquiry is defined as an online input that results in the generation of some
immediate software response in the form of an online output.
Number of files:
Each logical master file that is used to transmit information to another system are
counted.
Number of external interfaces:
All machine readable interfaces that are used to transmit information to another system
are counted.
The next step involves assigning a complexity value: complex, average or simple for each
count. The assignment for the complexity factor is subjective and depends on organisations.
Also the criteria for determining whether a count is simple, complex or average is subjective.
The function points are used in a manner similar to the LOC in the previous method.
4.4 SOFTARE COST ESTIMATION TECHNIQUE USED
Estimation of Lines Of Code (LOC)
Cost estimation of this project
Maximum number of lines of code (maxi) = 25,300
Minimum number of lines of code (mini) = 21, 000
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 27
Best guess size (besti) = 24,000
LOC = (1/6){ maxi + mini + 4 besti}
LOC = (1/6){ 25000 + 21000 + 4(24000)} = 23,667
KLOC = 23667/1000 = 23.667
Cost = α*(KLOC)β + γ
Where α = 2.4, β = 0.38, γ = Ksh. 43000
Cost = 2.4*(23.667)0.38 + 15000 = 43007.99
Therefore, the estimated cost = Ksh. 43,008.00
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 28
CHAPTER 5: FEASIBILITY STUDY
5.0 INTRODUCTION
This second phase of SDLC methodology is concerned with assessing whether the system to be developed will be useful. The input of feasibility study is a set of an outline description of the system and how the system is intended to support the business. The result of feasibility study should be a report that recommends whether or not it is worthy to carry out the requirements. Carrying out the feasibility study involves: -
Information assessment. Information collection. Report writing.
5.1 INFORMATION ASSESSMENT
Information assessment identifies information that is required to answer business questions.The questions that were put into consideration include: -
i. Does the system contribute to the overall checking of the company?ii. Can the system integrate with other systems in place?
iii. Can the system be implemented within a given cost and schedule?iv. Can the system offer efficiency that the passengers require?
After a thorough analysis on the above questions, I decided start collecting the relevant information.
5.2 INFORMATION COLLECTION
I consulted with information sources which included: - Simba Coach Bus Limited managers Simba Coach Bus Limited booking clerks Bus Company’s Passengers Relevant technology experts Software developers who were familiar with the proposed type of system.
During the consultations I tried to find out about the application domain, what services should the system provide, the required performance of the system and hardware constraints.After I got the information that could answer the business questions, I wrote a feasibility report.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 29
5.3 FEASIBILITY REPORT WRITING
After the two steps above, I had to write a feasibility report which I presented to the Simba Coach Bus Limited Management for approval. The report which also recommended that a system development could continue.I got the approval from the management. This made me to continue with the system development so I moved to the next phase of SDLC methodology.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 30
CHAPTER 6: SOFTWARE REQUIREMENTS SPECIFICATION
6.0 INTRODUCTION
Software Requirements Specification (SRS) document is the product of REQUIREMENTS ANALYSIS AND DEFINITION phase.The goal in this phase is to completely and consistently specify the technical requirements for the software product in a concise and unambiguous manner. Using formal notations as appropriate.
This phase has several sub-phases: -I. Requirements determination: - determining what users want for the proposed system.
II. Requirements StructuringIII. Selecting the Best Alternative Design Strategy
6.1 REQUIREMENTS DETERMINATION
Background InformationThis involves elicitation of requirements from both stakeholders i.e. those who will interact with the system directly and those who will not use the system themselves but influence requirements in some way.
Methods used to elicit Requirements
I used the following methods of eliciting requirements: -i. Interviewing
ii. Use casesiii. Observationiv. Scenarios
Below is the illustration of how I used the above methods.
i. INTERVIEWINGI conducted both formal and informal interview with the stakeholders of this system I wanted to develop. These interviews were of two kinds, namely closed and open interviews. I interviewed the company’s management, clerks and 33 passengers. I then noted down the findings which I then used to determine the requirements.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 31
Interview questions I presented to the company’s management What is your current procedure of serving your passengers? What is your evaluation of the efficiency of this passenger-serving procedure? What is the number of passengers served on average in a single day? How much do you spend on average on personnel as a result of using the current
procedure? Have you ever used any online system? Would you like to adopt an Online System as a second procedure of serving your
passengers? If YES on the above question, are you ready to meet the cost of developing the system? If YES on the above question; if an online system is developed as an alternative
procedure to serve you, what do you expect it to?
Interview questions I presented to the company’s clerks How much time do you take on average in serving a single passenger over the
counter? How does this counter procedure affect your effectiveness and delivery at your work
place? Have you ever used any online system? Do you think you need some supplementary assistance by means of an online
system? If YES on the above question; if an online system is developed as an alternative
procedure to serve you, what do you expect it to do?
Interview questions I presented to the company’s passengers Do you like the current counter procedure of serving you? Have you ever used any online system? Do you see the need for an online procedure as an alternative way of being served? If YES on the above question, if an online system is developed as an alternative
procedure to serve you, what do you expect it to do for you?
ii. USE CASESIn this method, I presented use cases to the potential stakeholders of the system. Use cases are diagrams that represent the functioning of the software from users’ point of view. I carefully noted down any relevant feedback I got from the stakeholders as a result of them analyzing the use case diagrams.
Sample use case diagrams that I used include the following: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 32
Passenger use case
Clerk use case
Administrator use case
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 33
Enter personal details
Print Ticket Enter personal
details
Enter journey details
Login
Manage passengers’ payment details
Login
Manage system content Enter personal
details
Add/remove system user
Logout
Logout
iii. OBSERVATIONThis is another method that was used in eliciting the requirements of the system. I used this method concurrently with the interview method so as to get first hand information. The way customers/passengers were served was keenly observed and noted down which I then used to determine the requirements.
iv. SCENARIOSThese are sequences of actions that accomplish a user task. Scenarios show important capability or proposed use of the system.I carried out this elicitation method informally where I worked with the stakeholders (managers, clerks and some passengers) to identify scenarios and capture details of these scenarios.The scenarios we identified include the following: -
Scenario on the passenger’s point of viewa) The passenger enters the URL address of the system public area’s first page at
the Internet browser’s address field and then clicking on ‘go’ link or pressing the ‘enter’ key once.
b) On this first web page, the passenger fills the form by entering his/her personal details (e.g. full name, id number etc.) which are relevant. Also he/she selects a departure town, destination town and date of travel. Then, after filling the fields correctly, he/she clicks on the ‘Submit’ button.
c) Another page is then displayed containing the available departure times of the specified journey (i.e. departure town, destination town and date of travel). After selecting the preferred departure time then clicking on the ‘Submit’ button.
d) Another page is displayed containing the available seat numbers of the specified journey (i.e. departure town, destination town, date of travel and departure time). After choosing the desired seat number the passenger will then click on the ‘Generate Ticket’ button.
e) A web page containing a printable ticket will then be displayed on the browser window. The ticket will be printed in pdf format.
f) And finally, that marks the successful completion of the seat booking process.
Scenario on the clerk’s point of viewa) The clerk enters the URL address of the system staff area’s login page at the
Internet browser’s address field and then clicking on ‘go’ link or pressing the ‘enter’ key once.
b) On this login page, the clerk enters his/her login details and then click on the ‘Login’ button.
c) When the details are invalid, he/she will be given a chance to retry but not more than thrice.
d) But when he/she has been authenticated, another web page will be displayed which will contain the homepage of the User Area.
e) Once in the User Area, the clerk can Manage Passengers’ Payment Details.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 34
f) The clerk will also be able to logout.
Scenario on the system administrator’s point of viewa) The administrator enters the URL address of the system staff area’s login page
at the Internet browser’s address field and then clicking on ‘go’ link or pressing the ‘enter’ key once.
b) On this login page, the clerk enters his/her login details and then click on the ‘Login’ button.
c) When the details are invalid, he/she will be given a chance to retry but not more than thrice.
d) But when he/she has been authenticated, another web page will be displayed which will contain the homepage of the Administration Area.
e) Once in the Administration Area, the administrator can Add/Remove Users and Manage System Contents.
f) The administrator will also be able to logout.
6.2 REQUIREMENTS STRUCTURING
During this part, I focused on Data Flow Diagrams (DFDs) which I used to structure information.A data flow is a graphic that illustrates the movement of data between external entities and the processes and data stores within a system.The four symbols used in DFDs represent data flows, data stores, processes, and sources/sinks (or external entities). The set of four symbols I used was developed by Gane and Sarson as illustrated below: -
Data Flow
Data Store
Process
Source/Sink
The following are DFDs that I used: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 35
The context diagram for Online PSV Booking Management System
The level-0 diagram for Online PSV Booking Management System
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 36
PASSENGER BOOKING CLERKPassenger & Journey Details
0Online PSV Booking Management System
Bus Ticket
Passenger Ticket Number
Ticket Payment/Revocation Confirmation
SYSTEMS ADMINISTRATOR
Administrative RequestAdministrative Feedback
PASSENGER BOOKING CLERK
SYSTEMS ADMINIS-TRATOR
1.0Receive and Transform Passenger’s and Journey Details
Passenger and Journey Details
Bus Ticket
2.0Update Occupied Seats File
Occupied Seat
Occupied_seats Table
3.0Manage Passenger’s
Payment
Passenger Ticket Number
Ticket Payment/Revocation Confirmation
4.0Produce Administrative Reports
Request
Feedback
Amount of Booked Seats per Specific Journey
Payment Status
CHAPTER 7: SOFTWARE REQUIREMENTS SPECIFICATION (SRS) DOCUMENT After a thorough analysis of the requirements I had gathered, I decided to write down a Software Requirements Specification Document.The SRS document is as shown below: -
1. INTRODUCTIONThis specification document contains details that are useful during the next phase (Design Phase of the System development) and a Testing phase. Designs and tests can be constructed directly from this SRS document.
1.1 PurposeThe SRS document is a product of Software Requirements Definition phase. It contains all the requirements that the stakeholders of the system to be developed want to be available in that system once it becomes operational.This SRS document is written so as to be the guideline to use during Design phase and Testing phase.
1.2 ScopeThe expected product of the project is an Online PSV Booking Management System. This system is intended to make it possible for the passengers to book for their seats online anywhere they are as long as there’s internet connectivity. During booking process, the system should also be able to generate a provisional passenger ticket. Also, the system should allow the company’s employees to do their official duties online.
Benefits of the system to be developedi. Seat booking process done by the passengers will be convenient since they will
be able to book seats online hence no need to go physically to the booking
office.
ii. Double booking will be avoided due to the accuracy of the system. Booking
process will be error free.
iii. Booking records will be able to be retrieved as desired at a faster rate due to the
random filing system which is located at the hard disk
iv. Congestion at the booking office will be greatly reduced since many
passengers may prefer online services.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 37
v. Company’s staff members will be able to perform their duties related to
journey activities online hence they can work outside their offices.
Goals of the system to be developedTo increase the efficiency of passenger/customer service at the Simba Coach
Bus Limited Company.
To minimize congestion at the booking offices.
To improve the effectiveness and efficiency of the duties performed by the
company’s employees.
To avoid double-booking.
To minimize greatly paper work hence making the offices presentable due to
lack of old paper files that may be on the shelves, tables, etc.
1.3 DefinitionsThis section identifies all terms, acronyms and abbreviations used in the specification.
SRS – Software Requirements SpecificationPSV – Passenger Service VehicleMB – MegabytesRAM – Random Access MemoryHDD – Hard Disk DriveMHZ – Mega HertzCPU – Central Processing Unit
1.4 ReferencesSoftware Engineering I lecture notes by Dr. MapeluSoftware Engineering by Ian Sommerville
1.5 OverviewThe rest of this SRS document contains the required functionalities, external interface requirements, performance requirements and design constraints of the system to be developed.
2. OVERALL DESCRIPTIONThis section of the document is intended to provide the background to understand the user requirements.
2.1 Product Perspective This sub-section is intended to put the product (system to be developed) into perspective with other products.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 38
Constraints specificationSince the system to be developed will offer its services over the Internet, the hardware and software that will be used to get access to the system may differ greatly.For instance, the most important software that will be play a crucial part during access to this system is the Internet browser. There are several browsers which to come extent interpret web pages differently. Due to this reason, the system to be developed should ensure that there is consistency of the system interface with all these browsers.
User interfaceThe recommended user-interface is the Graphical User Interface. This interface should offer learnability to the system users.
HardwareThe system should be able to run on the currently used computer hardware.
Other softwareThe system should be compatible with the software that will have to be used in parallel with the system so as for the system to deliver as expected. Memory ConstraintsThe system should be able to run on the systems having a minimum of 256 MB of RAM and above.
OperationsThe system should operate as expected by its users.
2.2 Product FunctionsThe system to be developed should perform the following functions:
o The system should enable the bus company’s passengers to book for their bus seats online.
o The system should make it possible for the staff of the company to manage and administer their duties related to the journey activities online.
2.3 User CharacteristicsUsers are categorized into 3 categories: -
Novice: - who don’t have syntactic knowledge of the system and little semantic knowledge of the application.
Knowledge intermittent (operational): - Users under this category have reasonable semantic knowledge of the application but relatively low recall on syntactic information necessary to use the interface of the system
Knowledge frequent users (Advanced users): - These users have good semantic and syntactic knowledge that often lead to the power-user-syndrome.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 39
The bus company may provide advertisements, if necessary, so as to offer training to its passengers on how to use their newly developed system.Also, training will have to be done to the company’s booking clerks so as to know how to manage passengers’ payment details online.Moreover, the system administrator will also have to be trained on how to administrate.
2.4 ConstraintsThe following system development constraints were identified: -
Resource constraint Technical constraint Cost constraint Time constraint Operational constraint
3. SPECIFIC REQUIREMENTSThis section of this document provides details that may enable designs and tests to be constructed directly from the SRS.
3.1 External Interface RequirementsThis sub section describes all inputs and outputs of the system
Inputs and outputs on the passenger’s point of view The inputs should be the relevant passenger’s personal details and the details of
his/her journey specification (e.g. departure town, destination town, date of travel, departure time and seat number)
The output should be an auto-generated passenger ticket.
Inputs and outputs on the booking clerk’s point of view After being authenticated, the input should be the passenger’s ticket number
while the output should be a message confirming the process of either making/revoking payment of the seat has been successfully.
Inputs and outputs on the system administrator point of view After being authenticated, the inputs should be the relevant details whereas the
outputs should be a printable reports or messages confirming either a successful or a failure in doing a particular task.
3.2 FunctionsThis section is concerned with describing all the functions of the system.
Validity checks on inputsThe input data should be validated by use of any appropriate means before undergoing processing so as to avoid unambiguous outputs.
Response to abnormal situations
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 40
When the system behaves abnormally on the passenger’s point of view, the system should not accept unexpected data types from the client machine. Then the system should offer a self explanatory error message.
On the clerk’s point of view, when abnormal situations occur, the system should behave as in the case of the passenger’s point of view as described above. Furthermore, the system should provide mechanisms to enable system administrators to conduct audit of the system’s behavior so as to detect any abnormal situations and then offer capabilities of corrective and preventive measures.
Relation between inputs and outputsThe relationship between inputs and the associated outputs should be clearly seen. For instance, input user details during log in process should ensure authentication when the details are valid.
3.3 Performance RequirementsThis section describes both the static and dynamic requirements of the yet to be developed Online PSV Booking Management System.
Dynamic Requirements.A key presses or mouse clicks operations should be accomplished within the first 100 milliseconds.
Static RequirementsMinimum of 64 MB RAM, 500MB free space of HDDA minimum of 500MHZ of CPU clock speed.Any 32 bit or higher operating system e.g. Windows 98, XP, Vista et cetera..
3.4 Design ConstraintsThe design of the system should ensure that the user requirements are meant and also provide mechanisms to include future requirements to the system.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 41
CHAPTER 8: SYSTEM DESIGN SPECIFICATION
8.0 INTRODUCTION
Design involves conceiving and planning out in the mind and making a drawing, pattern or sketch of something. The design is divided into FOUR design elements namely:-
Data/Class design Architectural design Interface design Component level design
8.1 DATA DESIGN
During this design, the information domain model created in the requirement analysis is transformed into a data structure. The basis of this is the data dictionary. MySQL Database Management System is used to create and store the database. The basis for this was the Entity Relationship Diagram and data dictionary in the analysis modeling.
Data design consideration included: -
Database designI designed a database and called it ‘psv_db’. This database will contain 15 tables. These tables are named as follows:- conditions, drivers_details, journey_details, journey_route_details, journey_times, journey_vehicles, occupied_seats, passengers_details, psv_admin, routes_details, seats, security_questions, staff_added, staff_answers and staff_privileges.
Designing Table FieldsA field is the smallest unit of application data recognized by system software. An attribute from a logical database model may be represented by several fields e.g. a passenger’s name may be represented as 3 fields i.e. surname, first name and first name.The basic decision which was a must for me to make in specifying each field concerned the type of data (or storage type) and the data integrity control for the field.
Designing Physical TablesA physical table is a named set of rows and columns that specifies the fields in each row of task. It may or may not correspond to one relation.I found it good to design the physical tables so as to achieve efficient use of secondary storage and data processing speed.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 42
DemoralizationAfter I normalized all the relation that will be used, I did demoralization which refers to the process of splitting (partitioning or combining normalized relations into physical table based on affinity of rows and fields.
Database name: psv_db
Samples of the data tables I designed include the following: -
Table 1: Table structure for table passengers_details for storing passengers’ personal details
Field Name Data Type Null Default Valuepassenger_code int(11) Noid_number mediumint(20) Nofirst_name varchar(20) Nomiddle_name varchar(20) Yes NULLphone_number varchar(20) Noemail varchar(40) Noage_category varchar(10) Nobooking_time datetime No
Table 2: Table structure for table occupied_seats for recording booked seats
Field Name Data Type Null Default Valueticket_number int(11) Nopassenger_code int(11) Nojourney_id mediumint(9) Nodate_of_travel date Nodate_of_issue datetime Noseat_number varchar(2) Nodue_date datetime Nopayment_date datetime Norevoke_date datetime Nostatus tinyint(4) No 0
8.2 ARCHITECTURAL DESIGN
In this design, the conceptual view of the Online PSV Booking Management System is refined, internal processing functions are identified and high level functions are decomposed into sub functions. Furthermore, it defines the relationship between major structural elements of a software, the architectural styles and design pattern that can be used to achieve requirements
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 43
Primary key (field)
Primary key (field)
defined for the system and the constraints that affect the way in which architectural can be implemented.The Online PSV Booking Management System is divided into two major categories, namely; Public Area and Staff Area.
The modules that make up the architecture of the systems are as follows:
Public Area
Entry of Passengers’ and Journey Details: - This is done at the first web page of the system. The passenger is required to fill the displayed form on this page. Once all the fields are filled correctly, what would have been captured is the passenger’s personal details, his/her date of journey, departure town and destination town. Then the passenger will be required to click the submit button so as all these details will be stored at the appropriate tables of this system’s database (psv_db database).
Departure time chooser: - This module is called immediately after the passenger has clicked the submit button after correctly filling the form of the Entry of Passengers’ and Journey Details module. It provides the passenger with an interface that contains the available departure times of his/her specified journey (i.e. date of journey, departure town and destination town). The passenger will be required to select his/her preferred departure time then clicking the submit button so as the selected time to be stored at the appropriate tables of this system’s database.
Seat number chooser: - This module is immediately called after the passenger has selected his/her preferred departure time and then clicking on submit button of the previous Departure time chooser module. This module provides the currently available seat numbers of the passenger’s specified journey (i.e. date of travel, departure town, destination town and departure time). Then the passenger will have to select his/her desired seat number then click on Generate Ticket button so as the selected seat number to be stored at the appropriate tables of this system’s database.
Ticket generator: - This module is called immediately after Seat number chooser module. It is responsible for generating the passenger’s provisional ticket that contains the relevant passenger’s and journey details.
The below structure chart illustrates the system’s architecture of the Public Area:
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 44
Entry of Passenger’s and Journey Details
Departure time chooser
Seat number chooser
Ticket generator
Staff Area
System Login: - If the system is running for the first time, the administrator is requested to set up the first administrator account. If the system has been run before, it requests for username, password and privilege type which if valid allows the loading of the rest off the system’s Staff Area as per the given privilege. If the login details are invalid an error message is generated and the user is allowed to attempt to login again. If the user provides the wrong details thrice, the login button is disabled and the user is forced to exit the system.
Clerk’s Area: - This module will be immediately called when the privilege of clerk is selected at the system login display and then the login button clicked. This area contains the link to the Public Area, logout button and Clerk’s Menu which contains only one item i.e. Manage Passengers’ Payment Detailss.
Manage Passengers’ Payment Details: - This module of the clerk’s area will be immediately called when the clerk clicks on the Manage Passengers’ Payment Details menu item. It is responsible to make/revoke payments done by the passengers.
Admin Area: - This module will be immediately called when the privilege of admin (which means administrator) is selected at the system login display and then the login button clicked. This area contains a link to the Public Area, logout button and the Admin’s Menu which contains four items namely; Manage Website Content, Add Staff User, Delete Staff User and Logout button.
Add Staff User: - This module which is called when the administrator clicks on the Add Staff User on the Admin Area, is responsible for adding new users of the system. That is, new administrators and clerks.
Delete Staff User: - This module which is called when the administrator clicks on the Delete Staff User on the Administration Area, is responsible for removing new users of the system.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 45
Manage Website Content: - This module is called immediately after the administrator has clicked on the Manage Website Content at the Admin Area. It contains a menu of ten items, namely; Drivers’ Details, Journey Conditions, Journey Details, Journey Report, Manage Passengers’ Payment Details, Passengers’ details, Route Details, Seats, Staff Details and Staff Privileges.
Drivers’ Details: - This module which is called as a result of the Administrator clicking on the Drivers’ Details menu item of the Manage Website Content, allows the administrator to view/add/delete/update drivers’ details.
Journey Conditions: - This module which is called as a result of the Administrator clicking on the Journey Conditions menu item of the Manage Website Content, allows the administrator to view/add/delete/update the journey conditions.
Journey Details: - This module which is called as a result of the Administrator clicking on the Journey Details menu item of the Manage Website Content, allows the administrator to view/add/delete/update the journey details.
Journey Report: - This module which is called as a result of the Administrator clicking on the Journey Report menu item of the Manage Website Content, allows the administrator to generate the relevant journey reports.
Manage Passengers’ Payment Details: - Journey Details: - This module which is called as a result of the Administrator clicking on the Manage Passengers’ Payment Details menu item of the Manage Website Content, allows the administrator make/revoke passengers’ payments.
Passengers’ Details: - This module which is called as a result of the Administrator clicking on the Passengers’ Details menu item of the Manage Website Content, allows the administrator to view/add/delete/update the passengers’ details.
Route Details: - This module which is called as a result of the Administrator clicking on the Route Details menu item of the Manage Website Content, allows the administrator to view/add/delete/update the route details.
Seats: - This module which is called as a result of the Administrator clicking on the Seats menu item of the Manage Website Content, allows the administrator to view/add/delete the bus seats.
Staff Details: - This module which is called as a result of the Administrator clicking on the Staff Details menu item of the Manage Website Content, allows the administrator to view/add/delete the staff details.
Staff Privileges: - This module which is called as a result of the Administrator clicking on the Staff Privileges menu item of the Manage Website Content, allows the administrator to view/add/delete/update the staff privileges. Staff privileges include admin, clerk, et cetera.
The below structure chart illustrates the system’s architecture of the Staff Area:
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 46
User Area
System Login
Clerk Area
Manage Passengers Payment details
Logout
Admin Area
System Login
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 47
Manage System Content
LogoutDelete Staff User
Add Staff User
Admin Area
8.3 INTERFACE DESIGN
In this design, I describe how I designed the software to communicate with system that interoperates with it, and with human that use it. Interface implies a flow of information and specific types of behavior.
The type of interface I preferred to use is Graphical User Interface (GUI).
The goals for the user interface of the Online PSV Booking Management System are:
o Consistency and familiarity
o Understandability and learnability
o Task support and efficiency
The following shows the interfaces that have implemented in this system; -
Public Area
First Web Page of the Public Area
When the URL of the first page of this Online PSV Booking Management System‘s Public
Area (http://localhost/psv/index.php) is entered on the Internet browser’s URL address field
and then pressing once the keyboard’s ‘Enter’ key or by clicking on the ‘go’ link on the
browser window, the below web page will be displayed that contains a Form that a passenger
will be required to fill his/her personal details and journey details.
The webpage will also provide the passenger with relevant links to other documents. The links
are: -
Home
Booking
Journey Details
Journey Days
Journey Conditions
Regenerate Ticket
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 48
The interface of this page is as shown below: -
Departure Time Chooser Interface
Once the submit button of the form of the first page has been clicked after correctly filling its
form fields, the Departure Time Chooser webpage will be displayed on the browser window.
Its interface is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 49
Seat Number Chooser Interface
Immediately after the passenger has selected his/her preferred departure time and then clicking
on the submit button from the Departure Time Chooser Interface, another web page will be
displayed. This page will enable the passenger to select his/her preferred departure time as per
the passenger’s journey specification.
The interface of this page is as below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 50
Ticket Generator Interface
When the passenger has selected his preferred seat number and then clicked on Generate
Ticket button, another page will be displayed on the browser window. This page will contain a
printable passenger’s ticket. The interface of this page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 51
Staff Area
Staff Login Interface
This interface is used on the first web page of the Online PSV Booking Management System’s
Staff Area.
It is used to allow only the authenticated users to the rest of the system’s staff area. The
interface also has a link to reset password or to get a new password if a user forgets his/her
password.
The interface is as follows: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 52
Administration Area InterfaceWhen the administrator has been authenticated, a web page containing the Admin Area features will be displayed. The interface of this page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 53
User Area InterfaceWhen the other user except administrator has been authenticated, a web page containing the User Area features will be displayed. The interface of this page is as shown below: -
8.4 COMPONENT LEVEL DESIGN
During this design, I transformed the structural elements of the software architecture into a procedural description of software components.
In this design, pseudo code and structured flow charts are used.
Pseudo code Design SpecificationThis is used in internal design at any level of abstraction. Here, a designer describe system characteristics using short, concise English language phrases that are structured by key words.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 54
These key words and indentation describe the flow of control while English words describe processing actions.
Pseudo code for staff login1. The user will have to go to login page.2. Have the user fill out the form fields with the required details.3. Then, have the page process the fields’ contents, compare them with the associated
contents in the MySQL database. If the details are valid then go to step 5, if not go to step 4
4. Show error message5. Start session, go to default redirect after login6. Let the person do whatever he/she wants
… two possibilities… 7 (a). The user is on for a prolonged period of time or their computers goes away. 8 (a). What happens next? Does the computer automatically logout? 9 (a). Complete 7 (b). The user logs out 8 (b). End session 9 (b). Complete
Pseudo code for retrieving departure times for the specified journey
START programINITIALIZE psv DatabaseOPEN tables
SELECT journey_code FROM journey_route_details Table WHERE origin Field = departure town chosen AND destination Field = destination town chosenEXTRACT journey_codeIF journey_code is available THEN
journey_code = extracted journey_codeELSE
DISPLAY message of unavailability and offer retry optionEND IF
SELECT journey_idFROM journey_times TableWHERE journey_code Field = journey_codeEXTRACT journey_idsIF journey_ids are available THEN
journey_ids = extracted journey_idsELSE
DISPLAY message of unavailability and offer retry optionEND IF
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 55
FOR (i=0;i<number of journey_ids;i++)Journey_id = journey_ids[i]SELECT journey_id FROM journey_days TableWHERE journey_id Field = journey_idAND days Field = day of travel chosenEXTRACT journey_idavailable_ids STORED IN AN ARRAY = extracted journey_id
END FOR IF available_ids is not empty THEN
SELECT departure_time FROM journey_times TableWHERE journey_code Field = journey_codeEXTRACT departure_timesDeparture_times STORED IN AN ARRAY = extracted departure_timesOUTPUT departure_times
ELSEDISPLAY message of unavailability and offer retry option
END IF CLOSE TablesCLOSE psv DatabaseTERMINATE program
Pseudo code for retrieving seat numbers for the specified journeySTART programINITIALIZE psv DatabaseOPEN Tables
SELECT journey_id FROM journey_times TableWHERE journey_code Field = journey_code AND departure_time Field = departure_timeEXTRACT journey_idJourney_id = extracted journey_id
// retrieving the booked seats for the specified journeySELECT seat_number FROM occupied_seats TableWHERE journey_id Field = journey_id AND date_of_travel Field = travel date chosenEXTRACT occupied_seat_numbersoccupied_seat_numbers STORED IN AN ARRAY = extracted occupied_seat_numbers
//getting the unbooked seatsunbooked_seat_numbers = seat numbers that are belong to total_seat_numbers but not
in occupied_seat_numbers
OUTPUT unbooked_seat_numbersCLOSE TablesCLOSE psv DatabaseTERMINATE program
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 56
Structured Flow Charts
Structured flow charts differ from traditional flow charts in that structured flow charts are restricted to compositions of certain basic forms. This makes the structured flow chart the graphical equivalent of pseudo code description.
Structured flow chart for staff login
Structured flow chart for retrieving departure times for the specified journey
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 57
START
INITIALIZE psv Database
OPEN Tables
Yes
User’s details Valid
Display error message and offer a retry not more than thrice
Display either Administration Area or Staff Area according to the specified privilege
INPUT user’s details
Start
NO
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 58
INPUT journey_code
IF journey_code Available
False
True
OUTPUT error message
INPUT journey_ids
IF Available journey_ids
OUTPUT error message
False
True
INPUT available_ids
IF available_ids NOT Empty
True
INPUT departure_times
OUTPUT error message
False
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 59
OUTPUT departure_times
CLOSE Tables
CLOSE psv Database
TERMINATE
IF departure_times NOT Empty
True
OUTPUT error message
CHAPTER 9: IMPLEMENTATION
9.0 INTRODUCTION
During this phase, design specifications are converted to code. The goal here is to write a code so that verification of conformity with specification is easy and also debugging, testing and maintenance can be eased.The properties of good source code that I took into consideration include: -
Clarity: - this has to be achieved by using structured coding techniques, good coding styles, good internal comments, features in modern programming languages, and appropriate supporting documents
Simplicity Elegance
The major aim of this section of the documentation is to show the code that was used in major parts of the system. This is to enhance the maintainability of the system. Coding is done in PHP which is a server-side language, MySQL statements and JavaScript which is a client-side scripting language.
9.1 MOST IMPORTANT SAMPLE CODE SEGMENTS
Sample code segments that were used to implement the most important parts of this Online PSV Booking Management System include: -
Code to connect to the MySQL Database Management System and consequently selecting the database (psv_db database) to be used.
<?phpinclude($_SERVER['DOCUMENT_ROOT'].'/psv/functions/basics.php');$conn = mysql_connect("localhost", "root", "") or
die("could not connect to database"); //connecting to the MySQL DBMSmysql_select_db("psv_db", $conn) or
die("could not select the database"); //selecting psv_db database
define("PAGE_LIMIT", 2); // PAGE_LIMIT constant decides the number of entries that will be viewable on each page ?>
Code segment to display a form to be filled by a passenger by feeding in his/her personal details and preferred journey details
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 60
<form action="/psv/form_processor/details.php" name="passenger_details" id="passenger_details" onsubmit="return check_valid('passenger_details');" enctype="multipart/form-data" method="post">
<fieldset><legend>Fill in Your Personal Information in the Fields
below</legend><p>
<label for="id_number">ID Number:</label>
<input class="text" type="text" name="id_number" id="id_number" maxlength="15" />
</p><br /><p>
<label for="last_name">Last Name:</label>
<input class="text" type="text" name="last_name" id="last_name" maxlength="15" />
</p><p>
<label for="first_name">First Name:</label>
<input class="text" type="text" name="first_name" id="first_name" maxlength="15" />
</p><p>
<label for="middle_name">Middle Name:</label>
<input class="text" type="text" name="middle_name" id="middle_name" maxlength="15" />
</p><br /><p>
<label for="phone_number">Phone Number:</label>
<input class="text" type="text" name="phone_number" id="phone_number" maxlength="15" />
</p><p>
<label for="email">Email Address:</label>
<input class="text" type="email" name="email" id="email" maxlength="15" />
</p><br /><p>
<label for="age_category">Age Category:</label>
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 61
<select class="select" name="age_category" id="age_category">
<option value="adult" selected="selected">Adult</option>
<option value="child">Child</option></select>
</p></fieldset><fieldset>
<legend>Fill in Your Journey Details in the Fields below</legend>
<p>
<table class="datatable"><tr><td><label>Date of Journey:</label></td>
<td><select id="dateOfJourney" name="date">
<option value="" selected>---Date---</option>
<?phpfor($date=1;$date<=31;$date++){echo "<option value=\"".$date."\">".
$date."</option>";}
?></select></td>
<td><select id="monthOfJourney" name="month" >
<option value="" selected>---Month---</option>
<option value="1">January</option><option value="2">February</option><option value="3">March</option><option value="4">April</option><option value="5">May</option><option value="6">June</option><option value="7">July</option><option value="8">August</option><option value="9">September</option><option value="10">October</option><option value="11">November</option><option value="12">December</option>
</select>
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 62
</td>
<td><select id="yearOfJourney" name="year"><option value="" selected>---Year---</option><?php$year=date('Y');for($count=$year;$count<=$year+1;$count++){echo "<option
value=\"".$count."\">".$count."</option>";}?></select></td></tr><tr>
<td><label>From:</label></td><td><select name="origin"><option value=""
selected>---Select---</option><?php $query="select distinct origin
from journey_route_details"; $result_set=safe_query($query);
$num_rows=mysql_num_rows($result_set);
while($result=mysql_fetch_array($result_set)) { for($count=$num_rows;
$count<$num_rows+1;$count++) {
echo "<option value=\"".$result['origin']."\">".$result['origin']."</option>";
} }
?> </select></td>
<td><label>Destination:</label></td><td><select name="destination"><option value="" selected>---
Select---</option>
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 63
<?php$query2="select
distinct destination from journey_route_details";
$result_set2=safe_query($query2);
$num_rows2=mysql_num_rows($result_set2);
while($result2=mysql_fetch_array($result_set2)) {
for($count=$num_rows2;$count<$num_rows2+1;$count++)
{ echo
"<option value=\"".$result2['destination']."\">".$result2['destination']."</option>"; } }
?> </select></td>
</tr> </table>
</p></fieldset>
<input type="submit" name"submit" value="Submit" /> <input type="reset" name="reset" />
</form>
Code segment used to receive passenger’s and journey details and then writing these details into their appropriate tables of the system’s database (psv_db database).<?php//some codes missing here$booking_time = date("Y-m-d H:i:s");
$query = "insert into passengers_details "." (id_number, last_name, first_name, middle_name, phone_number,
email, age_category, booking_time) values "." ('$id_number', '$last_name', '$first_name', '$middle_name',
'$phone_number', '$email', '$age_category', '$booking_time')";
//inserting the details into the tablesafe_query($query);
//check if the insertion was successfulif((mysql_affected_rows()>0)){
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 64
echo "<h2>Hello $first_name $last_name!! Your details have been Received!</h2>\n";
echo "<br>Choose your departure time from the available ones below, and then click on submit button so as <br> for available seat numbers to be autogenerated <br>and then select one from them. ";
return $booking_time;
}
else{//the message have not been insertedecho "Error while Inserting!. Go back and try again..<br>";echo "If error persist contact the webmaster";exit();}
Code segment used to retrieve available departure times for the specified journey (departure town and destination town selected).
<select name="departure_time"><option value="">---Departure
Time---</option><?php
$query = "select departure_time "."from
journey_times "."where
journey_code = \"$journey_code\" ";$result_set = safe_query($query);while($result =
mysql_fetch_array($result_set)) {
echo "<option value=\"".$result['departure_time']."\">".$result['departure_time']."</option>";
}?></select>
Code segment used to retrieve available seat numbers for the specified journey (departure town, destination town and departure time selected).<select name="seat_number">
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 65
<option value="" selected="selected">---Seat Number---</option>
<?php//Retrieving
the occupied seats for the given passenger_code and journey_code$query =
"select seat_number "
."from occupied_seats "
."where journey_id = \"$journey_id\" and date_of_travel = \"$date_of_travel\"";$result_set =
safe_query($query);
//$occupied_seats = mysql_fetch_array($result_set);
$num_occupied = mysql_num_rows($result_set);
$occupied_seats = array();
while($occupied = mysql_fetch_array($result_set)){
array_push($occupied_seats, $occupied['seat_number']);}
//Retrieving all the seats
$query1 = "select seat_number from seats";
$result_set1 = safe_query($query1);
//$seats = mysql_fetch_array($result_set1);
$total_seats = mysql_num_rows($result_set1);
$all_seats = array();
while($seats = mysql_fetch_array($result_set1))
{
array_push($all_seats, $seats['seat_number']);}
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 66
//getting the unoccupied seats
$unoccupied_seats = array_diff($all_seats, $occupied_seats);
$num_unoccupied = count($unoccupied_seats);
for($i=0;$i<$num_unoccupied;$i++){
echo "<option value=\"".$unoccupied_seats[$i]."\">".$unoccupied_seats[$i]."</option>";
}
?></select>
Code segment used to generate a passenger ticket<table class="datatable">
<caption><img src="/psv/images/simba2.png" align="left" width="150" height="55" /><br /> BUS TICKET <img id="detailForm:btnPrint" src="/psv/images/printer.gif" align="right" onclick="window.location='printticket.php'" title="Print" /></caption>
<tr><td><legend>Ticket No.</legend><br /><font
color="#663300"><?php echo $ticket_number; ?></font></td><td><legend>Vehicle No.</legend><br /><font
color="#663300"><?php echo $vehicle_number; ?></font></td><td><legend>Seat Number</legend><br /><font
color="#663300"><?php echo $seat_number; ?></font></td></tr><tr class="altrow">
<td><legend>Name</legend><br /><font color="#663300"><?php echo $first_name;?> <?php echo $last_name; ?></font></td>
<td><legend>ID Number</legend><br /><font color="#663300"><?php echo $id_number; ?></font></td>
<td><legend>Phone Number</legend><br /><font color="#663300"><?php echo $phone_number; ?></font></td>
</tr><tr>
<td><legend>From</legend><br /><font color="#663300"><?php echo $origin; ?></font></td>
<td><legend>To</legend><br /><font color="#663300"><?php echo $destination; ?></font></td>
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 67
<td><legend>Fare (Ksh)</legend><br /><font color="#663300"><?php echo $fare_ksh; ?></font></td>
</tr><tr class="altrow">
<td colspan="2"><legend>Date of Issue</legend><br /><font color="#663300"><?php echo $date_of_issue; ?></font></td>
<td><legend>Date of Travel</legend><br /><font color="#663300"><?php echo $date_of_travel; ?></font></td>
</tr><tr>
<td colspan="2" ><legend>Reporting Time</legend><br /><font color="#663300"><?php echo $reporting_time; ?> Hrs (24-hour clock system)</font></td>
<td ><legend>Departure Time</legend><br /><font color="#663300"><?php echo $departure_time ; ?> Hrs (24-hour clock system)</font></td>
</tr><tr class="altrow">
<td colspan="1"><legend>Journey ID</legend><br /><font color="#663300"><?php echo $journey_id; ?></font></td>
<td colspan="2"> <?php echo $terms; ?></td></tr><tr>
<td align="left" valign="middle" colspan="3"> Make sure you pay at any of our booking office latest 30 minutes before
<font color="#CC3300"> <?php echo $due_date; ?> AM </font> <br /> or much earlier otherwise your seat will be set unbooked.<br /> After payment, this ticket will be stamped by any authorised Simba Coach Limited staff member. <br />You will only be allowed to travel with a stamped ticket <br />
The date-time is in the format: yyyy-mm-dd hh-mm-ss </td>
</tr><tr>
<td colspan="3">*This ticket is computer generated and therefore not stamped. It is a valid ticket issued under the authority of Simba Coach Bus Limited.</td>
</tr></table>
A sample of JavaScript code segment used to validate data input at the form’s fields//verify ID numberfunction verify_idnumber (strng) {var illegalChars = /\W/; // allow letters, numbers, and underscoresvar error = "";if (strng == "") { error = "You didn't enter your ID number.\n\n";}else if ((strng.length < 5) || (strng.length > 15)) { error = "Your ID number has an illogical length.\n\n";
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 68
}else if (illegalChars.test(strng)) { error = "Your ID number contains illegal characters.\n\tFor example: blank space.\n\n"; }else{}return error;}
// verify names - 610 chars, uc, lc, and underscore only.function verify_lastname (strng) {var illegalChars = /\W/; // allow letters, numbers, and underscoresvar error = "";if (strng == "") { error = "You didn't enter you last name.\n\n";}else if ((strng.length < 2) || (strng.length > 15)) { error = "Your last name has an illogical length.\n\n";}else if (illegalChars.test(strng)) { error = "Your last name contains illegal characters.\n\tFor example: blank space.\n\n";}else{}return error;}function verify_firstname (strng) {var illegalChars = /\W/; // allow letters, numbers, and underscoresvar error = "";if (strng == "") { error = "You didn't enter your first name.\n\n";}else if ((strng.length < 2) || (strng.length > 15)) { error = "Your first name has an illogical length.\n\n";}else if (illegalChars.test(strng)) { error = "Your first name contains illegal characters.\n\tFor example: blank space.\n\n";}else {}return error;}function verify_middlename (strng) {var illegalChars = /\W/; // allow letters, numbers, and underscoresvar error = "";if ((strng.length == 1) || (strng.length > 15)) { error = "Your middle name has an illogical length.\n\n";}else if (illegalChars.test(strng)) { error = "Your middle name contains illegal characters.\n\tFor example: blank space.\n\n";}else {}return error;}
// verify phone number - strip out delimiters and verify for 10 digitsfunction verify_phonenumber (strng) {
//strip out acceptable non-numeric characters//var stripped = strng.replace(/[\(\)\.\-\ ]/g, '');
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 69
var error = "";if (strng == "") { error = "You didn't enter the your phone number.\n\n";
}else{} return error;}
// verify emailfunction verify_email (strng) {var emailFilter=/^.+@.+\..{2,3}$/;var error="";if (strng == "") { error = "You didn't enter your email address.\n\n";}else if (!(emailFilter.test(strng))) { error = "Please enter a valid email address.\n\n";}else {//test email for illegal characters var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ if (strng.match(illegalChars)) { error = "The email address contains illegal characters.\n\tFor example: blank space.\n\n"; }}return error;}
function verify_date(strng){var error = "";
if (strng == "") { error = "You didn't choose Date!!.\n\n";}return error;}
function verify_month(strng){var error = "";
if (strng == "") { error = "You didn't choose Month!!.\n\n";}return error;}
function verify_year(strng){var error = "";
if (strng == "") {
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 70
error = "You didn't choose Year!!.\n\n";}return error;}
function verify_origin(strng){var error = "";
if (strng == "") { error = "You didn't choose Departure Town!!.\n\n";}return error;}
function verify_destination(strng){var error = "";
if (strng == "") { error = "You didn't choose Destination Town!!.\n\n";}return error;}
Code segment to start a session and authenticate a staff user <?phpsession_start();require_once($_SERVER['DOCUMENT_ROOT'].'/psv/header.php');if(isset($_POST['submit'])){
$username = cleanup_text(trim($_POST['username']));$privilege = cleanup_text(trim($_POST['privilege']));$password = cleanup_text(trim($_POST['password']));
$hashed_password = sha1($password);
//Check database to see if username and the hashed password exist there$query = "SELECT code, username, privilege ";$query .="FROM psv_admin ";$query .="WHERE username = '{$username}' ";$query .="AND privilege = \"$privilege\" ";$query .="AND hashed_password = '{$hashed_password}' ";$result_set = safe_query($query);
if(mysql_num_rows($result_set)==1){//username/password/privilege authenticated//and only 1 match$found_user = mysql_fetch_array($result_set);$_SESSION['sid']=1000000*microtime();
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 71
$_SESSION['user_id'] = $found_user['id'];$_SESSION['username'] = $found_user['username'];if($privilege == "admin"){
header('location: http://localhost/psv/staff/admin.php');exit(0);
}elseif($privilege == "manager"){header('location: http://localhost/psv/staff/clerk.php');exit(0);
}elseif($privilege == "clerk"){header('location: http://localhost/psv/staff/clerk.php');exit(0);
}else{$message = "There was an error. Please retry!!";header('location: http://localhost/psv/staff/login.php?message='.
$message);exit(0);
}
}else{//username/password/privilege combination was not found in the database$message = "Username/password/privilege combination incorrect.<br />
Please make sure you observe the case and try again. ";header('location: http://localhost/psv/staff/login.php?message='.$message);exit(0);
}} ?>
Code segment to only allow authenticated users to manage the system’s staff operations<?php session_start();if(!isset($_SESSION['sid'])){$message = "Please Login first";ob_end_clean();header('location: http://localhost/psv/staff/login.php?message='.$message);exit;}?>
Code segment used to make or revoke passengers payments. This will be done by an authenticated system user.<?php
//form values from passengers_payment3.phpif(isset($_POST['submit'])){//Make payment
$ticket_number = trim(cleanup_text($_POST['ticket_number']));
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 72
$query = "SELECT * ";$query .="FROM occupied_seats "; $query .="WHERE ticket_number = \"$ticket_number\" ";$result_set = safe_query($query);if((mysql_num_rows($result_set)) == 1){
$query = "SELECT * ";$query .="FROM occupied_seats "; $query .="WHERE ticket_number = \"$ticket_number\" AND
status = 0 ";$result_set = safe_query($query);if((mysql_num_rows($result_set)) == 1){
$payment_date = date("Y-m-d H:i:s");$query1 = "UPDATE occupied_seats ";$query1 .= "SET payment_date =\"$payment_date\",
status=1 ";$query1 .= "WHERE ticket_number
= \"$ticket_number\" ";safe_query($query1);
echo "Payment by a passenger with ticket of ticket number $ticket_number"; ?> <br /> <?php
echo "has been successfully been confirmed!!!";?><br /><br /><?phpecho "Please stamp the passenger's ticket with an official
Simba Coach Bus Limited stamp!!! ";}else{
echo "The payment was previously made! Payment cannot be made more than twice!! If you believe this is untrue then contact the webmaster!!!";
} }else{
echo "Ticket Number $ticket_number is invalid! If you believe this is untrue then contact the webmaster!!!";
}}
if(isset($_POST['submit1'])){//Revoke Payment
$ticket_number = trim(cleanup_text($_POST['ticket_number']));
$query = "SELECT * ";$query .="FROM occupied_seats "; $query .="WHERE ticket_number = \"$ticket_number\"";$result_set = safe_query($query);if((mysql_num_rows($result_set)) == 1){
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 73
$query = "SELECT * ";$query .="FROM occupied_seats "; $query .="WHERE ticket_number = \"$ticket_number\" AND
status = 1 ";$result_set = safe_query($query);if((mysql_num_rows($result_set)) == 1){
$revoke_date = date("Y-m-d H:i:s");$query1 = "UPDATE occupied_seats ";$query1 .= "SET revoke_date =\"$revoke_date\",
status=0 ";$query1 .= "WHERE ticket_number
= \"$ticket_number\" ";safe_query($query1);
echo "Payment by a passenger with ticket of ticket number $ticket_number"; ?> <br /> <?php
echo "has been successfully been revoked!!!";} else{
echo "The payment was not previously made! Revokement cannot be made where there was no payment!! If you believe this is untrue then contact the webmaster!!!";
} ?><br /><br /><?php }else{
echo "Ticket Number $ticket_number is invalid! If you believe this is untrue then contact the webmaster!!!";
}}
?>
The above code segments were used to implement the most important parts of Online PSV Booking Management System.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 74
CHAPTER 10: TESTING
10.0 INTRODUCTION
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.Different specifications for different computers exist. It is therefore important to test the system using computers with different specifications to determine how the system behaves.Testing is also necessary for the various inputs to ensure that the inputs conform to the required inputs so that quality is maintained. Thus all inputs must be validated and erroneous data inputs detected and errors displayed to the user.This chapter discusses the various tests performed on system using random data inputs to determine the behavior encountered compared to the expected behavior.
10.1 TYPES OF TEST CARRIED OUT
UNIT TESTING/MODULE TESTINGDuring this test, each module was tested alone to ensure that they operate properly. In other words, the test was carried out in an attempt to discover any errors in the code.Results of some of the unit tests that were carried out include: -
A test that was done for module that accepts passenger’s detailsThe module was found to function properly after several corrective measures that were taken. Now, when the passenger’s details are incomplete as required or when they are invalid, an error message appears to indicate the errors that have occurred and then offer a chance to retry. The error message is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 75
INTEGRATION TESTINGThis refers to the process of system integration that involves building a system from its components and then testing the resultant system for problems that arise from component interaction.
After thorough corrective measures, it was successfully found out that the integrated system now functions as expected. An example of one of the results of the integration testingWhen a passenger selects a date for a certain journey but the specified journey is not available on that date, an error message will be displayed then offer an opportunity to select a different date. The error message is as shown below: -
SECURITY TESTINGThis is intended to verify that protection mechanisms built into the system will protect it from improper penetration.After thorough corrective measures, the system was found to be very secure. One of the results of the security testing that was done displayed the following error message:
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 76
STRESS TESTINGThis is done to confront the system with abnormal situations.The aim of this testing is to try to find out if a system can break under abnormal situations.
One of the results of stress testing include: -When a record is needed to be written to the database with incomplete information, an error message will be displayed as shown below: -
This ensures that no incomplete record is written to the database.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 77
CHAPTER 11: RESULTS AND DISCUSSION
11.0 INTRODUCTION
This chapter brings out the overall view of how the Online PSV Booking Management System
offer services to both the passengers and the company’s employees. Therefore, the system is
divided into two major parts, namely: -
i. Public Area: - This is the area where the passengers visit once they enter the
home URL of this system’s site. At the home page, the passenger will be
required to fill the provided fields for his/her personal and journey details. After
that, a provisional ticket will be auto generated which will also contain the
relevant journey conditions.
ii. Staff Area: - This is the area whereby the company’s employees and owners
visit once they are authenticated as per their usernames, passwords, and
stipulated privilege. This area is subdivided into two sections namely: -
Administration Area and User Area.
11.1 PUBLIC AREA
When the first webpage of URL of this Online PSV Booking Management System Public area
(http://localhost/psv/index.php) is entered on the Internet browser’s URL address field and then
pressing once the keyboard’s ‘Enter’ key or by clicking on the ‘go’ link on the browser
window, the below web page will be displayed that contains a Form that a passenger will be
required to fill his/her personal details and journey details. After filling the form the passenger
will then click on submit then guided further as will be shown later in this section.
The homepage will also provide the passenger with relevant links to other documents. The
links are: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 78
Home
Booking
Journey Details
Journey Days
Journey Conditions
Regenerate Ticket
Further explanations about these links will be dealt with in later parts of this section.
The first web page of the system on this public area is as shown below: -
After filling the fields above as expecting and then clicking on the ‘submit’ button, the next
web page will be displayed containing auto generated departure times that will only fit the
passenger’s journey specifications that he/she had previously chosen i.e. departure town,
destination town and date of travel. The passenger will then have to select his/her desired
departure time and then click on submit.
This webpage which will contain auto generated fitting departure times is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 79
After the passenger has selected his/her preferred departure time and then clicked on the
‘Submit’ button, another web page will be displayed that will contain an auto generated
available seats as per the passenger’s journey specifications i.e. departure town, destination
town, date of travel and departure time.
This web page which will contain available seats is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 80
After the passenger has selected his/her desired seat number and then clicked on ‘Generate
Ticket’, another web page will be displayed on the browser window that will contain an auto
generated provisional ticket. The ticket will have to be paid for before the deadline as
stipulated on the journey conditions as specified on the ticket. Failure to meet the stipulated
conditions, the passenger’s seat will set vacant.
This webpage which will contain the provisional ticket is as shown below: -
Thereafter, the passenger will have to click on the ‘Printer Icon’ which is at the top-right most
of the ticket so as to print the ticket.
After getting a printed provisional ticket, the passenger will have to pay for the ticket before
the deadline, as specified on the ticket, at any of Simba Coach Bus Limited Company’s
booking office. Then, the Simba Coach Bus Limited Company’s clerk will stamp the
passenger’s ticket.
The passenger will only be allowed to travel with a legally stamped ticket.
11.1.1 Public Area Menu Links
The web pages at Public Area contain four (4) menu links as stated earlier. These links are: -
Home
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 81
Booking
Journey Details
Journey Days
Journey Conditions
Regenerate Ticket
Home link
When ‘Home’ link is clicked, a homepage of Simba Coach Bus Limited Company website will be
displayed. This company’s site is where this Online PSV Booking Management System will be
available.
Booking link
When ‘Booking’ link is clicked, a homepage of this system’s site will be displayed. On this page, the
passenger will be required to fill in his/her personal details and some of his/her journey details. If one is
currently at the homepage, then clicking on that link will just refresh the page.
This Booking page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 82
Journey Details link
When ‘Journey Details’ link is clicked, another web page will be displayed which will contain a table
that will hold available journey details. The journey details include departure town, destination town
and fare associated with each journey.
The web page which is linked to this Journey Details link is as shown below: -
Journey Days link
When ‘Journey Days’ link is clicked, another web page will be displayed which will contain a Form
which will require a user to fill in as expected i.e. to fill in departure town and destination town.
This web page is as shown below:-
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 83
When the ‘View Journey Days’ button is clicked after filling valid details on the form’s fields , another
webpage will be displayed which will show the travel days of the specified journey towns in a table.
This web page is as shown below: -
Journey Conditions link
When ‘Journey Conditions’ link is clicked, another web page which will contain a table that will hold
available journey conditions.
The web page which is linked to this Journey Condition link is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 84
Regenerate Ticket link
When ‘Regenerate Ticket’ link is clicked, another web page will be displayed which will contain a
Form which will require a user to fill in his/her bus ticket number.
This web page is as shown below:-
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 85
When the ticket number has been entered and the “Submit’ button clicked, the bus ticket will be
regenerated as the way it was previously. In this case, the passenger can only regenerate his/her bus
ticket only if he/she remembers the bus ticket number.
For example, say the ticket number is 185, since it was a valid ticket number, the following bus ticket
was regenerated:
When the “Printer Icon” which is located at top-right of the ticket, the ticket will be printed out if the
printer is connected to the computer or mobile phone.
11.2 STAFF AREA
As stated earlier, this area is subdivided into two sections, namely:
i. Administration Area: - This is where the overall administrative duties of the system
are performed. The only person who is authorized to get access to this area is the
System’s Administrator. He/she gets access to this area after authentication as the
required specification.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 86
ii. User Area: - This is the area where the company’s clerk gets access to after a specified
authentication. The duty performed at this area is only to manage passengers’ payments
i.e. either to make payments or to revoke payments.
Login page
When the URL address of the staff login page (http://localhost/psv/staff/login.php) is entered
on the Internet browser’s URL address field and then pressing once the keyboard’s ‘Enter’ key
or by clicking on the ‘go’ link on the browser window, the following web page will be
displayed which will contain a “Login Form”. This page will even contain links to reset
password and also to get new password if a user/administrator forgets his/her password.
The web page is as shown below: -
‘Forgot Password’ link
The ‘Forgot Password’ link will enable a user to get a newly generated password in case he/she
forgets his/her password. This will be possible once he/she clicks the link then another page
will be displayed which will require the user to fill in his/her valid username, the security
question he/she chose during sign up and the answer he/she provided to that question during
the sign up. This page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 87
When the user fills the required valid details, a newly generated password will be displayed on
the screen which he/she can then reset. This is as shown below: -
‘Reset Password’ link
Back on the login page as previously shown above, when the user clicks on the ‘Reset
Password’, another web page will be displayed which will require the user to fill in his/her
valid username, current password, new password he/she wants and then the confirmation of
this password. This web page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 88
When the details provided by the user are found to be valid, the web page as shown below will
be displayed which will contain a message of a successful password reset: -
11.2.1 Administration Area
Back to the ‘Login page’ which was shown previously, when valid user details have been filled
and then selecting an ‘Admin’ privilege, the administrator will be authenticated and taken to
the home of an ‘Administration Area’. This area will have an interface as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 89
This home area of the Administration Area will contain an Admin Menu which has the
following items: -
Manage Website Content
Add Staff User
Delete Staff User
Furthermore, it will have links to the public site/area and admin menu. In addition, it will
also have the mechanism of allowing the administrator to log out of his/her account.
‘Add staff user’ menu item
When the administrator clicks on this item, another web page will be displayed that will allow
the administrator to add new users of the system. The administrator will have to enter the
personal details of the staff member to be added as a new system user. Then the staff member
will have to choose a username, password, privilege, security question and security answer due
to login purposes and also if one wants to reset or get a new password in case he/she forgets the
password, he/she will be required to answer the security question as initially answered.
The interface of this page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 90
‘Delete staff user’ menu item
When this item is clicked, a new page will be displayed that will allow the administrator to
remove a specified system user.
This web page is as follows: -
The administrator will have to enter the user’s code and username and then click on ‘Remove
User’ button. If the given details are valid, the user will be removed as a system user else an
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 91
error message will be displayed showing that the details provided are invalid and then offer a
chance to retry.
‘Manage Website Content’ menu item
When this item is clicked on, another page will be displayed that will allow the system
administrator to manage the website content both at the public area and at the staff area. This
page is as shown below: -
This page will contain ten menu items which will allow the administrator to do a variety of
things as illustrated below.
‘Drivers’ Details’ sub-menu item
When this item is clicked, a new page will be displayed that will allow the administrator to
add/delete/update/read drivers’ details. This page is as shown below:-
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 92
‘Financial Report’
When this link is clicked, another page will be displayed which when the administrator clicks
on ‘View Financial Report’ link and then clicks on ‘View Financial Report as per the Journey’
link, yet another page will be displayed which will require the administrator to fill in the details
of the journey of which the financial report needs to be viewed and/or even printed. This web
page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 93
After filling the valid journey details (departure town, destination town, departure time and
date of travel), another page will be displayed which will contain the financial report of the
specified journey.
This page is as shown below which was as result of providing the valid journey details: -
‘Journey Conditions’ sub-menu item
When this link is clicked, another page will be displayed which will allow the administrator to
view/edit the journey/travelling conditions that the passengers will have to adhere with. These
conditions also appear on the auto generated passenger ticket.
This page is as shown below:-
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 94
‘Journey Details’ sub-menu item
This item, when clicked, will cause another page to be displayed that will allow the system
administrator to view/edit/add/delete journey details. These journey details include departure
town, destination town and the associated fare. This page is as shown below: -
‘Journey Report’ sub-menu item
When this link is clicked, another page will be displayed which will allow the administrator to
view booked seats as per the journey or even drop the reserved seats when need arises. This
page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 95
‘Manage Passengers’ Payments Details’ sub-menu item
When this link is clicked, another page will be displayed which will allow the administrator to
manage seat-payment by the passenger or even revoke payment that was made when need
arises. This page is as shown below: -
‘Passengers’ Details’ sub-menu item
When this link is clicked, another page will be displayed which will allow the administrator to
view passengers’ details of the specified journey. This page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 96
‘Seats’ sub-menu item
When this link is clicked, another page will be displayed which will allow the administrator to
view/add/remove the bus seats. This page is as shown below: -
‘Staff Details’ sub-menu item
When this link is clicked, another page will be displayed which will allow the administrator to
view/add/remove staff details. This page is as shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 97
‘Staff Privileges’ sub-menu item
When this link is clicked, another page will be displayed which will allow the administrator to
view/add/ remove the staff login privileges.
This page is as shown below: -
11.2.2 User Area
As stated earlier, Staff Area is divided into two parts: - Administration Area and User Area. I
have so far talked much about the Administration Area; now let me talk about the User Area.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 98
The User Area is the part where the company’s booking clerks use to manage passengers’
payment details.
After filling the valid user details on the login form of the staff’s login page and then selecting
a ‘clerk’ privilege, after clicking on the ‘Login’ button, the user will be authenticated and taken
to the home of the ‘User Area’. This area will have an interface as shown below: -
When ‘Manage Passengers’ Payment Details’ menu item is clicked, another page will be
displayed which will allow the clerk to manage passengers’ payment details. This page is as
shown below: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 99
After entering a valid ticket number and clicking on the ‘Submit’ button, another page will be
displayed that will ask whether the clerk really wants to manage the passenger’s payment. This
page is as shown below: -
The clerk can either select YES or decide to cancel the process. When YES is chosen, another
web page will be displaying that will give the clerk an option to either Make payment for the
passenger or Revoke passenger’s payment for the specified ticket number. This page is as
shown below: -
When ‘Make’ button is clicked, another page will be displayed which will confirm if the
payment was successfully made. This confirmation page will be as follows: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 100
But when the ticket number is invalid, the page will display a message about the invalidity of
the ticket number. This is as shown below: -
On the other hand, if the ‘Revoke’ button was clicked, another page will be displayed and give
a message that Payment Revocation was successfully but only if the ticket number was valid
and the payment was previously made else a message will be displayed that will give a reason
as to why the revocation was unsuccessfully.
The following page shows a successfully payment revocation: -
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 101
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 102
CHAPTER 12: CONCLUSION & RECOMMENDATION
CONCLUSION
The Online PSV Booking Management System is meant to offer, on the passengers’ point of
view, an online seat booking services and also provides capability to regenerate a ticket in case
the previous ticket is misplaced. In addition to that, the bus company’s system administrator
And booking clerks will be able to perform their duties online.
When this system is brought to real world use, it will increase the efficiency of
passenger/customer service at the Simba Coach Bus Limited Company. This will result to a
minimized congestion at the booking offices due to the reason that may be most of the
passengers will prefer the online services.
Moreover, it will improve the effectiveness and efficiency of the duties performed by the
company’s employees. This is because they will be able to work from anywhere provided
there’s internet connectivity.
Furthermore, it will ensure double-booking doesn’t occur since the system is developed to be
very accurate during its processes.
Lastly, it will also minimize, greatly, the paper work hence making the offices presentable due
to lack of old paper files that may be on the shelves, tables, etc. this is because most of the
records will be stored on the hard disk while the records’ backups stored an the CD – ROM’s
(Compact Disk – Random Access Memory).
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 103
RECOMMENDATION
This Online PSV Booking Management System that I have developed, even though
it is functional as it was expected, it still needs some improvements so as to serve
the bus company’s passengers more efficiently and effectively. Therefore, I
recommend that this system to be improved in the very near future so as to allow
the passengers not only to reserve their seats but to also make ticket payments
online.
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 104
CHAPTER 13: REFERENCES
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 105
CHAPTER 14: APPENDIX
ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 106