You are on page 1of 28

STRATHMORE UNIVERSITY FACULTY OF INFORMATION TECHNOLOGY Diploma in Business Information Technology AN INFORMATION SYSTEM PROJECT SUBMITTED IN PARTIAL FULFILLMENT

OF THE REQUIREMENTS FOR THE DIPLOMA IN BUSINESS INFORMATION TECHNOLOGY (DBIT)

DESIGNED BY PSENJEN NELSON KIGEN ADMISSION NUMBER; 050820

SUBMISSION DATE: 4TH May, 2009

DECLARATION
This Information System Project is the Original work of the author and has not been submitted for any other Diploma or Degree program in any University. I therefore declare that, no other person apart from the undersigned has submitted this project.

Signed Psenjen Nelson Kigen

Date..

This project was assessed and approved by the supervisor who oversaw the completion of this work whose signature appears at the bottom of this page.

Signed. MR. EMMANUEL KWEYU Lecturer, Faculty of Information Technology Strathmore University

Date

ii

ACKNOWLEDGEMENT
The following people have played a special role in enabling the completion of this system to its current level: First of all, GOD, for giving me the strength to keep going even when I thought everything was too hard and I felt like giving up. Secondly, Strathmore University for providing me with resources needed to do complete my project.ie. Free access to the internet which was an invaluable source of information that made my project a success Fourthly, my classmates in the DBIT class of April 2009, especially Evans who constantly came with new ways of solving programming problems and my desire to outsmart him made me decide to work on this project. Last but not least, my lecturers especially Mr. Emmanuel Kweyu who has been my supervisor and has taken me through the entire project development phase, giving me ideas on how to improve my project, and Mr. Nelson Ochieng who introduced me to object oriented programming in java and ever since I have aspired to master it. Thank you ALL!

iii

Contents
DECLARATION ........................................................................................................................ ii ACKNOWLEDGEMENT.......................................................................................................... iii 1.0 INTRODUCTION ............................................................................................................- 1 1.1 Background to the Organization ....................................................................................- 1 1.2 Description of the problem ................................................................................................ 1 1.3 Objectives and Terms of Reference ................................................................................... 1 1.4 Project Plan, Environmental and operational constraints of proposed system. ................. 2 A) Software requirements. ................................................................................................... 2 B) Hardware requirements ................................................................................................... 2 C) System users................................................................................................................... 2 2.0 SYSTEM ANALYSIS .......................................................................................................... 3 2.1 Summarized description of the current System................................................................... 3 2.1 Current System Models ..................................................................................................... 4 Current Bus Reservation Use Case Diagram ........................................................................ 4 Current Parcel delivery system use case............................................................................... 5 Sequence diagram of the current bus booking system .......................................................... 6 3. SYSTEM DESIGN ................................................................................................................. 9 3.1 Translation to Logical data model. ..................................................................................... 9 3.2 Database Schema ............................................................................................................ 10 3.2.2 Data Dictionary ............................................................................................................ 10 Bus Table .......................................................................................................................... 10 Bus_Assign Table ............................................................................................................. 11 Client Table ...................................................................................................................... 11 Client_Accounts Table. ..................................................................................................... 11 Crew Assignment Table .................................................................................................... 12 Parcel Table ...................................................................................................................... 12 Parcel Category Table ....................................................................................................... 12 Payment Table .................................................................................................................. 13 Receipt Table .................................................................................................................... 13 Route Table....................................................................................................................... 13 Staff Table ........................................................................................................................ 13 Ticket Table ...................................................................................................................... 14 Trip Table ......................................................................................................................... 14 3.3 Process Descriptions........................................................................................................ 15 3.3.1 The Pseudo-Code...................................................................................................... 15

iv

3.4 Interface Designs ............................................................................................................. 16 3.4.1 Input Screens ............................................................................................................ 16 3.5 Crud Matrix .................................................................................................................... 18 4.0 Implementation and Testing ................................................................................................ 19 4.1 Description of development Environment/tools................................................................ 19 4.2 Description of the main system functionalities. ................................................................ 19 4.3 Sample Test data and Error handling. .............................................................................. 19 4.4 Interesting Sample Scripts ............................................................................................... 20 5.0 CONCLUSIONS AND RECOMMENDATIONS................................................................ 21 5.1 Problems and challenges encountered .............................................................................. 21 5.2 Solutions to the problems and challenges encountered ..................................................... 21 5.4 Self -Evaluation of the system and work done. ................................................................. 21 6.0 BIBILIOGRAPHY.............................................................................................................. 22 6.1 Listing of work Consulted in alphabetical of Authors Surname ....................................... 22 7. APPENDICES ...................................................................................................................... 23 i) Installation Guide .............................................................................................................. 23 ii) Supervision Slip................................................................................................................ 23

