106
DESIGN & IMPLEMENTATION OF VEHICLE MANAGEMENT SYSTEM A project report Submitted to Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal Towards partial fulfillment of The Degree of Bachelor of Engineering In Computer Science and Engineering 2011-2012 By Gurdeep .S. Bhatia (cs-38) & Kunal Mehta (cs-51) Project Incharge Guided by

Report Vms

Embed Size (px)

Citation preview

Page 1: Report Vms

DESIGN & IMPLEMENTATION OF VEHICLE MANAGEMENT SYSTEM

A project report Submitted to Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal

Towards partial fulfillment of The Degree of

Bachelor of Engineering In

Computer Science and Engineering 2011-2012

ByGurdeep .S. Bhatia (cs-38) & Kunal Mehta (cs-51)

Project Incharge Guided by

Ms. Kavita Namdev Ms. Juhi Kanungo

Acropolis Institute of Technology & Research, Indore (M.P.) Department of Computer Science Engineering & Information Technology

Page 2: Report Vms

ACROPOLIS INSTITUTE OF TECHNOLOGY & RESEARCH, INDORE

CERTIFICATE

This is to certify that Mr. Gurdeep Singh Bhatia (CS-38) & Mr. Kunal Mehta (CS-51) B.E. (Computer Science and Engineering) Third year 2011-2012 of Computer Science and Engineering department of this Institute have completed the project work entitled “Vehicle Management System” based on syllabus.

Mr. Sanjay Bansal Project Coordinator

Professor & Head, CSE Ms. Kavita Namdev

Dr. Kamal Bharani

Principal

AITR, Indore

Page 3: Report Vms

ACROPOLIS INSTITUTE OF TECHNOLOGY & RESEARCH, INDORE

CERTIFICATE

This is to certify that the project work entitled “Vehicle Management System” submitted by Mr. Gurdeep Singh Bhatia (CS-38) & Mr. Kunal Mehta (CS-51), B.E. (Computer Science and Engineering) Third year 2011-2012 of Computer Science and Engineering Department of this institute based on syllabus and is approved as partial fulfillment for the award of the Bachelor of Engineering (in Computer Science and Engineering) Degree by Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal.

Internal Examiner External Examiner

Date: Date:

Page 4: Report Vms

ACKNOWLEDGEMENT

There are two ways of spreading the light, to be a candle, or the mirror, which reflects it. In relation to the light of knowledge, this work carried out by us is just a ‘mirror’. There are some candles on the other side of the mirror. We would like to avail this opportunity to express our sincere thanks to all those who helped us in making this project. Even a most vivid collection of words, yield to express our heart fully thank towards one and all to have successfully assisted us in our expenditure of carrying out this project.

We wish to express our deep sense of gratitude to H.O.D Mr. Sanjay Bansal, our project coordinator Ms. Kavita Namdev our project guide Ms. Juhi Kanungo and the whole faculty members of the department of Computer Science for encouraging and giving moral support, not only regarding this project but also throughout our studies at this institute. Also, to all my fellow classmates, friends and well wishers for their support and cooperation towards us.

Gurdeep Singh Bhatia (CS-38)

Kunal Mehta (CS-51)

Page 5: Report Vms

CONTENTS

Chapter Title Page No.1 Introduction 12

1.1 Purpose1.2 Objectives1.3 Scope1.4 Problem Statement

1.4.1 Existing System1.4.2Limitations

1.5 Proposed System 1.6 Intended Audience

2 Literature Survey 152.1 Technologies2.2 Tools

3 Analysis 223.1 Detailed Statement of Problem

3.1.1 Problem Specification3.1.2 Performance definition3.1.3 Purpose

3.2 Functional Requirements3.3 Non Functional Requirements 3.4 Use Case Model

3.2.1 Use Case Diagram3.2.2 Use Case Specification

3.5 Activity Diagram3.6 Class Diagram

4 Design 284.1 Functional Model

4.1.1 Data Flow Diagram4.2 Data Model

4.2.1 Entity Relationship Diagram4.2.2 Database Design

Page 6: Report Vms

5 Application Interface 395.1 Input / Output Interfaces

6 Test Case Design 426.1 White Box Testing6.2 Unit Testing6.3 Integration Testing6.2 System Testing6.2 Black box Testing

7 Output Screens 447.1 Screenshots of Code Screens7.2 Important Coding

8 Conclusion 737.1 Inferences Drawn 7.2 Future Scope7.3 Limitations

A Users Manual 75B References 81

Page 7: Report Vms

ABSTRACT

Page 8: Report Vms

ABSTRACT

1. Aim:

This software design document describes the architecture and system design of Vehicle

Management System (VMS) and provides an overview of the VMS system implementation. Its

main purpose is to –

Provide the link between the Functional Specification and the detailed Design

document.

Detail the functionality which will be provided by each component or group of

component and show how the various components interact in the design.

Provide a basis for the VMS system’s detailed design and development

2. Scope:

The Application Design outline in this document builds upon the scope define in the

Requirement phase. Additionally this document provides mainly the details of the vehicle

management system. Vehicle Management System is a complete solution for company's offering

complete operational management for the day-to-day activities which are helpful to both the

Management and the Customers. It is a Daily Accounting Software for all types of vehicles like

in Transport industry, private or public service, cars, taxis, coaches, vans, picks up trucks, buses,

trucks, rental services etc

3. Objectives:

Vehicle Management System is software which is helpful for bus operators, who wants to

operate many bus trips in a day. Vehicle Management System is a desktop application for

Windows operating systems which focused in the area of adding, editing and deleting the

passengers, staff and the bus routes. In this software a manager can manage the vehicle routes

and the staff, passengers’ details; he can also appoint other managers and booking clerk. He can

add a bus and its details including bus route details. He can also add the details of the staff and

their duty time in the system

Page 9: Report Vms

4. Formal Description:

Vehicle Management System is a complete solution for company's offering complete

operational management for the day-to-day activities which are helpful to both the Management

and the Customers. It is a Daily Accounting Software for all types of vehicles like in Transport

industry, private or public service, cars, taxis, coaches, vans, picks up trucks, buses, trucks, rental

services etc. It is most ideal for bus & taxi depots, garages, scrap yards, vehicle recovery

businesses and other vehicle management companies.

There are 2 intended users in our software.

Manager Booking clerk

The manager can update the database time to time whenever required. He can also add new user as a manager or a booking clerk. The Booking clerk looks after the ticket selling and payment processes, registers passengers, baggage etc.

.5. Modular Design: VMS is a Management Information System specially designed for vehicle maintenance, job dispatching and route planning. VMS is a desktop-based system. Followings are the product features of VMS: Bus maintenance system

Route Management Employee Management Passenger Management

Bus maintenance system

In Vehicle module a user can add a new Vehicle details to the database.

Route Management Route Management module deals with the route management of the Vehicle.

Employee Management In Employee Management personal details of employee can added to database.

Passenger Management Details of every passenger are stored in the system

Page 10: Report Vms

6. Technical Details:

Hardware Requirements:

For Windows 95 based computers , a 486 / 66 MHz or higher processor

with 8MB

For Windows 98 based computers , a 500/88MHz or higher processor with

32 Mb of RAM

For Windows NT based computers , a 488 / 66 MHz or higher processor

with 16 MB of RAM

For Windows 2000, XP based computers , a 700/850 MHz or higher

processor with 512 MB of Ram

Software Requirements:

Operating System : Windows NT, 98, 2000, XP, 7, Vista.

Language : Java 2 Runtime Environment(jdk)

Database : MS Access2007

Page 11: Report Vms

CHAPTER 1 INTRODUCTION

Page 12: Report Vms

INTRODUCTION

1.1 Purpose Vehicle Management System is software which is helpful for vehicle operators, who wants to operate many trips in a day. In this software a manager can manage the vehicle routes and the staff, passengers’ details; he can also appoint other managers and booking clerk. The proposed system is very useful for the operators and passengers. This avoids the overheads for the operators. They can minimize the working stress and can keep essential documents related to the vehicle and the passengers as a softcopy. The advantage of the proposed system is the reduction in the cost of the office equipments and the transaction is done quickly. Any operator can answer if any seats for a particular route in a particular day are available or not

