148
COMPUTER SCIENCE PROJECT I 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. ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 1

My Project Documentation

Embed Size (px)

Citation preview

Page 1: 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

Page 2: My Project Documentation

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

Page 3: My Project Documentation

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

Page 4: My Project Documentation

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

Page 5: My Project Documentation

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

Page 6: My Project Documentation

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

Page 7: My Project Documentation

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

Page 8: My Project Documentation

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

Page 9: My Project Documentation

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

Page 10: My Project Documentation

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

Page 11: My Project Documentation

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

Page 12: My Project Documentation

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

Page 13: My Project Documentation

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

Page 14: My Project Documentation

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

Page 15: My Project Documentation

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

Page 16: My Project Documentation

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

Page 17: My Project Documentation

(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

Page 18: My Project Documentation

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

Page 19: My Project Documentation

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

Page 20: My Project Documentation

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

Page 21: My Project Documentation

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

Page 22: My Project Documentation

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

Page 23: My Project Documentation

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

Page 24: My Project Documentation

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

Page 25: My Project Documentation

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

Page 26: My Project Documentation

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

Page 27: My Project Documentation

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

Page 28: My Project Documentation

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

Page 29: My Project Documentation

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

Page 30: My Project Documentation

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

Page 31: My Project Documentation

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

Page 32: My Project Documentation

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

Page 33: My Project Documentation

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

Page 34: My Project Documentation

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

Page 35: My Project Documentation

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

Page 36: My Project Documentation

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

Page 37: My Project Documentation

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

Page 38: My Project Documentation

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

Page 39: My Project Documentation

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

Page 40: My Project Documentation

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

Page 41: My Project Documentation

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

Page 42: My Project Documentation

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

Page 43: My Project Documentation

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)

Page 44: My Project Documentation

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

Page 45: My Project Documentation

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

Page 46: My Project Documentation

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

Page 47: My Project Documentation

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

Page 48: My Project Documentation

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

Page 49: My Project Documentation

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

Page 50: My Project Documentation

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

Page 51: My Project Documentation

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

Page 52: My Project Documentation

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

Page 53: My Project Documentation

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

Page 54: My Project Documentation

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

Page 55: My Project Documentation

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

Page 56: My Project Documentation

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

Page 57: My Project Documentation

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

Page 58: My Project Documentation

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

Page 59: My Project Documentation

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

Page 60: My Project Documentation

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

Page 61: My Project Documentation

<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input class="text" type="text" name="id_number" id="id_number" maxlength="15" />

</p><br /><p>

<label for="last_name">Last Name:</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input class="text" type="text" name="last_name" id="last_name" maxlength="15" />

</p><p>

<label for="first_name">First Name:</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input class="text" type="text" name="first_name" id="first_name" maxlength="15" />

</p><p>

<label for="middle_name">Middle Name:</label>&nbsp;&nbsp;&nbsp;

<input class="text" type="text" name="middle_name" id="middle_name" maxlength="15" />

</p><br /><p>

<label for="phone_number">Phone Number:</label>&nbsp;

<input class="text" type="text" name="phone_number" id="phone_number" maxlength="15" />

</p><p>

<label for="email">Email Address:</label>&nbsp;&nbsp;

<input class="text" type="email" name="email" id="email" maxlength="15" />

</p><br /><p>

<label for="age_category">Age Category:</label>&nbsp;&nbsp;&nbsp;

ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 61

Page 62: My Project Documentation

<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

Page 63: My Project Documentation

</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

Page 64: My Project Documentation

<?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

Page 65: My Project Documentation

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

Page 66: My Project Documentation

<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

Page 67: My Project Documentation

//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;?>&nbsp;&nbsp;<?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

Page 68: My Project Documentation

<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

Page 69: My Project Documentation

}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

Page 70: My Project Documentation

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

Page 71: My Project Documentation

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

Page 72: My Project Documentation

$_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

Page 73: My Project Documentation

$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

Page 74: My Project Documentation

$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

Page 75: My Project Documentation

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

Page 76: My Project Documentation

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

Page 77: My Project Documentation

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

Page 78: My Project Documentation

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

Page 79: My Project Documentation

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

Page 80: My Project Documentation

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

Page 81: My Project Documentation

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

Page 82: My Project Documentation

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

Page 83: My Project Documentation

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

Page 84: My Project Documentation

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

Page 85: My Project Documentation

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

Page 86: My Project Documentation

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

Page 87: My Project Documentation

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

Page 88: My Project Documentation

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

Page 89: My Project Documentation

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

Page 90: My Project Documentation

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

Page 91: My Project Documentation

‘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

Page 92: My Project Documentation

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

Page 93: My Project Documentation

‘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

Page 94: My Project Documentation

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

Page 95: My Project Documentation

‘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

Page 96: My Project Documentation

‘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

Page 97: My Project Documentation

‘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

Page 98: My Project Documentation

‘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

Page 99: My Project Documentation

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

Page 100: My Project Documentation

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

Page 101: My Project Documentation

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

Page 102: My Project Documentation

ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 102

Page 103: My Project Documentation

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

Page 104: My Project Documentation

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

Page 105: My Project Documentation

CHAPTER 13: REFERENCES

ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 105

Page 106: My Project Documentation

CHAPTER 14: APPENDIX

ONLINE PSV BOOKING MANAGEMENT SYSTEM © MWAMBEKE 2011 Page 106