Table of Figures Figure 1: Current bus reservation use case diagram ..................................................................... 4 Figure 2: Current parcel delivery use case diagram...................................................................... 5 Figure 3:Sequence Diagram for the current bus booking system .................................................. 6 Figure 4: ..................................................................................................................................... 6 Figure 5:Proposed bus booking use case diagram ........................................................................ 7 Figure 6: proposed seat reservation sequence diagram ................................................................. 8 Figure 7: Current System class diagram ...................................................................................... 8 Figure 8: Database relationships .................................................................................................. 9 Figure 9: Trip lookup input screen............................................................................................. 16 Figure 10: Parcel Status input screen ......................................................................................... 17 Figure 11: Currently reserved seats ........................................................................................... 17 Figure 12: Current balance ........................................................................................................ 18 Figure 13:Main menu ................................................................................................................ 23

1.0 INTRODUCTION

1.1 Background to the Organization


Easy Coach Bus Company is a long distance bus company operating on major towns in Kenya with its headquarters along Haile Selasie Avenue, Nairobi. It has been in operation for about nine years under the name EASY COACH. It has branches in the following major towns: o o o o o o o Nairobi Nakuru Eldoret Kitale Kapsabet. Bungoma Busia o o o o o o o Malaba Kisumu Kericho Webuye Maseno Kakamega Awendo

1.2 Description of the problem


With the increase in the number of commuters using their services and the minimal number of spaces available per trip, there is need for them to be able to book for trips at their own convenience. There is also the need to provide an efficient parcel monitoring system where the consigner will be able to check the delivery status of his/her parcel at his/her convenience.

1.3 Objectives and Terms of Reference


With the successful implementation of this system, clients will be able to book for trips at their own convenience and the efficiency of entire reservation process will improve considerably. The aims of this project are to: o Increase the efficiency and speed of the reservation process. o Provide the client with a convenient way to make reservations for trips. System modules include: o A reservation module, allowing clients to check for available trips, make reservations for trips and view their current reservations. o A payment module, allowing the clients to pay for their reserved seats. o A parcel status module, allowing the client to view the delivery status of the parcels. o An administrators module, allowing him/her to view reports of the client activities

-1-

1.4 Project Plan, Environmental and operational constraints of proposed system. The project was meant to take approximately three months using the following tools and environment variables:

A) Software requirements. o o MySQL 5.1 as the SQL server. Apache 2.2 with PHP 5.0 as the server.

B) Hardware requirements o o A java enabled Mobile phone with MIDP 2.0 and CDLC 1.0. Internet connectivity via WAP,GPRS or EDGE.

C) System users. Any person with basic knowledge in using a java enabled mobile phone.

2.0 SYSTEM ANALYSIS

2.1 Summarized description of the current System


Currently, Easy Coach offers the following main services: o Day and night long distance bus service. o Long distance parcel delivery service. o Door to door parcel delivery in Nairobi and its environs (At an extra-charge). A combination of both manual and computerized systems is used to keep records of bookings and parcel deliveries. Manual systems used include ticket and parcel delivery books. In Nairobi area, it has booking offices at major supermarkets such as Nakumatt and Uchumi. These booking offices are linked to the main office. However, in the other booking offices, booking is still done manually. During booking, a client arrives at the booking office where he/she meets a booking clerk. After specifying his/her intended destination and time of travel, the clerk checks in the booking book for available space. It there is space, the clerk then presents a chart showing the arrangement of seats in the bus and informs the client of the vacant seats from which he/she will choose a seat from. After the client has chosen a seat, the clerk requests for any identification document from where he notes down the name and ID number. If the client doesnt have any identification document, he dictates his name to the clerk. He also notes down the destination, time of travel, seat number, fare paid and bus registration number. Thereafter, a ticket is issued after payment of the fare but a copy is retained by the clerk. The passenger must present the ticket before entering the bus during departure. The passenger must arrive and the booking office thirty minutes prior to the departure time. During this time, any luggage the passenger might be carrying is labeled and loaded to the bus. Also, parcels are loaded after sorting them according to their destination. Before the passenger is allowed to board the bus, he/she presents the ticket a clerk who cancels his name from the passenger list in the booking book and retains part of the ticket. A person intending to send a parcel (consignor) presents the parcel to the clerk after indicating both his/her name and that of the consignee together with the destination of the parcel. Thereafter the clerk notes down the details on the parcel delivery booklet. If the parcel is small enough, it is wrapped in a special cover then a copy a delivery receipt is stapled onto it and the consignor retains a copy. However, big parcels must be weighed first and parcels over 25 kg are not allowed. Once the parcels reach their destination, they are sorted according to their origin then recorded in the received parcels book. These books are divided according to the source towns of the parcels. Thereafter, when the consignee comes to collect a parcel, he/she first specifies the town from which the parcel came from and the sender. The clerk then tries to locate the parcel from the received parcels records. If found, the consignee is requested to present any proof of identification such as a passport, national ID number and for those who dont have these documents, a student ID card or a birth certificate is accepted. Thereafter, the parcel is handed over after signing in the received parcel book.