1.2 Objective The goal of this project is basically management convenience. This also does not require special efforts from the management staff. It reduces manpower, time and cost. Vehicle Management System is a desktop application written for Windows operating systems which focused in the area of adding, editing and deleting the passengers, staff and the vehicle routes all the data will be stored with security. Genuineness is assured as all booking information is stored in the database.

1.3 Scope Vehicle Management System is a complete solution for company's offering complete operational management for the day-to-day activities which are helpful to both the Management and the Customers. It is a Daily Accounting Software for all types of vehicles like in Transport industry, private or public service, cars, taxis, coaches, vans, picks up trucks, buses, trucks, rental services etc. It is most ideal for bus & taxi depots, garages, scrap yards, vehicle recovery businesses and other vehicle management companies

1.4Problem Statement

1.4.1 Existing SystemIn the current system all the jobs of the vehicle route management is done manually. This

Is very difficult to the operators who want to handle hundreds of trips in a day. In current system there is no way to store the details of the employees’ working in the buses and taxis, So many complaints against staff can arise from the passengers’ side. More over there is no detailed record of the vehicle's routes in which they service

1.4.2Limitations

Slow access to database More probability of error Less Storage Capacity No Search facility

Page 13: Report Vms

Difficult to search old records Difficult to update records

1.5 Proposed System The proposed system is very useful for the operators and passengers. This avoids the overheads for the operators. They can minimize the working stress and can keep essential documents related to the bus and the passengers as a softcopy. The advantage of the proposed system is the reduction in the cost of the office equipments and the transaction is done quickly. Any operator can answer if any seats for a particular route in a particular day are available or not.

1.6 Intended Audience There are 2 intended users in our software.

Manager Booking clerk

The manager can update the database time to time whenever required. He can also add new user as a manager or a booking clerk.The Booking clerk looks after the ticket selling and payment processes, registers passengers, baggage etc.

Page 14: Report Vms

CHAPTER 2LITERATURE

SURVEY

Page 15: Report Vms

LITERATURE SURVEY

2.1 Technologies

Java Development Kit (1.6):

When the java programming language was introduced in 1995, the only development tool

available was the JDK from sun. This set of command line tools makes it possible to write,

compile and debug JAVA programs. However, the JDK is the far cry from integrated

development environment such as Visual Basic and Borland C++. An integrated development

environment (IDE) is software that combines several development tools into a single, cohesive

package. The assortment usually includes a source code editor, compiler debugger and other

utilities. These tools work together the development process; most packages are highly visual

and rely on windows, drag and drop, and other graphical elements. The goal is to make software

design faster, more efficient, and easier to debug.

MAIN PROPERTIES OF JAVA:

JAVA is object oriented :

Object oriented programming is a power full way of organizing and developing software. Object

oriented programming uses a set of components called objects. These objects exist independently

of each other and communicate with each other. That’s why object oriented program are more

adoptable and more bug proof.

JAVA is small and simple:

The most complex parts of c++ were excluded from java, such as pointers and memory

management. These elements are complicated to use.

JAVA is safe:

Another thing essential to java’s success is that it is safe. Java provides security and several

different levels. Before a java program is run, a verifier check each by code to make sure nothing

suspicious is going on.

Page 16: Report Vms

JAVA is platform independent:

Platform independence is another way of saying that java is architectural neutral. The basically

means that java programs don’t care what system they are running on.

JAVA is architectural neutral:

The JAVA designers made several hard decisions in the java languages and JVM is an attempt to

alter the situation programs not running on the same machine after few days.

Their goal was “Write once; run anywhere, anytime, forever”.

JAVA is Distributed

Java is designed for the distributed environment of Internet because it handles TCP/IP protocols.

The feature of inter-address-space messaging is done with the help of package Remote Method

Invocation (RMI). This feature brings an unparalleled level of instructions to the client/server

programming.

JAVA is dynamic

Java programs carry with them substantial amounts of run time type information that is use to

verify and resolve accesses to objects at run time. This is crucial to the robustness to the applet

environment.

JAVA 2 Enterprise Edition (J2EE)

Java 2 Enterprise Edition (J2EE) technology is becoming a pervasive platform for the

development of Internet-based, transactional business applications. It provides a robust

development platform upon which to build flexible, reusable components and applications. It is a

powerful standard that is well-suited for Internet-based applications because it provides many of

the underlying services such as HTTP request processing (Java Servlet API), transaction

management (Enterprise JavaBeans), and messaging (Java Message Service), just to name a few.

However, J2EE is also a complex and changing standard that leaves the technologist with many

design decisions and performance considerations. Each component service adds a level of

overhead to the application processing that must be considered. Additionally, there are a number

of common business logic functions, such as error handling, that must be designed and de

developed for each component and application. Today more and more developments want to

Page 17: Report Vms

write distributed transactional applications for the enterprise and leverage the speed, security and

reliability of server side technology. J2EE is a platform independent, java centric environment

from sun for developing, building and deploying web based enterprise application online. The

J2EE platform consists of a set of services, API’s and protocols that provide functionality for

developing multitiered web based application.At the client side tier, J2EE supports pure HTML

as well as java applets or applications. It relies on JSP and Servlet codes to create HTML or

other formatted data for the client. EJB provide another layer where the platform’s logic is

stored. An EJB server provides functions such as threading, concurrency, security and memory

management. To reduce costs and fast-track enterprise application design and development, the

java2 platform, Enterprise edition (J2EE) technology provides a component-based approach to

the design, development, assembly and distributed application model, the ability to reuse

components; integrated Extensible Markup Language (XML) based data interchange, a unified

security model, and flexible transaction control.

DISTRIBUTED MULTI TIERED APPLICATIONS

The J2EE platform uses a multi tiered distributed application model. Application logic is

divided into components according to function, and the various application components that

make up a J2EE application are installed on different machines depending on the tier in the multi

tiered J2EE environment to which the application component belongs. The figure shown below

shows two multi tiered j2EE applications divided into the tiers described in the following list.

The J2EE application parts shown in Figure

Client-tier components run on the client machine.

Web-tier components run on the J2EE server.

Business-tier components run on the J2EE server. Enterprise information system (EIS)-tier

software runs the EIS server.

2.2 Tools

Net Beans (IDE):

For front end designing, java based software NETBEANS is used as it provides some very good

tools for software design. One does not need to make classes for every form, they are inbuilt. The

Net Beans IDE is a free, open-source Integrated Development Environment for software

Page 18: Report Vms

developers. The IDE runs on many platforms including Windows, Linux, and Solaris. It is easy

to install and use straight out of the box. The Net Beans IDE provides developers with all the

tools they need to create professional cross-platform desktop, enterprise, web and mobile

applications. Net Beans, along with Eclipse, is one of the most widely used Java IDE (Integrated

Development Environment). The purpose of this document is to describe the steps needed to run

Net beans 6.0.1 on a net based system, using Linux Java Virtual Machine and Linux

compatibility mode.

The major reasons for using NETBEANS are:

a) It is the best IDE for Expediting Java Development.

b) It provides a very easy way to connect one form to other.

c) Easy connectivity of the forms.

d) Its GUI makes it much more user friendly.

Java is used as the front end tool due to the following reasons:

a) It is completely object oriented.

b) Easy database linking and access.

c) Proper object linking and embedding.

d) It is platform independent.

e) Low overhead profiling.

f) Attaching to running applications.

g) CPU Performance profiling.

h) Memory leak debugging.

i) Task-based profiling.

Microsoft Access 2003Microsoft Access is the default database of Microsoft Visual Basic. Microsoft Access 2003

provides many new features that make working with data and designing a database even easier.

Microsoft Access Database is a collection of data and objects related to particular topic or

purpose. Microsoft Access Database may contain tables; queries, forms, reports, macros

modules and shortcuts top data access pages.

Page 19: Report Vms

