Professional Documents
Culture Documents
Bus Ticket
Bus Ticket
in
A
PROJECT REPORT
ON
(2008-10)
Submitted By:
BRIJ MOHAN DAMMANI
200852200
Submitted to:
Symbiosis Centre for Distance Learning,
Pune 411016, Maharashtra, India
ACKNOWLEDGEMENT
A project like this takes quite a lot of time to do properly. As is often the case, this project
owes its existence and certainly its quality to a number of people, whose name does not
appear on the cover. Among them is one of the most extra ordinary programmers it has
been my pleasure to work with Mr. Ankur Kaushik, who did more than just check the
facts by offering thoughtful logic where needed to improve the project as a whole.
We also thank to Mr. Sh. Hardayal Singh (H.O.D. -MCA Deptt. Engineering College
Bikaner) who deserves credit for helping me done the project and taking care of all the
details that most programmers really dont think about. Errors and confusions are my
responsibility, but the quality of the project is to their credit and we can only thank them.
We are highly thankful and feel obliged to WaysIndia Travels staff members for nice
Co-Operation and valuable suggestions in my project work.
We owe my obligation to my friends and other colleagues in the computer field for their
co-operation and support.
We thank God for being on my side.
Contents
Chapter 1
Introduction
Chapter 2
Development model
Chapter 3
System Study
Chapter 4
Chapter 5
System Analysis
Chapter 6
Operating Environment
Chapter 7
System Design
Chapter 8
System Testing
Chapter 9
System Implementation
Chapter 10
Conclusion
Chapter 11
Introuction
In bus reservation system there has been a collection of buses, agent who
are booking tickets for customers journey which give bus number and departure
time of the bus. According to its name it manages the details of all agent, tickets,
rental details, and timing details and so on. It also manages the updating of the
objects.
In the tour detail there is information about bus, who has been taking
customers at their destination, it also contain the detailed information about the
customer, who has been taken from which bus and at what are the number of
members he or she is taking his/her journey.
This section also contain the details of booking time of the seat(s) or
collecting time of the tickets, this section also contain the booking date and the
name of agent which is optional, by which the customer can reserve the seats for
his journey
In Bus no category it contains the details of buses which are old/new. New
buses are added with the details with bus no, from city to the city, type of the bus,
rent of a single seat, if the bus has sleeper than the cost of sleeper, if the cabin has
the facility for sitting than the cost of cabin seats, tour timings of the new bus has
also been stored. How many buses are currently given and available in office?
In seats specification, it gives the list of given issued and currently available
seats and contain the information about seats like sleeper, cabin etc.
The main objective of this project is to provide the better work efficiency,
security, accuracy, reliability, feasibility. The error occurred could be reduced to
nil and working conditions can be improved.
Development model
Software Process Model
Our project life cycle uses the waterfall model, also known as classic life cycle
model or linear sequential model.
System/Information
Engineering
Design
Analysis
Code
Test
1.
Software requirements analysis involves requirements for both the system and the
software to be document and reviewed with the customer.
3.
Design
Code Generation
Once code has been generated, program testing begins. The testing focuses on the
logical internals of the software, ensuring that all statement have been tested, and
on the functional externals; that is, conducting test to uncover errors and ensure
that define input will produce actual results that agree with required results .
6.
Support
System Study
Before the project can begin, it becomes necessary to estimate the work to be done, the
resource that will be required, and the time that will elapse from start to finish. During
making such a plan we visited site many more times.
We started to asking context-free questions; that is, a set of questions that will lead
to a basic understanding of the problem. The first set of context-free questions was
like this:
What do you want to be done?
Who will use this solution?
What is wrong with your existing working systems?
Is there another source for the solution?
Can you show us (or describe) the environment in which the solution will
be used?
After first round of above asked questions. We revisited the site and asked many
more questions considering to final set of questions.
Are our questions relevant to the problem that you need to be solved?
Are we asking too many questions?
Should we be asking you anything else?
3.2.2 Feasibility
Not everything imaginable is feasible, not even in software. Software feasibility
has four dimensions:
Technologyis a project technically feasible? Is it within the state of the art?
Finance Is it financially feasible?
Timewill the project be completed within specified time?
Resourcesdoes the organization have the resources needed to succeed?
After taking into consideration of above said dimensions, we found it could be
feasible for us to develop this project.
Unfortunately, the first option, however attractive, is not practical. Cost estimates
must be provided Up front. However, we should recognize that the longer we
wait, the more we know, and the more we know, the less likely we are to make
serious errors in our estimates.
The second option can work reasonably well, if the current project is quite
similar to past efforts and other project influences (e.g., the customer, business
conditions, the SEE, deadlines) are equivalent. Unfortunately past experience has
not always been a good indicator of future results.
The remaining options are viable approaches the software project estimation.
Ideally, the techniques noted for each option be applied in tandem; each used as
cross check for the other. Decomposition techniques take a divide and conquer
approach to software project estimation. By decomposing a project into major
functions and related software engineering activities, cost and effort estimation can
be performed in the stepwise fashion.
Start
Requirement
Analysis
May 17, 2010
Design
May 24, 2010
Integration
and test
July 20, 2010
Coding
June 10, 2010
Finish
Aug 15, 2010
Documentation and
Report
Aug 1, 2010
Planned
start
Actual
start
Planned
complete
Actual
Complete
Notes
Wk1,d2
Wk1,d2
Wk1,d3
Wk1,d3
1.2 Defined
Analysis
Desiredoutput/control/input (OCI)
and design
Wk2,d1
Wk2,d2
is
Documented (OCI)
Wk2,d1
Wk2,d3
time
Wk3,d3
Wk3,d5
consuming.
Wk4,d1
Wk4,d2
Wk4,d3
Wk4,d5
Wk5,d1 Wk5,d2
Wk5,d5
Coding
Wk5,d1 Wk6,d1
W7,d5
Reports
Wk7,d6
W8,d6
more
W9,d1
W9,d3
W11,d3
Finish: Aug 15, 2010
System Analysis
Software requirements analysis is a process of discovery, refinement,
modeling, and specification. Requirement analysis proves the software designer
with a representation of information, function, and behavior that can be translated
to data, architectural interface, and component -level designs. To perform the job
properly we need to follow as set of underlying concepts and principles of
Analysis.
system elements.We have tried to takes above said principles to heart so that we could
provide an excellent foundation for design.
Data and control objects can be related to other data and control objects.
For example, the date object Status declare has one or more relationships with the
objects like total no of flying, period left for the maintenance of aircraft an others.
Information flow represents the manner in which date and control change
as each moves through a system. Referring to figure 6.1, input objects are
transformed to intermediate information (data and / or control), which is further
transformed to output. Along this transformation path, additional information may
be introduced from an existing date store ( e.g., a disk file or memory buffer). The
transformations applied to the date are functions or sub functions that a program
must perform. Data and control that move between two transformations define the
interface for each function.
Figure 5.1 Information flow and transformation.
Input
Objects
Transfor
mTransfor
m#1
#1
Intermediate
data and
control
Data/Contro
l Data/Contro
l
Store
Store
Transfor
mTransfor
m
#2
#2
Output
Object(s)
5.1.2 Modeling
The second and third operational analysis principles require that we build models
of function and behavior.
Functional models. Software transforms information, and in order to accomplish
this, it must perform at lease three generic functions:
Input
Processing
And output.
The functional model begins with a single context level model (i.e., the name of
the software to be built). Over a series of iterations, more and more functional
detail is gathered, until a through delineation of all system functionality is
represented.
Behavioral models. Most software responds to events from the outside
world. This stimulus/response characteristic forms the basis of the behavioral
model. A computer program always exists in some state- an externally observable
mode of behavior (e.g., waiting, computing, printing, and polling) that is changed
only when some even occurs. For example, in our case the project will remain in
the wait state until:
We click OK command button when first window appears
An external event like mouse click cause an interrupt and consequently
main window appears by asking the username and password.
This external system (providing password and username) signals the
project to act in desired manner as per need.
A behavioral model creates a representation of the states of the software and the
events that cause software to change state.
(1)
(2)
Horizontal partitioning:
System configuration
Password acceptance
Configure system
Acceptance
Rejection
Fail Retry
Operating Environment
6.1 Hardware Specification:
Server Side:
80 GB Hard Disk
Software Specification:
Environment: PHP Apache Server
Technologies: PHP,HTML,CSS,JS
Database: MY SQL
Software: NetBeans IDE
OS: Windows 7
Browser: IE7, IE8, FF 3.5
PHP
HP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source
general-purpose scripting language that is especially suited for web development and can
be embedded into HTML.
PHP web development means developing websites and dynamic web pages using the
versatile and capable server-side scripting language, PHP. It offers a plethora of benefits.
Not only is it open-source but also feature-rich and has all the functionality that a
proprietary or paid scripting language would offer. Here are a few benefits that have
made PHP web development so sought after.
#1 Free of Cost
PHP is open source and is developed and updated by a community of developers from
around the globe. Therefore, all its components are free to use and distribute.
#2 Capable
It can be used to design any type of website and can handle websites with a lot of traffic.
Facebook, Twitter, Wikipedia and many other very widely visited websites use it as their
framework. And because it is server-side scripting, it can do anything that other CGI
programs can do.
#3 Easy
It has a readable and easily understandable syntax. Its code is embedded in the HTML
source code and it is based on C/C++. Therefore, it is very familiar and programmers are
very comfortable coding with it.
#4 Platform Independent
It can be run on all major operating systems like Linux, UNIX, Mac OS and Windows.
#5 Supports All Major Web Servers
It supports all major web servers like Apache, Microsoft IIS, Netscape, personal
webserver, iPlanet server, etc.
#6 Supports All Major Databases
IT supports all major databases including MySQL, dBase, IBM DB2, InterBase,
FrontBase, ODBC, PostgreSQL, SQLite, etc.
#7 Faster Developments
It uses its own memory space and thus decreases the loading time and workload from the
server. The processing speed is fast and web applications like Ecommerce, CRM, CMS
and Forums are also developed faster by it.
#8 Secure
It has multiple layers of security to prevent threats and malicious attacks.
#9 Large Communities
It has a large community of developers who regular and timely updates tutorials,
documentation, online help and FAQs.
#10 Proven and Trusted
It is being used since close to two decades now since its inception in 1995. It is trusted by
thousands of websites and developers and the list is increasing day by day. It has also
proven its capability and versatility by developing and maintaining some of the most
highly visited and popular websites.
Choose PHP development for a fully-functional, dynamic and robust website and a much
better web experience.
nstead of lots of commands to output HTML (as seen in C or Perl), PHP pages contain
HTML with embedded code that does "something" (in this case, output "Hi, I'm a PHP
script!"). The PHP code is enclosed in special start and end processing instructions <?php
and ?> that allow you to jump into and out of "PHP mode."
What distinguishes PHP from something like client-side JavaScript is that the code is
executed on the server, generating HTML which is then sent to the client. The client
would receive the results of running that script, but would not know what the underlying
code was. You can even configure your web server to process all your HTML files with
PHP, and then there's really no way that users can tell what you have up your sleeve.
The best things in using PHP are that it is extremely simple for a newcomer, but offers
many advanced features for a professional programmer. Don't be afraid reading the long
list of PHP's features. You can jump in, in a short time, and start writing simple scripts in
a few hours.
We use PHP as part of our daily coding ritual. We all love to use many of the open source
frameworks and code snippets to make our lives easier. However, we also feel its
important that every developer has a full understanding of the core base PHP functions,
classes and methods. Without knowledge of these, how can you begin to understand how
all the frameworks out there operate?
We have compiled a selection of our top 10 native functions, classes and features that we
use on a daily basis. We know first-hand how invaluable these features are, so we hope
you find them to be useful too.
1. PDO Class
We use the PDO (PHP Data Object) exclusively for connecting to our MySQL databases.
PDO provides a nice abstraction layer around a set of database drivers such as MySQL,
PostgreSQL and MS SQL. This means that whichever database you are using, as long as
PDO supports it, you can use the same functions to perform the same actions on the
database. This makes your code more portable for your web application to be used on a
whole range of databases with no extra development time.
The PDO Class provides many standardised functions such as creating transactions,
creating prepared statements and allowing you to escape your variables if you need to.
Used in the correct way, PDO can help protect your web application from SQL injection
attacks.
The PDO class can be used directly, but we like to use our own layer over the top to give
us more control over things like data entry formatting and validation, which the PDO
class does not provide. RedBeanPHP ORM is a good open source solution that provides
some nice functionality that's built on top of PDO.
The example below shows a connection to a MySQL database that selects the name,
colour and calories from each row in fruit table. By using a prepared statement, PDO
converts the placeholders to match the array that is parsed in the execute function. By
using the prepared statement, all the values are escaped to protect from SQL injection.
The whole piece of code has been added to a try block, which can be used to catch any
exceptions.
With the rollout of PHP5.2 came two very useful functions that allow you to parse JSON
(JavaScript Object Notation) strings. JSON is a text-based standard that is generally used
to send and receive data with a simple structure that was designed to be easily read, both
by a computer and by a human.
PHP provides two functions that allow you to manipulate your data both to and from
JSON. json_encode is utilised by setting the first argument as your data. Be that a simple
string or a multi dimensional array, PHP will try to return a string of your data that has
been converted to a JSON formatted string. This string can then be used to output on an
API or included in your HTML template to be read by your JavaScript code on the front
end.
There are some caveats to using json_encode. For example, only basic data types can be
used. Strings, numbers and Booleans are the main types along with associative and nonassociative arrays. PHP will also try to convert class objects but will only encode public
properties. UTF8 is also used to encode the resulting string of JSON.
MYSQL
MySQL is the world's second most[a] widely used relational database management
system (RDBMS)[9] and most widely used open-source RDBMS.[10] It is named after
co-founder Michael Widenius's daughter, My.[11] The SQL acronym stands for
Structured Query Language.
The MySQL development project has made its source code available under the terms of
the GNU General Public License, as well as under a variety of proprietary agreements.
MySQL was owned and sponsored by a single for-profit firm, the Swedish company
MySQL AB, now owned by Oracle Corporation.[12]
MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open source web application software stack (and
other 'AMP' stacks). LAMP is an acronym for "Linux, Apache, MySQL,
Perl/PHP/Python." Free-software-open source projects that require a full-featured
database management system often use MySQL.
Internals and Portability
Written in C and C++.
Tested with a broad range of different compilers.
Works on many different platforms. See
http://www.mysql.com/support/supportedplatforms/database.html.
For portability, uses CMake in MySQL 5.5 and up. Previous series use GNU
Automake, Autoconf, and Libtool.
Tested with Purify (a commercial memory leakage detector) as well as with Valgrind, a
GPL tool (http://developer.kde.org/~sewardj/).
Uses multi-layered server design with independent modules.
Designed to be fully multi-threaded using kernel threads, to easily use multiple CPUs
if they are available.
Provides transactional and nontransactional storage engines.
Uses very fast B-tree disk tables (MyISAM) with index compression.
Designed to make it relatively easy to add other storage engines. This is useful if you
want to provide an SQL interface for an in-house database.
Uses a very fast thread-based memory allocation system.
Executes very fast joins using an optimized nested-loop join.
Implements in-memory hash tables, which are used as temporary tables.
Implements SQL functions using a highly optimized class library that should be as fast
as possible. Usually there is no memory allocation at all after query initialization.
Provides the server as a separate program for use in a client/server networked
environment, and as a library that can be embedded (linked) into standalone applications.
Such applications can be used in isolation or in environments where no network is
available.
Database Queries
The most common operation in SQL databases is the query, which is performed
with the declarative SELECT keyword. SELECT retrieves data from a specified
table, or multiple related tables, in a database. While often grouped with Data
Manipulation Language (DML) statements, the standard SELECT query is
considered separate from SQL DML, as it has no persistent effects on the data
stored in a database. Note that there are some platform-specific variations of
SELECT that can persist their effects in a database, such as the SELECT INTO
syntax that exists in some databases.
SQL queries allow the user to specify a description of the desired result set, but it
is left to the devices of the database management system (DBMS) to plan,
optimize, and perform the physical operations necessary to produce that result set
in as efficient a manner as possible. An SQL query includes a list of columns to be
included in the final result immediately following the SELECT keyword. An
asterisk ("*") can also be used as a "wildcard" indicator to specify that all
available columns of a table (or multiple tables) are to be returned. SELECT is the
most complex statement in SQL, with several optional keywords and clauses,
including:
The FROM clause which indicates the source table or tables from which the data
is to be retrieved. The FROM clause can include optional JOIN clauses to join
related tables to one another based on user-specified criteria.
The WHERE clause includes a comparison predicate, which is used to restrict the
number of rows returned by the query. The WHERE clause is applied before the
GROUP BY clause. The WHERE clause eliminates all rows from the result set
where the comparison predicate does not evaluate to True.
The GROUP BY clause is used to combine, or group, rows with related values
into elements of a smaller set of rows. GROUP BY is often used in conjunction
with SQL aggregate functions or to eliminate duplicate rows from a result set.
The HAVING clause includes a comparison predicate used to eliminate rows after
the GROUP BY clause is applied to the result set. Because it acts on the results of
the GROUP BY clause, aggregate functions can be used in the HAVING clause
predicate.
The ORDER BY clause is used to identify which columns are used to sort the
resulting data, and in which order they should be sorted (options are ascending or
descending). The order of rows returned by an SQL query is never guaranteed
unless an ORDER BY clause is specified.
The following is an example of a SELECT query that returns a list of expensive
books. The query retrieves all rows from the Book table in which the price column
contains a value greater than 100.00. The result is sorted in ascending order by
title. The asterisk (*) in the select list indicates that all columns of the Book table
should be included in the result set.
SELECT *
FROM Book
WHERE price > 100.00
ORDER BY title;
The example below demonstrates the use of multiple tables in a join, grouping,
and aggregation in an SQL query, by returning a list of books and the number of
authors associated with each book.
SELECT Book.title, count (*) AS Authors
FROM Book
JOIN Book_author
ON Book.isbn = Book_author.isbn
GROUP BY Book.title;
Example output might resemble the following:
Title
Authors
2
1
(The underscore character "_" is often used as part of table and column names to
separate descriptive words because other punctuation tends to conflict with SQL
syntax. For example, a dash "-" would be interpreted as a minus sign.)
Under the precondition that isbn is the only common column name of the two
tables and that a column named title only exists in the Books table, the above
query could be rewritten in the following form:
Chapter 7
System Design
Use Case
E-R DIAGRAM:
BUS RESERVATION
SYSTEM
Give
service
s
Divide
d
BUSES
Work
area
examin
e
Care
of
SLEEPER
OR
WITHOUT
SLEEPER
DIFFERENT
TYPE OF
BUSES
Work
s
Full
of
SEATS
DEPARTMENT
The following DFD shows how the working of a reservation system could be
smoothly managed:
WORK AREAS
AGENT
BUSES
RECORDS
RESERVED
AGENT
DAILY ENTRY
REC
VISITING
AGENT
AGENT
DETAILS
REPORT
TABLE
We have STARBUS as our database and some of our tables (relation) are
such as AGENT_BASIC_INFO, FEEDBACK, PASSANGER_INFO, STATIS and
TIMELIST
STARBUS
AGENTBASICINFO
FEEDBACK
PASSANGERIFNO
STATIS
TIMELIST
AGENT_BASIC_INFO
AGENT_ID
AGENT_NAME
AGENT_FNAME
AGENT_SHOP_NAME
AGENT_SHOP_ADDRESS
AGENT_SHOP_CITY
AGENT_PHON_NUMBER
AGENT_MOBIL_NUMBER
AGENT_CURRENT_BAL
In our FEEDBACK table we have fields like name, Email, Phon, Subject,
Comment, and User_type.
Email
Name
Phone
FEEDBACK
Comment
Subject
User_typ
e
C_name
C_phon
Bill_no
C_to
Status
PASSANGER
_INFO
Agent_id
Amount
C_from
C_time
Seat_no
Total_seat
Sno
Station_nam
e
Rate_perSeat
TIME_LIST
Bus_numbe
r
Time
Reach_time
PROCESS LOGIC:
As the privatization of buses is increasing thus the need of its smooth
management is also increasing the more we could facilitate the customers,
the more they are comfortable with us, the more customers we have visiting
our reservation unit .the above tables and modules facilitates many logics
like:
Number of buses in one unit
Number of computers in particular department
Number of users in a department
Which bus has what tour on which day
What are time table for different buses of different department
What are the schedule for buses
Schedule of a particular bus
How many buses are there
Each bus has how many seats
1. Index page
Admin
Chapter 8
System Testing
System Testing
Once source code has been generated, software must be tested to uncover (and
correct) as many errors as possible before delivery to customer. Our goal is to
design a series of test cases that have a high likelihood of finding errors. To
uncover the errors software techniques are used. These techniques provide
systematic guidance for designing test that
(1) Exercise the internal logic of software components, and
(2) Exercise the input and output domains of the program to uncover errors
in program function, behavior and performance.
(1) Internal program logic is exercised using White box test case design
techniques.
(2) Software requirements are exercised using block box test case design
techniques.
In both cases, the intent is to find the maximum number of errors with the
minimum amount of effort and time.
8.2 Strategies
A strategy for software testing must accommodate low-level tests that are
necessary to verify that a small source code segment has been correctly
implemented as well as high-level tests that validate major system functions
against customer requirements. A strategy must provide guidance for the
practitioner and a set of milestones for the manager. Because the steps of the test
strategy occur at a time when deadline pressure begins to rise, progress must be
measurable and problems must surface as earl as possible.
Following testing techniques are well known and the same strategy is adopted
during this project testing.
8.2.1 Unit testing: Unit testing focuses verification effort on the smallest unit of
software design- the software component or module. The unit test is white-box
oriented. The module interface is tested to ensure that information properly flows
into and of the program unit under test the local data structure has been examined
to ensure that data stored temporarily maintains its integrity during all steps in an
algorithms execution. Boundary conditions are tested to ensure that the module
operated properly at boundaries established to limit or restrict processing. All
independent paths through the control structure are exercised to ensure that all
statements in a module haven executed at least once.
constructing the program structure while at the same time conducting tests to
uncover errors associated with interfacing. The objective of this test is to take unit
tested components and build a program structure that has been dictated by design.
8.2.3 Validation testing: At the culmination of integration testing, software is
all steps in the testing process. Even at the unit level, the performance of an
individual module may be assessed as white-box tests are conducted.
Validation checks are useful when we specify the nature of data input. Let us
elaborate what I mean. In this project while entering the data to many text box you
will find the use of validation checks. When you try to input wrong data. Your
entry will be automatically abandoned.
In the very beginning of the project when user wishes to enter into the project, he
has to supply the password. This password is validated to certain string, till user
wont supply correct word of string for password he cannot succeed. When you try
to edit the record for the trainee in Operation division you will find the validation
checks. If you supply the number (digits) for name text box, you wont get the
entry; similarly if you data for trainee code in text (string) format it will be simply
abandoned.
A validation check facilitates us to work in a greater way. It become necessary for
certain Applications like this.
Chapter 9
System Implementation
9.1.2 Representation
As we know software requirement may be specified in a variety of ways.
However, if requirements are committed to paper a simple set of guidelines is well
worth following:
Chapter 10
Conclusion
To conclude, Project Grid works like a component which can access all the
databases and picks up different functions. It overcomes the many limitations
incorporated in the .NET Framework. Among the many features availed by the
project, the main among them are:
Simple editing
Chapter 11
Future scope of the project: The project has a very vast scope in future. The project can be implemented on
internet in future. Project can be updated in near future as and when requirement
for the same arises, as it is very flexible in terms of expansion. With the proposed
software of Web Space Manager ready and fully functional the client is now able
to manage and hence run the entire work in a much better, accurate and error free
manner. The following are the future scope for the project: The number of levels that the software is handling can be made unlimited
in future from the current status of handling up to N levels as currently laid
down by the software. Efficiency can be further enhanced and boosted up to
a great extent by normalizing and de-normalizing the database tables used
in the project as well as taking the kind of the alternative set of data
structures and advanced calculation algorithms available.
We can in future generalize the application from its current customized
status wherein other vendors developing and working on similar
References
References:
Programming in PHP
www.w3schools.com
http://en.wikipedia.org