However, despite the obvious efforts made to make the system as effective as possible, it still has numerous drawbacks. These include: o Clients have to give their names ID number every time they come to book even though the company might be having that information. o Booking is done from a central place and all clients (passengers) have to physically go to the booking office even though it might be time/money consuming. o The consignee is not able to know of the parcels delivery status. o The consignor is not informed when his/her parcel is ready for collection.

2.1 Current System Models


Current Bus Reservation Use Case Diagram

Figure 1: Current bus reservation use case diagram

Current Parcel delivery system use case

Figure 2: Current parcel delivery use case diagram

Sequence diagram of the current bus booking system

Figure 3:Sequence Diagram for the current bus booking system

Figure 4:

Figure 5:Proposed bus booking use case diagram

Figure 6: proposed seat reservation sequence diagram

Figure 7: Current System class diagram

3. SYSTEM DESIGN
3.1 Translation to Logical data model.

Figure 8: Database relationships

3.2 Database Schema


Client {Client_No, Surname, First_name, Middle_Name, Gender, Address, City, Postal_Code, Phone_No, email} Client_Accounts{Client_No, Balance, Last_Recharge_Date, Username, Password} Bus {Reg_No, Chassis_No, Type, Make, Capacity, Date_Added} Bus_Assign {Reg_No, Route_ID, Date_Assigned} Crew_Assign {Staff_ID, Trip_ID, Date_Assigned} Parcel {Parcel_ID, Type, Category_ID, Consignor_ID, Consignee_ID, Date_Send, Source, Destination, Status} Parcel_Category {Category_ID, Lower_Weight, Upper_Weight, Cost} Payment {Ticket_No, Amount, Date_Paid, Time_Paid} Receipt {Parcel_ID, Receipt_No, Amount, Date_Received} Route {Route_ID, Route_Name, Source, Destination, Date_Created} Staff {Stafft_ID, Surname, First_name, Middle_Name, Gender, Address, City, Postal_Code, Phone_No, Position} Ticket {Ticket_No, Client_No, Trip_ID, Seat_No, Status, Date-Issued} Trip {Trip_ID, Trip_Date, Trip_Time, Fare, Capacity, Bus_Reg_No, Route_ID, Date_Added}

3.2.2 Data Dictionary


The Easy Coach database contains thirteen tables and they are as described below: Bus Table This table contains the details of all buses

Field Name
Reg_No

Data Type
Varchar

Field size
12

Description
Primary Key that uniquely identifies a bus Capacity of the bus Chassis number of the bus Bus model Bus name

Capacity Chassis_No Type Make


Table 1: Bus table

Smallint Varchar Varchar Varchar

2 24 15 15

10

Bus_Assign Table This table contains the details of buses and the routes they are assigned to operate on.

Field Name
Reg_No

Data Type
Varchar

Field size
12

Description
Primary Key that uniquely identifies a bus A valid route ID which cannot be null Date the bus was assigned

Route_ID Date_Assigned

Int Date

Table 2: Bus assignment table

Client Table This table contains the details of all clients.

Field Name
Client_No

Data Type
Int

Field size
6

Description
Primary key that uniquely identifies a client Clients surname Clients first name Clients middle name Clients gender Clients address Clients postal code Clients phone number

Surname First_Name Middle_Name Gender Address Postal_Code Phone_Number


Table 3: Client table

Varchar Varchar Varchar Varchar Varchar Int Varchar

25 25 25 6 15 6 10

Client_Accounts Table. This table contains clients usernames and passwords as well as their account details.

Field Name
Client_No

Data Type
Int

Field size
6

Description
Primary key that uniquely identifies a client Clients account balance in KSH. Clients last account recharge date Recharge transaction number

Balance Last_Recharge_Date Recharge_Number


Table 4: Client Accounts table

Double Date Int

12

11

Crew Assignment Table This table contains details of trips and staff assigned to each trip.

Field Name
Staff_ID Trip_ID Date_Assigned

Data Type
Int Int Date

Field size
6 6

Description
Date the assignment took place