Microsoft Access is a Relational Database Management System. Using Access we can organize

our data according to subject and can store information about how different subject are related.

In general MS-Access database can have several small tables.

Microsoft Office Access, previously known as Microsoft Access, is a relational database

management system from Microsoft that combines the relational Microsoft Jet Database Engine

with a graphical user interface and software development tools. It is a member of the 2007

Microsoft Office system.

Access can use data stored in Access/Jet, Microsoft SQL Server, Oracle, or any ODBC-

compliant data container (including MySQL and PostgreSQL). Skilled software developers and

data architects use it to develop application software. Relatively unskilled programmers and non-

programmer "power users" can use it to build simple applications. It supports some object-

oriented techniques but falls short of being a fully object-oriented development tool.

Access is used by small businesses, within departments of large corporations, and by hobby

programmers to create ad hoc customized desktop systems for handling the creation and

manipulation of data. Access can be used as a database for basic web based applications hosted

on Microsoft's Internet Information Services and utilizing Microsoft Active Server Pages ASP.

Most typical web applications should use tools like ASP/Microsoft SQL Server or the LAMP

stack.

Some professional application developers use Access for rapid application development,

especially for the creation of prototypes and standalone applications that serve as tools for on-

the-road salesmen. Access does not scale well if data access is via a network, so applications that

are used by more than a handful of people tend to rely on Client-Server based solutions.

However, an Access "front end" (the forms, reports, queries and VB code) can be used against a

host of database back ends, including JET (file-based database engine, used in Access by

default), Microsoft SQL Server, Oracle, and any other ODBC-compliant product.

Features

One of the benefits of Access from a programmer's perspective is its relative compatibility with

SQL (structured query language) —queries may be viewed and edited as SQL statements, and

SQL statements can be used directly in Macros and VBA Modules to manipulate Access tables.

Page 20: Report Vms

Users may mix and use both VBA and "Macros" for programming forms and logic and offers

object-oriented possibilities.

MSDE (Microsoft SQL Server Desktop Engine) 2000, a mini-version of MS SQL Server 2000,

is included with the developer edition of Office XP and may be used with Access as an

alternative to the Jet Database Engine.

Unlike a modern RDBMS, the Access and the Jet Engine implements database triggers and

stored procedures in a non-standard way. Stored Procedures are implemented in VBA, and

Triggers are only available from embedded Forms. Both Triggers and Stored procedures are only

available to applications built completely within the Access database management system. Client

applications built with VB or C++ are not able to access these features. Starting in MS Access

2003 (Jet 4.0), there is a new syntax for creating queries with parameters, in a way that looks like

creating stored procedures, but these procedures are still limited to one statement per procedure.

Microsoft Access does allow forms to contain code that is triggered as changes are made to the

underlying table (as long as the modifications are done only with that form), and it is common to

use pass-through queries and other techniques in Access to run stored procedures in RDBMSs

that support these.

In ADP files (supported in MS Access 2003 and later), the database-related features are entirely

different, because this type of file connects to a MSDE or Microsoft SQL Server, instead of

using the Jet Engine. Thus, it supports the creation of nearly all objects in the underlying server

(tables with constraints and triggers, views, stored procedures and UDF-s). However, only forms,

reports, macros and modules are stored in the ADP file (the other objects are stored in the back-

end database).

Page 21: Report Vms

CHAPTER 3ANALYSIS

Page 22: Report Vms

ANALYSIS

3.1 Detailed Statement of Problem

3.1.1 Problem SpecificationIn the current system all the jobs of the vehicle route management is done manually. This

Is very difficult to the operators who want to handle hundreds of trips in a day. In current system there is no way to store the details of the employees’ working in the buses and taxis, So many complaints against staff can arise from the passengers’ side. More over there is no detailed record of the vehicle's routes in which they service

3.1.2 Performance definition Vehicle Management System is a complete solution for company's offering complete

operational management of the day-to-day activities which are helpful to both the Management and the Customers. Daily Accounting Software for all types of vehicles and equipment, Transport industry Private or Public Service. Cars, taxis, coaches, vans, pick up trucks, buses, trucks, rental services etc.Most Ideal for Bus & Taxi Depots, Garages, scrap yards, vehicle recovery businesses and other vehicle management companies.

IT PERFORM 24 X 365 OPERATION

CAN HELP IN RESOLVING PROBLEMS ARISES WITHOUT PRIOR WARNINGS

3.1.3 Purpose Our proposed system serves following purposes

User friendly interface

Fast access to database

Less error

More Storage Capacity

Search facility

Look and Feel Environment

Quick transaction

3.2 Functional Requirements A functional requirement defines a function of a software system on its component. A function is described as a set of inout, the behavior and output.

1. REQUIREMENTS:

Page 23: Report Vms

The system should have the requirements of the project. The developer should prepare the requirements of the project. The should prepare the requirements which are need for the software.

2. ANALYSIS: Analyze the requirements whether it provides proper operations/output and performs the task.

3. DESIGN: Project manager should design the layout of the project before going to implement time allocation; cost allocation and staff allocation will coming under design process.

4. IMPLEMENTATION: After encompassing all the diagrams, we have to generate code for each and every diagram i.e. from use case to deployment.

5. TESTING: After implementing the diagram with domain language, we have to test the particular projects.

6. MAINTAINENCE: The system should be easily updated. The system should utilize the interchangeable plugins software developed should maintain the cost and time schedule of the project.

3.3 Non Functional Requirements: Non functional requirements define the needs in terms if performance, logical database requirements, design constraints, standard compliance, reliability, availability, security, maintainability and portability.

i. PERFORMANCE REQUIREMENTS:a) Performance requirements define acceptable response times for system functionality.b) The total time for user interface screens will take no longer than two seconds.c) The login information shall be verified within the seconds. Queries shall results within five seconds.

ii. DESIGN CONSTRAINTS:a) The software shall be a standard system running in a windows environment.b) The system shall be developed using rational enterprise suite and oracle 10i database.

iii. RELIABILITY:Specify the factors required to establish the required reliability of the software system at time of delivery.

iv. AVAILABILITY:The system should have an availability of 99.99%.

v. PORTABILITY:a) The system should be extremely via the USB drive.b) The system shall be easy to migrate or backed up via another use drive.

Page 24: Report Vms

vi. MAINTAINABILITY:a) The system shall utilize interchangeable plugins.b) The system shall be easily updateable for fixes and patches.

3.4 Use Case Model Use Case diagrams are one of the five diagrams in the UML for modeling the dynamic

aspects of systems (activity diagrams, sequence diagrams, state chart diagrams and collaboration

diagrams are the four other kinds of diagrams in the UML for modeling the dynamic aspects of

systems).

3.4.1 Use Case Diagram

3.4.2 Use Case Specification VMS is a Management Information System specially designed for vehicle maintenance, job dispatching, and route planning. VMS is a desktop-based system. Followings are the product features of VMS:

Bus maintenance system Route Management Employee Management

Page 25: Report Vms

Passenger Management Bus maintenance system

In Vehicle module a user can add a new Vehicle details to the database.

Route Management Route Management module deals with the route management of the Vehicle.

Employee Management In Employee Management personal details of employee can added to database.

Passenger Management Details of every passenger are stored in the system

3.5 Activity Diagram An Activity Diagram is essentially a flow chart showing flow of control from activity to

activity. They are used to model the dynamic aspects of as system. They can also be used to

model the flow of an object as it moves from state to state at different points in the flow of

control. Activity diagrams commonly contain Fork Start & End Symbol.

3.6 Class Diagram

Page 26: Report Vms

Class diagrams are the most common diagrams found in modeling object-oriented systems. A class diagram shows a set of classes, interfaces, and collaborations and their relationships

Page 27: Report Vms

CHAPTER 4DESIGN

Page 28: Report Vms

DESIGN

4.1 Functional Model

