Online railway reservation project
Table of Contents
1.1 Project Objective
1.2 Product Scope
2. SOFTWARE REQUIREMENTS SPECIFICATION
2.1 Requirement Analysis
2.2 Requirement Specification
3. SYSTEM REQUIRMENTS SPECIFICATION
3.1 External Interface Requirements
3.1.1 Hardware Requirements
3.1.2 Software Requirements
3.1.3 Display Mode
3.2 Project Description
4. Design and Technical Specification
4.1 Context Diagram
4.2 Data Flow Diagrams
4.3 Data Dictionary
4.4 ER diagram
4.5 Table Description
4.6 Architectural Diagram
5. Code Development
5.2 Component Level Design(Pseudo Code)
6. Testing Document
6.1 Black Box Testing with Test case design
6.2 White Box Testing
6.2.1 Flow graph
6.2.2 Independent Paths
6.2.3 Cyclomatic Complexity
7. Project Management
7.1 Function Point and Effort
7.3 Risk Table
7.4 Timeline Charts
8. Best Practices for Software Development
This project aims at development of an Online Railway Reservation Utility which facilitates the Railway customers to manage their reservations online, and the Railway administrators to modify the backend databases in a User-Friendly manner. The Customers are required to register on the server for getting access to the database and query result retrieval. Upon registration, each user has an account which is essentially the ‘view level’ for the customer. The account contains comprehensive information of the user entered during registration and permits the customer to get access to his past reservations, enquire about travel fare and availability of seats, make afresh reservations, update his account details, etc. The Railway Administrator is the second party in the transactions. The administrator is required to login using a master password, once authenticated as an administrator, one has access and right of modification to all the information stored in the database at the server. This includes the account information of the customers, attributes and statistics of stations, description of the train stoppages and physical description of coaches, all the reservations that have been made, etc. The railway administrator has the right to modify any information stored at the server database. The Indian Railways have been described as the best way to travel through India, as it is only a train journey that can truly help you connect with the country and its people.
The Indian Railways have been divided into different zones namely: The Central Indian Railways
Eastern Indian Railways
Western Indian Railways
Northern Indian Railways
Southern Indian Railways
The Indian Railways were divided under these categories to facilitate management and functionality and even though the booking system for Indian Railways is centrally computerised, managing such a huge network can be challenging and hence the Indian Railways decided to introduce online railway reservation to make booking train tickets easier and more convenient.
To take advantage of the Indian Railways online railway reservation users need to go to the IRCTC (Indian Railway Catering and Tourism Corporation Ltd) website (https://www.irctc.co.in), in addition to making bookings one can check the status of departing and arriving trains, train itineraries, ticket accessibility, postponing and cancelling railway bookings, make tatkal reservations, Indian Railways time table among others.
The special benefits of using the online railway reservation facility is that passengers can reserve their tickets from the comfort of their home or office without having to stand in long queues at railway stations or having to take the trouble to go to a travel agent. An online railway reservation can be done up to 90 days before your desired date of departure, but it is advised to plan your journey way ahead as the availability of tickets can be difficult, especially during vacation and wedding season.
An online railway reservation can be made right till the final reservation chart is made, that is usually 6 hours before the train leaves the station. The person in whose name the online booking has been made needs to prove his identity and may need the produce an identity document during the course of his journey. These identity cards must be issued by a reputed organization in the Central/State Government and include: PAN Card
Voter ID Card
Student ID Card
Passengers travelling on tickets that have been booked online need to take a print out of the e-ticket and keep it with themselves during the course of the journey a produce it when required
1.1 Project Objectives
Designing the application and of Railway Reservation System for the purpose of reserving railway tickets and database maintenance about train and passenger details by the railway department only. This database helps railways to retrieve data as and when required in future.
1.2 Project Scope
The scope of project included evaluation of the application and was primarily concerned with the transactions related to booking of tickets from the terminals operated by the railway personnel.
Application controls and simulation were used to evaluate data validation and program logic. The selected data, as made available, for substantive checking of the completeness, integrity and consistency of data using computer assisted applications such as MS Access.
The records maintained in the database of the railways reservation centre were also reviewed. Discussions were held with the database users to gain understanding regarding the various functional aspects of the system.
The booking database has passenger’s details like-
Name, Age, Gender, Total Number of Passengers Traveling, Date of Travel and Class of Travel.
The train database has train details like-
Train Name, Train Number, Route, From, To, Train Time, AC First Class, AC 2 Tier, AC 3 Tier, Sleeper, Second Sitting and Quota Management like General, Takkal.
The train details consist of train name, train no, destination reached by the train, number of passengers traveling and number of seats available. We can add a new train details.
We can delete it in case of his repair.
We can modify the train details in case of any
Inconvenience the name and number of train can be changed its destination can also be changed. The reservation details consist of passengers name, age, and sex destination they wanted to reach, ticket numbers, and seat number.
2.1 Requirement Analysis-
Due to this development project it will be easier for the railway system to make the customers journey as comfort as possible and so that to maintain the financial crisis of the system. Internet facilities can’t be provided within the time schedule. The integration of this software with existing system is more complex in the limited schedule.
2.2 Requirement Specification-
The need for railway reservation system is to organize the records of railway system in the computer based software. The main objective of this system is to provide an automated method to organize the files in order for easy observance. This system will allow adding, removing, modifying and updating the details of the trains and customer to database.
3. SYSTEM SPECIFICATION
3.1 External Interface Requirements
3.1.1 Hardware Requirements:
1. Processor – Pentium 4 2. RAM – 1 GB 3. Hard Disk – 40GB
4. Mouse – Standard Mouse 5. Keyboard – Logitech Keyboard 6. Processor Speed – 2.4GHZ
3.1.2 Software Requirements:
1. Operating System – Microsoft Windows XP With Service Pack 2 2. Front-End – Microsoft Visual Studio 2005 3. Back-End – Microsoft Access 2003
3.1.3 Display Mode:
1. Color Quality – Highest[32 bit] 2. Screen Resolution – 1024 by 768 Pixels
Development and operating environment-
This project is developed by,
Using WIN 32 platform.
Designing of screen shots with VB.Net.
Coding by VB.Net
Slide representation by MS power point.
Documentation by MS word.
3.2 PROJECT DESCRIPTION
3.2.1 FUNCTIONAL REQUIREMENTS
Functional requirement for this project is
Function 1: “Train Details”
The staff of railway system must be able to view the details of the train (i.e.) name, numbers of the train, destination, etc. of the train.
When a customer approaches they must be able to update the train details for customer convenience. INPUT: Details of train (internal and external). SOURCE: Trains.
OUTPUT: Number of passengers. DESTINATION: Area to be reached.
ACTION: To update the train details we require the train name, number, destination, timing, number of seat available. REQUIRES: The Database table having the details of the trains. PRECONDITION: None
SIDE EFFECTS: None
Function 2: “Railway Reservation Details”
The staff of railway system must be able to view the customer details for their reservation (i.e.) customer name, age, sex, seat number, ticket number. Description:
When passenger approaches they must be able to update the train details for passenger’s reservation in particular train. INPUT: Passengers details.
OUTPUT: Reserved seats for the passengers.
DESTINATION: Area where the passenger to be reached.
ACTION: To update the reservation details we require name of the passenger, age, sex etc. REQUIRES: The data base having the details of the reservation. PRECONDITION: The customer’s approach a week prior.
SIDE EFFECTS: None.
3.2.2 NON- FUNCTIONAL REQUIREMENTS
3.2.1 Reliability- The system is realiable enough as the database permanently stored and backups can be kept easily , as well as the hard copies of various reports also plays major roles here.
3.2.2Availability- The system should be available all the time as and when required .The availibility may be complete for administrator or partial for others.
3.2.3 Security- The system is secure enough , as limited peivilages are given to other . They cannot make any modification to database.
3.2.4Maintainability- The system should be easy to maintain for the administrator .
PROCESS MODEL DESCRIPTION-
1. Administrator: He is the super user responsible for managing system users, taking system backup,generating reports, maintaining organization details, Starting Sessions and ending Sessions and alsomanages various requests from different Types of users. Providing UserName, Password and other information required for the users to start an account. Starting Sessions: The Administrator creates the system users and will be assigned with the different roles. He is also responsible to start the session when a particular user wants to use the system every time(It is automatically managed setup). Managing Data Backup: The Administrator is responsible for managing entire details by taking the backup periodically. He also takes the Backup of the database in order to prevent loss of data on system crashes or inorder to prevent malfunctioning. He can take a backup of entire database or a particular section. Crash Recovery: The Administrator manages the crash recovery at the time of system crash orfailure occurs. Ending session: The administrator is responsible for ending the session when the particular user logged out of the system(It is automatically managed setup).
2. Train Master
The Train Master is Admin side module. The Administrator only can Add, modify and Delete the train Details. The Train Master contains the following details.
a) Train Name
b) Train No
e) Departure Time
f) Arrival Time
g) Total Seats
i) General Seats (1A, 2A, 3A, 2S, SL, CC)
j) Takkal Seats (1A, 2A, 3A, 2S, SL, CC)
k) Routes and Timings
The Ticket Booking is user (Employee of Railway Dept.) side module. The user can book the ticket using this module. The user should follow the steps for the ticket booking.
a) First you should select the Source and Destination.
b) Next, you should select the Date. While the date textbox got focus, the calendar will display. By clicking the calendar, the date will be selected. And you can’t select the yesterday and before date.
c) Select the Quota (General or Takkal).
d) Click the Find button to find the trains which are available.
1. If you select the Takkal Quota and the date is day after tomorrow in the sense, you can’t book the ticket for Takkal Quota for that day. The Takkal Quota will enable only today and tomorrow only.
e) After clicking the find button, the available train list will be displayed in the flex grid.
f) By clicking the train number or train name in the flex grid, the “Route”
button enabled. By clicking the route button, the corresponding train route, timings, and kms.
g) By clicking the class column to the corresponding train whichever you want to travel, then “Book” button will enable.
h) Click the “Book” button to enter the Name, Age, Sex and Berth.
i) After Enter the details, Click the Proceed Button.
j) The frame will display the overall details like Source, Destination, Travel Date, Booked Date, Total Members, Quota and Total Fare.
k) Click the “Confirm” Button to confirm the details. Then only the Booking details will be stored and PNR Number will be generated.
The Ticket Canceling is also user (Employee of Railway Dept.) side module. The user can cancel the ticket using this module. The user should follow the steps for the ticket Cancel.
a) Enter the PNR Number in the Textbox and Click Find.
b) It will show the details like Train No., Train Name, Booked Date, Travel Date, Source, Destination, Class, Quota, Total Fare, Kms in the Frame.
c) It also shows the passenger names, Age, Sex, Berth, Class, Fare and status in the flex grid.
d) Click the Name in the flex grid which you want to cancel and where the status is “Booked”.
e) Click the “Cancel” Button to cancel the ticket.
The Report Module is also user (Employee of Railway Dept.) side Module. The user can take two types of reports by giving the PNR Number.
a) Booked Tickets
b) Canceled Tickets
3. Design and Technical Specification
4.1 Context Diagram-
DATA FLOW DIAGRAM-
Data flow diagram is graphical representation that depicts information flow and the transforms that are applied as data move from input to output. The basic form of a data flow diagram, also known as a data flow graph or a bubble chart. The data flow diagram may be used to represent a system or software at any level of abstraction. The data flow diagram are mainly classified into two module they are,
Level 0 data flow diagram
Level 1 data flow diagram
LEVEL 0 DFD-
The level 0 data flow diagram is also called as a fundamental system model or context model represents the entire software element as a single bubble with input and output data indicated by incoming and outgoing arrows, respectively. Additional Processes and information flow paths are represented. The level 0 data flow diagram of our project consists of module like passengersdetail, train detail, display etc.
DFD for getting Display Train details.
DFD Requesting For Booking
Request for Booking
LEVEL 1 DFD –
The level 1 data flow diagram is similar to level 0 diagram, but here the modules where explained in detailed manner. But in this module the clear explanation for the project is represented.
Here the data dictionary is again classified into two important data base they are Train Details.
DATA BASE NAME: Railway system.
TABLE NAME: Train Detail.
NUMBER SPECIFIED FOR A PARTICULAR TRAIN
NUMBER OF PASSENGERS TRAVELLING
NUMBER OF PASSENGERS TRAVELLING
NUMBER SPECIFIED FOR A PARTICULAR TICKET
NUMBER OF SEATS AVAILABLE
NUMBER OF SEATS AVAILABLE
DATA BASE NAME: Railway System.
TABLE NAME: Reservation Detail.
NAME OF THE PASSENGER
AGE OF THE PASSENGER
NUMBER OF THE TRAIN
DESTINATION REACHED BY THE TRAIN
TIME OF DEPATURE
The other tool for problem analysis is the Entity-Relationship Diagram, often called as ER Diagram. In other words, a model that represents system data by entity and relationship sets is called E-R (Entity-Relationship) diagram. It is a detailed logical representation of the data for an organization. The entity-relationship (E-R) diagram is based on a perception of a real world which consists of a set of basic objects. E-R diagram is consists of three main constructs, i.e. Data Entities, Relationships and their Associated Attributes.
Entities: – An entity is a person, place, thing or event of interest to the organization and about which data are captured, stored or processed. For example, an employee is an entity. Relationship: – An association of several entities in an entity-relationship diagram is called relationship. There are three types of relationship exist among entities. These are: One-to-One
Attributes: – Each entity type has a set of attributes associates with it. An attribute is a property of characteristics of an entity that is of interest to the organization. I use an initial Capital Letters, followed by Lowercase Letters in naming an attribute. If an entity is something about which I want to store data, then I need to identify what specific pieces of data I want to store about each instance of a given entity. I call these pieces as data attributes.
The program flow chart shows how the system proceed from the input from to the outout from of the system. It explain how the system is actually processed step. It represent the flow of control as the system is processed. There are three types of program flow chart:
1. Input flow chat- This flowchart depicts the basic input operation in the system. In railway reservation system, first of all the password is checked then if the password is valid then we process the input from if the data valid then the entries are updated in the data base otherwise the from id refilled. 2. Output flow chart- This flowchart depicts the basic output operations in the system. The user is required to enter the criteria for output. If it is for the reservation then the availability of seats is checked. If the seats are available then the confirmed ticket is generated otherwise the user is asked for waiting and if he wants then waiting ticket is generated. If the user wants the seat to be cancelled it is done and the cancelled ticket is generated for the user. The information about all the above transaction is then transferred to the related databases. 3. Report flow Chart- This flow chart depicts the basic operations for the generation of reports. If the entries from basic operations for the generation of reports. If the entries from the processed database are valid the concerned report are generated otherwise the process will have to be repeated
Component Level Design(Pseudo Code)
Testing is basically a process to detect errors in the software product. Before going into the details of testing techniques one should know what errors are. In day-to-day life we say whenever something goes wrong there is an error. This definition is quite vast. When we apply this concept to software products then we say whenever there is difference between what is expected out of software and what is being achieved, there is an error. Software testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs. Software testing can also be stated as the process of validating and verifying that a software program/application/product: 1. meets the business and technical requirements that guided its design and development; 2. works as expected; and can be implemented with the same characteristics.
Software testing, depending on the testing method employed, can be implemented at any time in the development process. However, most of the test effort occurs after the requirements have been defined and the coding process has been completed. As such, the methodology of the test is governed by the software development methodology adopted. 6.2 Black Box Testing with Test case design-
Black box testing is a method of software testing that tests the functionality of an application as opposed to its internal structures or workings . Specific knowledge of the application’s code/internal structure and programming knowledge in general is not required. The tester is only aware of what the software is supposed to do, but not how i.e. when he enters a certain input, he gets a certain output; without being aware of how the output was produced in the first place. Test cases are built around specifications and requirements, i.e., what the application is supposed to do. It uses external descriptions of the software, including specifications, requirements, and designs to derive test cases. These tests can be functional or non-functional, though usually functional. The test designer selects valid and invalid inputs and determines the correct output. There is no knowledge of the test object’s internal structure.
Typical black-box test design techniques include:
1. Decision table testing
2. All-pairs testing
3. State transition tables
4. Equivalence partitioning
5. Boundary value analysis
White Box Testing-
White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality (i.e.blackbox testing). In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs. This is analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT). While white-box testing can be applied at the unit, integration and system levels of the software testing process, it is usually done at the unit level. It can test paths within a unit, paths between units during integration, and between subsystems during a system–level test. Though this method of test design can uncover many errors or problems, it might not detect unimplemented parts of the specification or missing requirements.
White-box test design techniques include:
1. Control flow testing
2. Data flow testing
3. Branch testing
4. Path testing
5. Statement Coverage
6. Decision Coverage