Table 5: Crew assignment table

Parcel Table This table contains details of all parcels.

Field Name
Parcel_ID

Data Type
Int

Field size
6

Description
Primary key that uniquely identifies a parcel Identifies the type of parcel Identifies the category to which the parcel belongs Identifies the consignor from among the registered clients Identifies the consignee from among the registered clients The date when the parcel was send City of origin of the parcel Destination city of the parcel Delivery status of the parcel

Type Category_ID

Varchar Tinyint

14 2

Consignor_ID

Int

Consignee_ID

Int

Date_Send Source Destination Status


Table 6: Parcel details table

Date Varchar Varchar Varchar 20 20 15

Parcel Category Table This table contains categories of parcels, their weight limits and charges.

Field Name
Category_ID

Data Type
Tinyint

Field size
3

Description
Primary key that uniquely identifies a category Lower weight limit of the parcel category Upper weight limit of the parcel category

Lower_Weight_Limit Upper_Weight_Limit

Tinyint Tinyint

3 3

12

Cost
Table 7: parcel category table

Float

Cost of parcel delivery in KSH.

Payment Table This table contains trip payment details including the ticket number and amount paid.

Field Name
Ticket_no Amount Date_Paid Time_Paid
Table 8: Payment table

Data Type
Int Double Date Timestamp

Field size
6 8

Description

Timestamp transaction

of

the

Receipt Table This table contains payment details and receipt numbers of parcels.

Field Name
Parcel_ID Receipt_No

Data Type
Int Int

Field size
6 6

Description
Primary key that uniquely identifies a parcel Date the parcel was received by the clerk Cost of sending the parcel

Date_Received Amount
Table 9: Receipt table

Date Double 8

Route Table This table contains all the valid routes.

Field Name
Route_ID

Data Type
Tinyint

Field size
2

Description
Primary key that uniquely identifies a route The route name The final destination for the route Date the route was created.

Route_Name Source Destination Date_Created


Table 10: Route table

Varchar Varchar Varchar Date

30 25 25

Staff Table

13

This table contains the details of all the staff.

Field Name
Staff_ID

Data Type
Int

Field size
6

Description
Primary key that uniquely identifies a staff member Staff members surname Staff members first name Staff members middle name Staff members gender Staff members address Staff members postal code Staff members phone number Staff members position

Surname First_Name Middle_Name Gender Address Postal_Code Phone_Number Position


Table 11: Staff details table

Varchar Varchar Varchar Varchar Varchar Int Varchar Varchar

25 25 25 6 15 6 10 10

Ticket Table This table contains details of all seats and trips reserved by clients.

Field Name
Trip_ID Ticket_No

Data Type
Int Int

Field size
6 6

Description
Primary key used to uniquely identify a reservation or ticket Identifies the registered client reserving a seat for a given trip Date the ticket was issued Identifies the seat a client has booked. Current status of the ticket or reservation .

Client_No

Int

Date_Issued Seat_No Status


Table 12: Tickets table

Date Varchar Varchar 3 10

Trip Table This table has the details of all scheduled trips.

Field Name

Data Type
14

Field size

Description

Trip_ID

Int

Trip_Date Trip_Time Fare Capacity

Date Varchar Double Tinyint 8 8 2

Date_Added Bus_Reg_No

Date Varchar 6

Route_ID
Table 13: Trips table

Tinyint

Primary key which uniquely identifies a trip Date scheduled for the trip Time scheduled for the trip Fare to be paid for the trip in KSH Maximum number of passengers to be allowed for the trip Date on which the trip was added Registration number of the bus to be used for the trip Valid route to be used for the trip.

3.3 Process Descriptions


3.3.1 The Pseudo-Code Seat Reservation Begin Input Trip Details Check if trip is available If trip is not available Alert displayed to try a different date or destination Else Display available trips If trip is selected Display available seats Else Alert displayed to select a seat If seat(s) is selected Prompt confirmation If not confirmed Display available seats Else Check balance If balance>fare Proceed to reserve Else Alert balance insufficient End if 15

End if End if End if End if END

3.4 Interface Designs


3.4.1 Input Screens Trip Lookup form This is the form where the user/client enters trip details and the system looks for a trip matching that description.

Figure 9: Trip lookup input screen

16

Parcel Status form This is a form where the user enters the parcel ID so as to view its delivery status.

Figure 10: Parcel Status input screen

3.4.2 Output Screens Reserved Seats Shows a list of the currently reserved seats for a given client

Figure 11: Currently reserved seats

17

Current Balance Displays the current balance of the client

Figure 12: Current balance

3.5 Crud Matrix