4.1.1 Data Flow Diagram A Data Flow Diagram (DFD) is a diagram that describes the flow of data and the processes that change or transform data throughout a system. It’s a structured analysis and design tool that can be used for flowcharting in place of, or in association with, information oriented and process oriented system flowcharts. When analysts prepare the Data Flow Diagram, they specify the user needs at a level of detail that virtually determines the information flow into and out of the system and the required data resources. This network is constructed by using a set of symbols that do not imply a physical implementation. The Data Flow Diagram reviews the current physical system, prepares input and output specification, specifies the implementation plan etc.

Rules for constructing a Data Flow Diagram

Arrows should not cross each other.

Squares, Circles and files must bear names.

Decomposed data flow squares and circles can have same names.

Choose meaningful names for dataflow.

Draw all data flows around the outside of the diagram.

Some of the common data flow diagram symbols are :

Source or Destination of data

Data Flow

Process

Storage

Page 29: Report Vms
Page 30: Report Vms

4.2 Data Model

4.2.1 Entity Relationship Diagram

Page 31: Report Vms
Page 32: Report Vms
Page 33: Report Vms

4.2.2 Database Design The general theme behind a database is to handle information as an integrated whole. A

database is a collection of interrelated data stored with minimum redundancy to serve many

users quickly and effectively. After designing input and output, the analyst must concentrate on

database design or how data should be organized around user requirements. The general

Page 34: Report Vms

objective is to make information access, easy quick, inexpensive and flexible for other users.

During database design the following objectives are concerned:-

Controlled Redundancy

Data independence

Accurate and integrating

More information at low cost

Recovery from failure

Privacy and security

Performance

Ease of learning and use

TABLES USED

USERS

FieldName DataType Key

Name Text -

Category Text -

Username Text -

Password Text -

BOOKING

FieldName DataType Key

Booking_No Number Primary

Pass_No Text -

PassName Text -

Bus_RegNo Text -

SeatNo Text -

Date_of_Travel Text -

Time_of_Travel Text -

Pass_From Text -

Page 35: Report Vms

Destination Text -

Amount Text -

BUSES

FieldName DataType Key

Bus_RegNo Text Primary

BusNo Text -

Model Text -

Capacity Number -

DateBought Date/Time -

Insurance_Status Text -

Date_Insured Date/Time -

Insurance_Expiry Date/Time -

Emp

FieldName DataType Key

empNo Text Primary

Sname Text -

Fname Text -

Lname Text -

Gender Text -

DOB Date/Time -

Designation Text -

Telephone Number -

E_Mail Text -

Address Text -

Page 36: Report Vms

Passenger

FieldName DataType Key

Pass_No Text Primary

Pass_Name Text -

Address Text -

Tel_No Number -

Date_of_Travel Date/Time -

Depot Text -

To Text -

Pay_Status Text -

Booked_Status Text -

Payment

FieldName DataType Key

Payment_No Text Primary

Pass_No Text -

Pass_Name Text -

Payment_Mode Text -

Date_Payment Date/Time -

Amount_Paid Currency -

Received_By Text -

Route

FieldName DataType Key

Route_No Text Primary

RouteName Text -

Depot Text -

Destination Text -

Distance Text -

Page 37: Report Vms

Fare_Charged Number -

Schedules

FieldName DataType Key

Route_Name Text -

empNo Text -

Driver_Name Text -

Trip_No Number -

Date_Scheduled Date/Time -

Dept_Time Text -

Trips

FieldName DataType Key

Trip_No Text Primary

Bus_RegNo Text -

Route_No Text -

S_Date Text -

Page 38: Report Vms

CHAPTER 5APPLICATION

INTERFACE

Page 39: Report Vms

APPLICATION INTERFACE

5.1 Input / Output Interfaces

INPUT DESIGN

Input design is the process of converting user-oriented input to a computer based format. Input

design is a part of overall system design, which requires very careful attention .Often the

collection of input data is the most expensive part of the system. The main objectives of the input

design are …

1. Produce cost effective method of input

2. Achieve highest possible level of accuracy

3. Ensure that the input is acceptable to and understood by the staff.

Input Data

The goal of designing input data is to make entry easy, logical and free from errors as

possible. The entering data entry operators need to know the allocated space for each field; field

sequence and which must match with that in the source document. The format in which the data

fields are entered should be given in the input form .Here data entry is online; it makes use of

processor that accepts commands and data from the operator through a key board. The input

required is analyzed by the processor. It is then accepted or rejected. Input stages include the

following processes

Data Recording

Data Transcription

Data Conversion

Data Verification

Data Control

Data Transmission

Data Correction

Page 40: Report Vms

One of the aims of the system analyst must be to select data capture method and devices,

which reduce the number of stages so as to reduce both the changes of errors and the cost .Input

types, can be characterized as.

External

Internal

Operational

Computerized

Interactive

Input files can exist in document form before being input to the computer. Input design is

rather complex since it involves procedures for capturing data as well as inputting it to the

computer.

OUTPUT DESIGN

Outputs from computer systems are required primarily to communicate the results of processing

to users. They are also used to provide a permanent copy of these result for latter

consultation.Computer output is the most important and direct source of information to the users.

Designing computer output should proceed in an organized well through out the manner. The

right output must be available for the people who find the system easy o use. The outputs have

been defined during the logical design stage. If not, they should defined at the beginning of the

output designing terms of types of output connect, format, response etc,

Various types of outputs are

External outputs

Internal outputs

Operational outputs

Interactive outputs

Turn around outputs

All screens are informative and interactive in such a way that the user can ful fill his

requirements through asking queries.

Page 41: Report Vms

CHAPTER 6TEST CASE

DESIGN

Page 42: Report Vms

TEST CASE DESIGNSoftware testing is a critical element of software quality assurance and represents the ultimate

review of specification, design and code generation. Once source code has been generated,

software must be tested to uncover and correct as many errors as possible before delivery to the

customer. Our goal is to design a series of test cases that have a high likelihood of finding errors.

That’s where software-testing techniques come in to the picture. These techniques provide

systematic guidance for designing tests that Exercise the internal logic of software components

and Exercise the input and output domains of the program to uncover errors in program function,

behavior and performance.

6.1 White Box Testing:

White box testing is an approach to testing where the tests are derived from knowledge of

the software’s structure and implementation .It is usually applied to relatively small program

units such as sub-routines or the operations associated with an object or as small module of the

system. White box testing was performed at all levels of development of Online Recruitment

system. We took all care to test the code and guarantee that it meets all the specifications as well

as it is logically correct. All loops were tested and all internal data structures were evaluated and

verified.

6.2 Unit Testing:

Emphasizes the verification effort on the smallest unit of software design i.e. a software

component or module. Unit testing is dynamic method of verification , where program is actually

compiled and executed. Unit testing is performed parallely with coding phase. Unit testing tests

units or modules not the whole program.We have tested all windows individually. As the

modules were build up testing was carried out simultaneously, tracking out each and every kind

of input and checking the corresponding output until module is working correctly.

6.3 Integration Testing:

In integration testing a system consisting of different modules is tested for problems arising

from component interaction. Integration testing should be developed from the system

specification. Firstly, a minimum configuration must be integrated and tested.

Page 43: Report Vms

In our project we have done integration testing in a bottom up fashion i.e. in our project we have

started constrution and testing with atomic modules. After unit testing the modules are integrated

one by one and then tested for problems arising from component intraction.

6.4 System Testing

The purpose of the system testing is to consider all the likely variations to which it will be

suggested and push the systems to limits. The testing process focuses on the logical intervals of

the software ensuring that all statements have been tested and on functional interval is

conducting tests to uncover errors and ensure that defined input will produce actual results that

agree with the required results. Program level testing, modules level testing integrated and

carried out.

6.5 Black box Testing

Black box testing, also called “behavioral testing”, and focuses on the functional

requirements of the software. It helps to derive sets of input conditions that will fully exercise all

of the functional requirements for a program. This testing helps in finding the errors for the

following categories:

1. Incorrect or missing functions.

2. Interface errors.

3. Errors in the data structure or the external data access.

4. Performance errors.

5. Initialization errors

.

Page 44: Report Vms

CHAPTER 7OUTPUT SCREENS

Page 45: Report Vms

OUTPUT SCREENS7.1 Screenshots of Code Screens

LOGIN SCREEN

MAIN WINDOW

Page 46: Report Vms

ADDING NEW USER WINDOW

UPDATE EMPLOYEE DETAILS WINDOW

NEW BUS ENTRY WINDOW

Page 47: Report Vms

UPDATE BUS DETAILS WINDOW

ADD NEW ROUTE WINDOW

UPDATE ROUTE WINDOW

Page 48: Report Vms

BUS DETAILS WINDOW

SCHEDULING WINDOW

Page 49: Report Vms

BOOKING WINDOW

BUS REPORT WINDOW

Page 50: Report Vms

EMPLOYEE REPORT WINDOW

7.2 Important Coding

Page 51: Report Vms

//Main.java

import java.awt.EventQueue;import javax.swing.JFrame;

public class Main implements Runnable{ private final JFrame frame; public Main(JFrame frm){ this.frame=frm; }//constructor closed public void run(){ frame.setVisible(true); }//run method closed public static void main(String args[]){ new frmSplash(3000); EventQueue.invokeLater(new Main(new LoginScreen())); }//main method closed

}//class closed

//LoginScreen.java

import java.awt.Dimension;import java.awt.Font;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;

public class LoginScreen extends JFrame {

Page 52: Report Vms

private JLabel lblUsername, lblPasswd, lblCat; public JTextField txtUser; private JPasswordField txtPasswd; private JButton btnLogin, btnCancel; private JComboBox cmbCat; private Connection con; Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

public LoginScreen() { super("System Login"); this.getContentPane().setLayout(null); this.setSize(370, 250); this.setResizable(false); this.setLocation((screen.width - 500) / 2, ((screen.height - 350) / 2)); this.setDefaultCloseOperation(EXIT_ON_CLOSE);

lblUsername = new JLabel("Username"); lblPasswd = new JLabel("Password"); txtUser = new JTextField(); txtPasswd = new JPasswordField(); lblCat = new JLabel("Login As"); cmbCat = new JComboBox(); cmbCat.addItem("Manager"); cmbCat.addItem("Booking Clerk"); btnLogin = new JButton("Login", new ImageIcon(ClassLoader.getSystemResource("images\\Login.png"))); btnCancel = new JButton("Cancel", new ImageIcon(ClassLoader.getSystemResource("images\\Cancel.png")));

lblUsername.setBounds(40, 30, 100, 25); lblPasswd.setBounds(40, 65, 100, 25); lblCat.setBounds(40, 100, 100, 25); txtUser.setBounds(150, 30, 160, 25); txtPasswd.setBounds(150, 65, 160, 25); cmbCat.setBounds(150, 100, 160, 25); btnLogin.setBounds(70, 150, 100, 25); btnCancel.setBounds(190, 150, 100, 25);

lblUsername.setFont(new Font("monospaced", Font.BOLD, 16)); lblPasswd.setFont(new Font("monospaced", Font.BOLD, 16)); lblCat.setFont(new Font("monospaced", Font.BOLD, 16)); cmbCat.setFont(new Font("monospaced", Font.BOLD, 16));

Page 53: Report Vms

txtUser.setFont(new Font("monospaced", Font.CENTER_BASELINE, 16)); txtPasswd.setFont(new Font("monospaced", Font.CENTER_BASELINE, 16)); this.add(lblUsername); this.add(txtUser); this.add(lblPasswd); this.add(txtPasswd); this.add(btnLogin); this.add(btnCancel); this.add(lblCat); this.add(cmbCat); this.add(btnLogin); this.add(btnCancel);

ButtonListener listener = new ButtonListener(); btnLogin.addActionListener(listener); btnCancel.addActionListener(listener); con = DBConnection.getDBConnection(); if (con == null) { JOptionPane.showMessageDialog(null, "Error on establishing database connection", "Error", JOptionPane.ERROR_MESSAGE); this.dispose(); } }//constructor closed

public void login() { String username = txtUser.getText(); String password = txtPasswd.getText(); String SQL; String category = cmbCat.getSelectedItem().toString(); SQL = "SELECT * FROM users WHERE username='" + username + "' AND password='" + password + "'AND Category='" + category + "'"; try { Statement stmt = con.createStatement(); stmt.execute(SQL); ResultSet rs = stmt.getResultSet(); boolean recordfound = rs.next(); if (recordfound) { LoadMDIWindow(); this.dispose(); } else { JOptionPane.showMessageDialog(null, "The system could not log you in.\n" +

Page 54: Report Vms

" Please make sure your username and password are correct", "Login Failure", JOptionPane.INFORMATION_MESSAGE); txtUser.setText(""); txtPasswd.setText(""); txtUser.requestFocus(); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error on login operation", "Login Error", JOptionPane.ERROR_MESSAGE); }//try catch closed }//Login() closed public void LoadMDIWindow() { if (cmbCat.getSelectedItem().equals("Manager")) { new MDIWindow().LoginManager(); } else { new MDIWindow().LoginClerk(); } }//LoginValidity() closed private class ButtonListener implements ActionListener {

public void actionPerformed(ActionEvent e) { if (e.getSource() == btnLogin) { if (txtUser.getText() == null || txtUser.getText().equals("")) { JOptionPane.showMessageDialog(null, "Enter username", "Missing field", JOptionPane.DEFAULT_OPTION); txtUser.requestFocus(); return; } if (txtPasswd.getText() == null || txtPasswd.getText().equals("")) { JOptionPane.showMessageDialog(null, "Enter password", "Missing field", JOptionPane.DEFAULT_OPTION); txtPasswd.requestFocus(); return; } login(); } else if (e.getSource() == btnCancel) { System.exit(0); }//if else closed }//actionPerformed() closed }//ButtonListner class closed

Page 55: Report Vms

}//LoginScreen class closed

//MDIWindow.java

import java.awt.*;import java.text.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.sql.*;import javax.swing.plaf.metal.*;

public class MDIWindow extends JFrame implements WindowListener {

private JMenu mnuOperations, mnuFiles, mnuReports, mnuProcesses, mnuTools, mnuHelp; private JMenuItem mnuNewuser, mnuExit; private JMenuItem mnuBuses, mnuEmps, mnuRoutes, mnuPassengers; private JMenuItem mnuBooking, mnuScheduling, mnuPayment; private JMenuItem mnuBusRpt, mnuEmpRpt, mnuSchedRpt, mnuBookRpt; private JMenuItem mnuCalculator, mnuNotepad; private JMenuItem mnuUsrMannual; private JLabel welcome; public static JDesktopPane desktop; String StrBusinesTitle; public JButton NewJButton; Connection getConnection; public MDIWindow() { super("Bus Scheduling System");

this.setJMenuBar(CreateJMenuBar()); this.setExtendedState(MAXIMIZED_BOTH); this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); this.setIconImage(new ImageIcon(ClassLoader.getSystemResource("images/appicon.png")).getImage()); this.setLocation(0, 0); this.setSize(Toolkit.getDefaultToolkit().getScreenSize()); this.addWindowListener(this);

Page 56: Report Vms

welcome = new JLabel("Welcome: Today is " + new java.util.Date() + " ", JLabel.CENTER); welcome.setFont(new Font("monospaced", Font.BOLD, 12)); welcome.setForeground(Color.black); desktop = new JDesktopPane(); desktop.setBorder(BorderFactory.createEmptyBorder()); desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE); getContentPane().add(welcome, BorderLayout.PAGE_END, JLabel.CENTER); getContentPane().add(desktop, BorderLayout.CENTER);

setVisible(true); }//Constructor closed protected JMenuBar CreateJMenuBar() { JMenuBar menubar = new JMenuBar(); /**********CREATING OPERATIONS MENU***********************/ mnuOperations = new JMenu("Operations"); mnuOperations.setForeground((Color.blue)); mnuOperations.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuOperations.setMnemonic('O'); mnuOperations.setEnabled(false);

mnuNewuser = new JMenuItem("AddNew User"); mnuNewuser.setForeground(Color.blue); mnuNewuser.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuNewuser.setMnemonic('L'); mnuNewuser.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/users.png"))); mnuNewuser.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK)); mnuNewuser.setActionCommand("newuser"); mnuNewuser.addActionListener(menulistener);

mnuExit = new JMenuItem("Exit"); mnuExit.setForeground(Color.blue); mnuExit.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuExit.setMnemonic('E'); mnuExit.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/exit.png"))); mnuExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK)); mnuExit.setActionCommand("exit"); mnuExit.addActionListener(menulistener);

Page 57: Report Vms

mnuOperations.add(mnuNewuser); mnuOperations.addSeparator(); mnuOperations.add(mnuExit); menubar.add(mnuOperations);

/****************CREATING FILES MENU ********************/ mnuFiles = new JMenu("Files"); mnuFiles.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuFiles.setForeground((Color.blue)); mnuFiles.setMnemonic('F'); mnuFiles.setEnabled(false);

mnuBuses = new JMenuItem("Buses"); mnuBuses.setForeground(Color.blue); mnuBuses.setEnabled(true); mnuBuses.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuBuses.setMnemonic('B'); mnuBuses.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/Buses.png"))); mnuBuses.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, ActionEvent.CTRL_MASK)); mnuBuses.setActionCommand("buses"); mnuBuses.addActionListener(menulistener);

mnuEmps = new JMenuItem("Employees"); mnuEmps.setForeground(Color.blue); mnuEmps.setEnabled(true); mnuEmps.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuEmps.setMnemonic('E'); mnuEmps.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/Emps.png"))); mnuEmps.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK)); mnuEmps.setActionCommand("employees"); mnuEmps.addActionListener(menulistener);

mnuRoutes = new JMenuItem("Routes"); mnuRoutes.setEnabled(true); mnuRoutes.setForeground(Color.blue); mnuRoutes.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuRoutes.setMnemonic('R'); mnuRoutes.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/Routes.png")));

Page 58: Report Vms

mnuRoutes.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, ActionEvent.CTRL_MASK)); mnuRoutes.setActionCommand("routes"); mnuRoutes.addActionListener(menulistener);

mnuPassengers = new JMenuItem("Passengerss"); mnuPassengers.setForeground(Color.blue); mnuPassengers.setEnabled(false); mnuPassengers.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuPassengers.setMnemonic('P'); mnuPassengers.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/pass.png"))); mnuPassengers.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK)); mnuPassengers.setActionCommand("passengers"); mnuPassengers.addActionListener(menulistener);

mnuFiles.add(mnuBuses); mnuFiles.add(mnuEmps); mnuFiles.add(mnuRoutes); mnuFiles.add(mnuPassengers); menubar.add(mnuFiles);

/********************* CREATING PROCESSES MENU ***********************/ mnuProcesses = new JMenu("Processes "); mnuProcesses.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuProcesses.setForeground((Color.blue)); mnuProcesses.setMnemonic('P');

mnuScheduling = new JMenuItem("Scheduling"); mnuScheduling.setEnabled(false); mnuScheduling.setForeground(Color.blue); mnuScheduling.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuScheduling.setMnemonic('S'); mnuScheduling.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/schedule.png"))); mnuScheduling.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)); mnuScheduling.setActionCommand("scheduling"); mnuScheduling.addActionListener(menulistener);

mnuBooking = new JMenuItem("Booking");

Page 59: Report Vms

mnuBooking.setEnabled(false); mnuBooking.setForeground(Color.blue); mnuBooking.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuBooking.setMnemonic('B'); mnuBooking.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/Booking.png"))); mnuBooking.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K, ActionEvent.CTRL_MASK)); mnuBooking.setActionCommand("booking"); mnuBooking.addActionListener(menulistener);

mnuPayment = new JMenuItem("Payments"); mnuPayment.setForeground(Color.blue); mnuPayment.setEnabled(false); mnuPayment.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuPayment.setMnemonic('P'); mnuPayment.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/Payments.png"))); mnuPayment.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, ActionEvent.CTRL_MASK)); mnuPayment.setActionCommand("payments"); mnuPayment.addActionListener(menulistener);

mnuProcesses.add(mnuScheduling); mnuProcesses.add(mnuBooking); mnuProcesses.add(mnuPayment); menubar.add(mnuProcesses);

/************************* CREATING REPORTS MENU ********************/ mnuReports = new JMenu("Reports "); mnuReports.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuReports.setForeground(Color.blue); mnuReports.setMnemonic('R');

mnuBusRpt = new JMenuItem("Bus Report"); mnuBusRpt.setForeground(Color.blue); mnuBusRpt.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuBusRpt.setMnemonic('P'); mnuBusRpt.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/busreport.png")));

Page 60: Report Vms

mnuBusRpt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y, ActionEvent.CTRL_MASK)); mnuBusRpt.setActionCommand("busreport"); mnuBusRpt.addActionListener(menulistener);