Entity Processes Client Registration Staff Registration Bus Registration Generate Ticket Parcel Registration Route Registration Trip Addition
Table 14:CRUD matrix

Client

Bus

Trip

Ticket

Parcel

Route

Staff

CRU

CRU

CRU

CRUD

CRUD

CRUD

CRUD

18

4.0 Implementation and Testing


4.1 Description of development Environment/tools.
The development environment tools used to create this system included: o Windows XP Professional with service pack two This served as the operating system, thus enabling the system to run on during its development life cycle. o Java development kit 1.6.7 with NetBeans 6.1 for implementation of the client side design. o Samsung software development kit 1.0 with Samsung SGH-U600 emulator was used to test the design. o Dreamweaver 9 CS3 was used for implementation of the server side design. o Apache 2.2.3 was used as the application server. o MySQL 5.1 was used as the database server. o Microsoft Word 2007 was used as a means of generating documentation for the entire project. o Smart Draw 2008 was used to generate the necessary diagrams such as use cases, class and sequence diagrams for the systems documentation.

4.2 Description of the main system functionalities.


The system is capable of performing the following functions: o Show the client a list of currently reserved seats in a given trip(s). o Show the current balance in the client account. o Search for a given trip and display the number of seats available, fare and the departure time. o Display the seat numbers of the currently unreserved seats in a given trip. o Display the delivery status of a given parcel.

4.3 Sample Test data and Error handling.


FIELD Username Parcel ID Travel Date CORRECT DATA Admin 12 20-05-2009 WRONG DATA As 21-01-1990 ERROR HANDLING Username cannot be empty! Letter keys are disabled Travel date cannot be in the past!

Table 15:Error handling

19

4.4 Interesting Sample Scripts


The following script allows the client to make multiple reservations at once by using one instance of the HTTPConnection class! public void run() { String temp; String url="http://127.0.0.1/Easy_Coach/j2me/jticket.php"; String parameter; for(int i=0;i<seat.length;i++){ temp=null; temp=seat[i].trim().toString(); parameter=url+"?seat="+temp+"&cid="+clientid+"&tid="+tid; System.out.println(parameter); try { hc = (HttpConnection)Connector.open(parameter); hc.setRequestMethod(HttpConnection.GET); in=hc.openInputStream(); int rc=hc.getResponseCode(); if(rc==HttpConnection.HTTP_OK){ data=new byte[(int)(hc.getLength())]; int actual=in.read(data); s=new String(data).toString().trim(); response[i]=s; System.out.println("DATA OUT=="+response[i]); if(response[i].equals("NO")){ System.out.println("NELSON J2ME"); }} } catch (IOException e) { e.printStackTrace(); } home.getTick(response); }

20

5.0 CONCLUSIONS AND RECOMMENDATIONS

5.1 Problems and challenges encountered


o o Since the author was the only one using J2ME, I had difficulties in finding help in areas I found challenging. Learning a new programming language and building a complete system using it within three months was quite challenging bearing in mind the other units and courses the author was doing at the moment.

5.2 Solutions to the problems and challenges encountered o The author became a member of www.j2meforums.com from where he was able to find
help in challenging areas.

5.3 Recommendations and Suggested Improvements


o Tools for mobile application prototyping should be made available in the computer labs so as to encourage more people to develop such applications

5.4 Self -Evaluation of the system and work done.


During this project duration, the author was able to master the art of mobile programming using J2ME and applied his knowledge in building an entire system. Some of the benefits that will be derived from this system include: o Conveniency- With this system, clients will be able to reserve seats for a given trip without making a physical visit to the booking office. They will also be able to check the delivery status of their parcels with making a prior visit to the companys offices. o The client will be able to view summarized reports of his/her activities such as the seats he/she has currently reserved, account balance, available trips and travel history.

The major disadvantages in using the system may include:


o Unreliability since the system relies on the signal strength and coverage of the network provider. Therefore some clients may experience delays in using the system.

21

6.0 BIBILIOGRAPHY

6.1 Listing of work Consulted in alphabetical of Authors Surname


o o Keogh James, J2ME- The Complete Reference, 2003, McGraw-Hill, 2nd Edition. Li Sing and Jonathan Knudsen, Beginning J2ME-From Novice to Professional, 2005, 3rd Edition.

22

7. APPENDICES

i) Installation Guide The system can be downloaded from the Easy Coach website via your mobile phone browser. The installation details vary depending on the phone model you are using but in most cases it is automatic. However before you download the system, you must fill in your registration details and be given your username and password. For more instructions on how to use the system, go to Im stuck on the main menu of the system.

Figure 13:Main menu

ii) Supervision Slip.


Attached.

23