mnuEmpRpt = new JMenuItem("Employee Report"); mnuEmpRpt.setForeground(Color.blue); mnuEmpRpt.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuEmpRpt.setMnemonic('P'); mnuEmpRpt.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/empreport.png"))); mnuEmpRpt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK)); mnuEmpRpt.setActionCommand("empreport"); mnuEmpRpt.addActionListener(menulistener);

mnuSchedRpt = new JMenuItem("Scheduling Report"); mnuSchedRpt.setForeground(Color.blue); mnuSchedRpt.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuSchedRpt.setMnemonic('S'); mnuSchedRpt.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/schedreport.png"))); mnuSchedRpt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.CTRL_MASK)); mnuSchedRpt.setActionCommand("schedulereport"); mnuSchedRpt.addActionListener(menulistener);

mnuBookRpt = new JMenuItem("Booking Report"); mnuBookRpt.setForeground(Color.blue); mnuBookRpt.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuBookRpt.setMnemonic('B'); mnuBookRpt.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/bookreport.png"))); mnuBookRpt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, ActionEvent.CTRL_MASK)); mnuBookRpt.setActionCommand("bookrepoort"); mnuBookRpt.addActionListener(menulistener);

mnuReports.add(mnuBusRpt); mnuReports.add(mnuEmpRpt); mnuReports.add(mnuSchedRpt); mnuReports.add(mnuBookRpt); menubar.add(mnuReports);

Page 61: Report Vms

/******************* CREATING TOOLS MENU ***************************/ mnuTools = new JMenu("Tools "); mnuTools.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuTools.setForeground(Color.blue); mnuTools.setMnemonic('T');

mnuCalculator = new JMenuItem("Calculator"); mnuCalculator.setForeground(Color.blue); mnuCalculator.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuCalculator.setMnemonic('C'); mnuCalculator.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/calc.png"))); mnuCalculator.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK)); mnuCalculator.setActionCommand("calculator"); mnuCalculator.addActionListener(menulistener);

mnuNotepad = new JMenuItem("Notepad"); mnuNotepad.setForeground(Color.blue); mnuNotepad.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuNotepad.setMnemonic('N'); mnuNotepad.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/notepad.png"))); mnuNotepad.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK)); mnuNotepad.setActionCommand("notepad"); mnuNotepad.addActionListener(menulistener);

mnuTools.add(mnuCalculator); mnuTools.add(mnuNotepad); menubar.add(mnuTools);

/*********************** CREATING HELP MENU **************************/ mnuHelp = new JMenu("Help "); mnuHelp.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuHelp.setForeground(Color.blue); mnuHelp.setMnemonic('H');

mnuUsrMannual = new JMenuItem("User Manual"); mnuUsrMannual.setForeground(Color.blue);

Page 62: Report Vms

mnuUsrMannual.setFont(new Font("monospaced", Font.PLAIN, 12)); mnuUsrMannual.setMnemonic('U'); mnuUsrMannual.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/help.png"))); mnuUsrMannual.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK)); mnuUsrMannual.setActionCommand("mannual"); mnuUsrMannual.addActionListener(menulistener);

mnuHelp.add(mnuUsrMannual); menubar.add(mnuHelp); return menubar; }//CreateJMenuBar()closed ActionListener menulistener = new ActionListener() {

public void actionPerformed(ActionEvent e) { String ActCmd = e.getActionCommand(); if (ActCmd.equalsIgnoreCase("calculator")) { try { Runtime.getRuntime().exec("calc.exe"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error,Cannot start calculator", "Applicaton Error", JOptionPane.ERROR_MESSAGE); }//try catch closed } else if (ActCmd.equalsIgnoreCase("notepad")) { try { Runtime.getRuntime().exec("notepad.exe"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error,Cannot start notepad", "Applicaton Error", JOptionPane.ERROR_MESSAGE); }//try catch closed } else if (ActCmd.equalsIgnoreCase("newuser")) { NewUser frm = new NewUser(); desktop.add(frm); frm.setVisible(true); } else if (ActCmd.equalsIgnoreCase("exit")) { ConfirmExit(); } else if (ActCmd.equalsIgnoreCase("buses")) { Buses frm = new Buses(); desktop.add(frm); frm.setVisible(true); } else if (ActCmd.equalsIgnoreCase("employees")) {

Page 63: Report Vms

Employee frm = new Employee(); desktop.add(frm); frm.setVisible(true); } else if (ActCmd.equalsIgnoreCase("routes")) { Route frm = new Route(); desktop.add(frm); frm.setVisible(true); } else if (ActCmd.equalsIgnoreCase("passengers")) { Passengers frm = new Passengers(); desktop.add(frm); frm.setVisible(true); } else if (ActCmd.equalsIgnoreCase("scheduling")) { Schedule frm = new Schedule(); desktop.add(frm); frm.setVisible(true); } else if (ActCmd.equalsIgnoreCase("booking")) { Booking frm = new Booking(); desktop.add(frm); frm.setVisible(true); } else if (ActCmd.equalsIgnoreCase("payments")) { Payment frm=new Payment(); desktop.add(frm); frm.setVisible(true); }else if(ActCmd.equalsIgnoreCase("busreport")){ Bus_Details frm=new Bus_Details(); desktop.add(frm); frm.setVisible(true); }else if(ActCmd.equalsIgnoreCase("empreport")){ employee_report frm=new employee_report(); desktop.add(frm); frm.setVisible(true); }else if(ActCmd.equalsIgnoreCase("schedulereport")){ Scheduling_report frm=new Scheduling_report(); desktop.add(frm); frm.setVisible(true); }else if(ActCmd.equalsIgnoreCase("bookrepoort")){ Booking_report frm=new Booking_report(); desktop.add(frm); frm.setVisible(true); } } };

Page 64: Report Vms

public void windowOpened(WindowEvent e) {

}

public void windowClosing(WindowEvent e) {

ConfirmExit(); }

public void windowClosed(WindowEvent e) { }

public void windowIconified(WindowEvent e) { }

public void windowDeiconified( WindowEvent e) { }

public void windowActivated(WindowEvent e) { }

public void windowDeactivated(WindowEvent e) { }

private void ConfirmExit() { String ObjButtons[] = {"Yes", "No"}; int PromptResult = JOptionPane.showOptionDialog(null, "Are you sure to exit?", "Confirm exit", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, ObjButtons, ObjButtons[1]); if (PromptResult == 0) { System.exit(0); }//if closed }//ConfirmExit() closed protected boolean isLoaded(String FormTitle) { JInternalFrame Form[] = desktop.getAllFrames(); for (int i = 0; i < Form.length; i++) { if (Form[i].getTitle().equalsIgnoreCase(FormTitle)) { Form[i].show(); try { Form[i].setIcon(true); Form[i].setSelected(true);

Page 65: Report Vms

} catch (Exception e) { } return true; } } return false; }//isLoaded() closed

public void LoginManager() { mnuOperations.setEnabled(true); mnuFiles.setEnabled(true); mnuBooking.setEnabled(true); mnuScheduling.setEnabled(true); mnuPayment.setEnabled(true); mnuRoutes.setEnabled(true); mnuEmps.setEnabled(true); mnuBuses.setEnabled(true); mnuPassengers.setEnabled(true); }//LoginManager() closed public void LoginSupervisor() { mnuFiles.setEnabled(true); mnuScheduling.setEnabled(true); mnuPayment.setEnabled(true); mnuRoutes.setEnabled(true); mnuEmps.setEnabled(true); mnuBuses.setEnabled(true); }//LoginSupervisor() closed public void LoginClerk() { mnuBooking.setEnabled(true); mnuPayment.setEnabled(true); mnuFiles.setEnabled(true); mnuPassengers.setEnabled(true); }//LoginClerk() closed }//class closed

// DBConnection.java

import java.sql.Connection;import java.sql.DriverManager;

Page 66: Report Vms

public class DBConnection { public static Connection getDBConnection() { Connection connection; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection = DriverManager.getConnection("jdbc:odbc:Bus"); return connection; } catch (Exception ex) { return null; }//try catch closed }//getDBConnection() closed

}//class closed

//Buses.java

import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.text.*;import javax.swing.*;import java.io.*;import java.text.*;import java.sql.*;import java.awt.print.*;import javax.swing.table.AbstractTableModel;

public class Buses extends JPanel implements Printable {

private static JTable tblBusList; private JScrollPane jsp; private JButton btnAddNew, btnRefresh, btnClose, btnUpdate, btnPrint; private JPanel tablePanel; private JPanel buttonPanel; private Statement stmt; Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); private SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); private static int selectedRow;

public Buses() { setSize(1000, 400);

Page 67: Report Vms

setLayout(new BorderLayout());

tblBusList = new JTable(new AbstractTable()); javax.swing.table.TableColumn column = null; for (int i = 0; i < 7; i++) { column = tblBusList.getColumnModel().getColumn(i); if (i == 4) { sdf.format(i); }//if btnClosed }//for btnClosed jsp = new JScrollPane(tblBusList); tablePanel = new JPanel(new GridLayout()); tablePanel.add(jsp);

btnAddNew = new JButton("Add New", new ImageIcon(ClassLoader.getSystemResource("Images/addnew.png"))); btnUpdate = new JButton("Update", new ImageIcon(ClassLoader.getSystemResource("Images/Update.png"))); btnRefresh = new JButton("Refresh", new ImageIcon(ClassLoader.getSystemResource("Images/Refresh.png"))); btnClose = new JButton("Close", new ImageIcon(ClassLoader.getSystemResource("Images/exit.png"))); btnPrint = new JButton("Print", new ImageIcon(ClassLoader.getSystemResource("Images/print.png"))); buttonPanel = new javax.swing.JPanel(new java.awt.FlowLayout()); buttonPanel.add(btnAddNew); buttonPanel.add(btnUpdate); buttonPanel.add(btnRefresh); buttonPanel.add(btnPrint); buttonPanel.add(btnClose);

add(tablePanel, BorderLayout.CENTER); add(buttonPanel, BorderLayout.PAGE_END);

try { stmt = DBConnection.getDBConnection().createStatement(); } catch (Exception excp) { JOptionPane.showMessageDialog(null, "Error on database connection", "Statement error", JOptionPane.ERROR_MESSAGE); }//try catch closed

reloaded(); btnAddNew.addActionListener(new java.awt.event.ActionListener() {

Page 68: Report Vms

public void actionPerformed(java.awt.event.ActionEvent e) { AddEntry frm = new AddEntry(); MDIWindow.desktop.add(frm); frm.setVisible(true); try { frm.setSelected(true); } catch (Exception ex) { } } }); btnClose.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); } }); btnRefresh.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { setVisible(false); reloaded(); setVisible(true); } }); btnPrint.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) { Bus_Details frm = new Bus_Details(); MDIWindow.desktop.add(frm); frm.setVisible(true); try { frm.setSelected(true); } catch (Exception ex) { } } }); btnUpdate.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) { String regNo, busNo, Model, capacity, db, is, ie, id; regNo = tblBusList.getValueAt(getSelectedRow(), 0).toString(); busNo = tblBusList.getValueAt(getSelectedRow(), 1).toString();

Page 69: Report Vms

Model = tblBusList.getValueAt(getSelectedRow(), 2).toString(); capacity = tblBusList.getValueAt(getSelectedRow(), 3).toString(); db = tblBusList.getValueAt(getSelectedRow(), 4).toString(); is = tblBusList.getValueAt(getSelectedRow(), 5).toString(); ie = tblBusList.getValueAt(getSelectedRow(), 6).toString(); id = tblBusList.getValueAt(getSelectedRow(), 7).toString(); UpdateEntry frm = new UpdateEntry(regNo, busNo, Model, capacity, db, is, ie, id); MDIWindow.desktop.add(frm); frm.setVisible(true); } }); }//constructor closed public static int getSelectedRow() { tblBusList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

javax.swing.ListSelectionModel rowSel = tblBusList.getSelectionModel(); rowSel.addListSelectionListener(new javax.swing.event.ListSelectionListener() {

public void valueChanged(javax.swing.event.ListSelectionEvent e) { if (e.getValueIsAdjusting()) { return; }

javax.swing.ListSelectionModel sel = (ListSelectionModel) e.getSource(); if (!sel.isSelectionEmpty()) { selectedRow = sel.getMinSelectionIndex(); } } });

return selectedRow; }

class AbstractTable extends AbstractTableModel {

private String[] columnNames = {"RegNo", "BusNo", "Model", "Capacity", "Date purchased", "Insurance Status", "Date Insured", "Expiry Date" }; private Object[][] data = new Object[50][50];

public int getColumnCount() {

Page 70: Report Vms

return columnNames.length; }

public int getRowCount() { return data.length; }

public String getColumnName(int col) { return columnNames[col]; }

public Object getValueAt(int row, int col) { return data[row][col]; }

public void setValueAt(Object value, int row, int col) { data[row][col] = value; fireTableCellUpdated(row, col); } }

public void reloaded() { try { String sql = ("SELECT * FROM Buses ORDER BY BusNo"); int Numrow = 0; ResultSet result = stmt.executeQuery(sql); while (result.next()) { tblBusList.setValueAt(result.getString(1).trim(), Numrow, 0); tblBusList.setValueAt(result.getString(2).trim(), Numrow, 1); tblBusList.setValueAt(result.getString(3).trim(), Numrow, 2); tblBusList.setValueAt(result.getString(4).trim(), Numrow, 3); tblBusList.setValueAt(result.getDate(5), Numrow, 4); tblBusList.setValueAt(result.getString(6).trim(), Numrow, 5); tblBusList.setValueAt(result.getDate(7), Numrow, 6); tblBusList.setValueAt(result.getDate(8), Numrow, 7); sdf.format(7); Numrow++; }//while closed } catch (SQLException sqlex) { JOptionPane.showMessageDialog(null, "Error on retrieving values", "Error", JOptionPane.ERROR_MESSAGE); }//try catch closed }//reloaded() closed

Page 71: Report Vms

public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException { Graphics2D g2 = (Graphics2D) g; g2.setColor(Color.black); int fontHeight = g2.getFontMetrics().getHeight(); int fontDesent = g2.getFontMetrics().getDescent();

//leave room for page number double pageHeight = pageFormat.getImageableHeight() - fontHeight; double pageWidth = pageFormat.getImageableWidth(); double tableWidth = (double) tblBusList.getColumnModel().getTotalColumnWidth(); double scale = 1; if (tableWidth >= pageWidth) { scale = pageWidth / tableWidth; }

double headerHeightOnPage = tblBusList.getTableHeader().getHeight() * scale; double tableWidthOnPage = tableWidth * scale;

double oneRowHeight = (tblBusList.getRowHeight() + tblBusList.getRowMargin()) * scale; int numRowsOnAPage = (int) ((pageHeight - headerHeightOnPage) / oneRowHeight); double pageHeightForTable = oneRowHeight * numRowsOnAPage; int totalNumPages = (int) Math.ceil(((double) tblBusList.getRowCount()) / numRowsOnAPage); if (pageIndex >= totalNumPages) { return NO_SUCH_PAGE; }

g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); g2.drawString("Page: " + (pageIndex + 1), (int) pageWidth / 2 - 35, (int) (pageHeight + fontHeight - fontDesent));//bottom center

g2.translate(0f, headerHeightOnPage); g2.translate(0f, -pageIndex * pageHeightForTable); if (pageIndex + 1 == totalNumPages) { int lastRowPrinted = numRowsOnAPage * pageIndex; int numRowsLeft = tblBusList.getRowCount() - lastRowPrinted; g2.setClip(0, (int) (pageHeightForTable * pageIndex),

Page 72: Report Vms

(int) Math.ceil(tableWidthOnPage), (int) Math.ceil(oneRowHeight * numRowsLeft)); } else { g2.setClip(0, (int) (pageHeightForTable * pageIndex), (int) Math.ceil(tableWidthOnPage), (int) Math.ceil(pageHeightForTable)); } g2.scale(scale, scale); tblBusList.paint(g2); g2.scale(1 / scale, 1 / scale); g2.translate(0f, pageIndex * pageHeightForTable); g2.translate(0f, -headerHeightOnPage); g2.setClip(0, 0, (int) Math.ceil(tableWidthOnPage), (int) Math.ceil(headerHeightOnPage)); g2.scale(scale, scale); tblBusList.getTableHeader().paint(g2);//paint header at top

return Printable.PAGE_EXISTS; }}//class closed

Page 73: Report Vms

CHAPTER 8CONCLUSION

Page 74: Report Vms

CONCLUSION7.1 Inferences Drawn This system has been successfully designed and the project aims have been met.All the requirement analysis, System analysis, Design and coding has been completed successfully.The design and coding of this application was a very challenging task in this project. It has been a great learning experience. The experience and skills acquired during designing of this project will prove to be very useful in our future career.

7.2 Future Scope Vehicle tracking technology can be combined with vehicle management system. This component is usually GPS-based. Once vehicle location, direction and speed are determined from the GPS components, additional tracking capabilities transmit this information to a vehicle management software application. Methods for data transmission include both terrestrial and satellite. Satellite tracking communications, while more expensive, are critical if vehicle tracking is to work in remote environments without interruption. Users can see actual, real-time locations of their fleet on a map. This is often used to quickly respond on events in the field. The analysis reporting tool includes many views such as vehicle economy, price of fuel, monthly and yearly costs and performance and plenty more

7.3 Limitations As it is a real world application so actually we have no authorization to implement

payment system so we can only show a dummy transaction for bus ticket booking.

Not any security manager for testing invalid login id.

Not actual transactions are made. It is just a simulation.

Passengers cannot view the bus and route details by themselves, they have to enquire through the booking clerk.

Page 75: Report Vms

USER MANUAL

Page 76: Report Vms

USER MANUAL

Before you compile the project you have to set the ODBC connection then only it will work properly

Let us see How to set ODBC connection (MS Access)

1. Click Start button +Click Settings

2. Click Control Panel

Page 77: Report Vms

3. Select Administrative tools + Click data Sources (ODBC)

4. Then you get ‘ODBC Data Source Administrator’ window (shown below) +Click Add Button

Page 78: Report Vms

5. Create New Data Source (shown below) +select Microsoft Access Driver (*.mdb,*.accdb) + press Finish button

6. ODBC Microsoft Access Set up (shown below) + gives Data Source Name

+select Database (Press select button) +select your database (shown below) + Press Ok button

Page 79: Report Vms

7. Before you close the window make sure that your DSN name is correct or not (shown below) +Press Ok button

Now you got the DSN name (Bus) this is the way for connecting ODBC.

Page 80: Report Vms

BIBLIOGRAPHY

Page 81: Report Vms

BIBLIOGRAPHY

References:

www.roseindia.net www.netbeans.org www.rationalrose.com www.office.microsoft.com www.wikipedia.com Java The Complete Reference - Herbert Schildt