Ethiopian Railway Ticket Booking System Final Year Project
Ethiopian Railway Ticket Booking System Final Year Project
Prepared By:
Name ID No
Haramaya University
Haramaya, Ethiopia
HARAMAYA UNIVERSITY
Prepared By:
Name ID No
Haramaya University
Haramaya, Ethiopia
COLLEGE OF COMPUTING AND INFORMATICS
CERTIFICATE OF APPROVAL
We hereby certify that we have read and evaluated this Industrial Project I Ethiopian Railway
Ticket Booking System prepared under our guidance by the following students. We recommend
that it be submitted as fulfilling the Industrial Project I requirement.
Prepared By:
Name ID No
We, the undersigned, declare that this project is our original work and has not been presented for
a degree in any other university, and that all sources of materials for the industrial project I have
Name ID No
Dec,2023
This Project has been submitted for examination with my approval as an advisor
Dec,2023
i
ACKNOWLEDGEMENT
We would like to express our sincere gratitude to all those who have contributed to the
development of this project. First and foremost, we are deeply thankful to our advisors Mr. Tilahun
M. and Mr. Desalegn W. For their guidance, support and their continuous assistance and
encouragement throughout the preparation of this document as well as for the demonstration. They
were both our advisor and source of valuable information. Finally, thanks to our friends, who have
helped and given us suggestions and idea supports to develop this project.
ii
Table of Contents
DECLARATION ............................................................................................................................. i
ACKNOWLEDGEMENT .............................................................................................................. ii
Abstract .......................................................................................................................................... xi
1. INTRODUCTION ................................................................................................................... 1
iii
1.9.2. Technical Feasibility ............................................................................................... 13
iv
3.1. Class Modeling............................................................................................................... 39
4. IMPLEMENTATION ........................................................................................................... 63
v
4.6.1. Admin Manual ........................................................................................................ 75
References ..................................................................................................................................... 80
Appendix I .................................................................................................................................... 82
Appendix II ................................................................................................................................... 84
vi
List of Figures
vii
Figure 30: Admin Analytics Overview ......................................................................................... 76
Figure 31: Admin Logout ............................................................................................................. 76
Figure 34: User Register Screen ................................................................................................... 77
Figure 33: User Login Screen ....................................................................................................... 77
Figure 32: Welcome Screen .......................................................................................................... 77
Figure 35: User Booking Page ...................................................................................................... 77
Figure 36: User Home Page .......................................................................................................... 77
List of Tables
viii
Table 21:Route 1NF ...................................................................................................................... 55
Table 22:Journey 1NF................................................................................................................... 55
Table 23:Payment 1NF ................................................................................................................. 55
Table 24:Ticket 2NF ..................................................................................................................... 56
Table 25:Booking 2NF ................................................................................................................. 56
Table 26:Booking 2NF ................................................................................................................. 56
Table 27:Journey 2NF................................................................................................................... 56
Table 28:Relational Persistent Modeling ...................................................................................... 57
ix
List of Abbreviation
x
Abstract
The Ethiopian Railway Ticket Booking System aims to revolutionize the current Semi-automated
ticketing process by introducing a modern digital mobile platform. This transformative project
responds to the inefficiencies and limitations of the existing system, providing passengers with a
modernized and user-friendly experience. By incorporating mobile accessibility and dynamically
generated QR codes, the proposed system streamlines ticket reservations, enhances real-time
information access, and automates key processes, ultimately reducing processing times and
minimizing errors. The digital platform offers scalability, allowing for increased user demands,
and prioritizes security measures to ensure the integrity of passenger data. Through its innovative
features and a commitment to technological advancement, the project seeks to open the way in a
new era of efficiency and convenience in Ethiopian Railway ticket bookings, contributing to the
modernization of railway services and enhancing the travel experience for passengers.
xi
CHAPTER ONE
1. INTRODUCTION
The first digitized railway ticket booking system was launched by Indian Railways with the
introduction of the Computerized Reservation System (CRS) known as "Indian Railways
Passenger Reservation System (PRS)" on November 15, 1985. This marked a significant milestone
in the history of railway ticketing as it transitioned from manual methods to computerized systems
[1].
The initial implementation of the computerized reservation system aimed to streamline the ticket
booking process, reduce manual errors, and enhance the efficiency of railway operations. Over
time, digital ticketing systems have evolved globally, becoming commonplace in railway networks
around the world, contributing to improved customer convenience and operational efficiency.
In 2016 it was stated that The Addis Ababa Light Railway Transit (AALRT) will soon implement
an electronic ticketing system. The AA-LRT operates under the Ethiopian Railway Corporation
(ERC). The electronic ticketing using kiosk machines now is being implemented only in the capital
of Ethiopia, Addis Ababa [2].
The local Ethiopian Railway Ticket Booking System currently is semi-automated which needs the
physical presence of travelers at the stations in order to buy their ticket, hence this existing system
faces certain challenges and inefficiencies, prompting the need for a more advanced and automated
solution. The existing system is most likely to face challenges such as queue congestions, limited
accessibility, human errors, time-consuming process, ineffective record keeping, limited payment
options, overhead costs, scalability issues, customer dissatisfaction, security concerns, lack of real-
time information, inflexibility in modifications. Addressing these challenges by transitioning to an
automated railway ticket booking system can significantly enhance efficiency, customer
satisfaction, and overall operational effectiveness.
1
In today's advancing technological landscape, there is a rising demand for various ticketing
systems. Digital ticketing methods, including e-ticketing and m-ticketing, are often perceived as
similar concepts, yet they differ in crucial aspects. It's essential not to conflate the two, as each
operates independently and has distinct functionalities. While both fall under the umbrella of
digital ticketing, they have unique processes and characteristics that set them apart. Understanding
these differences is crucial to navigating and take advantage of their respective benefits effectively
[3].
E-ticket can be traced with the phrase ‘Print it’, it allows consumers to gain a certain amount of
time before events such as cinema and concerts or before travelling by plane, train or bus. E-
Tickets are different from traditional tickets. They provide a wide range of advantages that
traditional don’t offer. An E-ticket can be directly printed at home. Whereas M-ticket can be traced
with the phrase ‘Show it’, since it does not need to be printed. Holds on to various methods through
which it can be implemented depending on the technology used. In a system based on text
messaging, the user receives their ticket in the form of either an alphanumeric code or a barcode.
In a process based on a mobile application, the user carries out a transaction through the app and
receives a verification, such as a QR code, specific to their account. Among these methods the
proposed Ethiopian Railway Ticket Booking System is a system in which a user or traveler can
book and select travel payment methods through mobile application and checked in to the journey
through the QR code generated from the booking data entry result and payment confirmation.
This project as mentioned earlier mostly is under the category of usage of m-ticketing for
transforming the existing system of Ethiopian Railway Ticket Booking System into automated or
digital system, this distinct category is selected for the reason that mobile tickets offer more
advantages than traditional one’s better commodity for users, less queuing. And costs will also
drop because of the reduced printing and diffusion costs. Furthermore, it will be impossible to lose
your ticket. Consumers now gain time because they have the possibility to buy and use their tickets
whenever they want and wherever they are thanks to their smartphones. The M-ticket is also eco-
friendlier, compared to the E-ticket it doesn’t need to be printed, paper consumption will thus
decrease, making it even better for our planet.
The proposed system holds for the currently available and active routes provided by the ERC, with
certain features such as Process Payment, Search trip schedule by depart and destination, Reserve
2
Seat number, Consider Class type, Reservation code expiring time, Notifications, Schedule
Change and others.
The development of the Ethiopian Railway Ticket Booking System consists several motivations
behind it. The primary driving force behind initiating this project stems from the financial
constraints faced by university students, who typically fall within the low to medium income
brackets. Given this financial context, train travel emerges as the preferred mode of transportation
between home and campus. This preference is influenced by safety concerns with buses and the
financial challenges associated with air travel. Currently, purchasing train tickets involves process
of physically going to the stations in Dire Dawa and Addis Ababa, incurring wastage of time and
tiresome experience caused by waiting lines for purchasing tickets and being punished certain
amount of money for losing the paper ticket and cancellation of journey. Recognizing that many
university students share these difficulties, we propose the development of a system that can be
facilitated by the Ethiopian Railway Corporation (ERC). This system aims to allow travelers to
easily reserve and purchase train tickets through their smartphones, eliminating the need for
physical visits to the station and streamlining the payment process.
The other motivations which led us for the development of the proposed system are:
Generally, the motivation behind the Ethiopian Railway Ticket Booking System project is rooted
in a commitment to improving passenger experiences, embracing technological advancements, and
addressing the evolving needs of Ethiopia's growing railway infrastructure.
3
1.3. Statement of the Problem
Currently ERC is using a semi-automated system in which the ticket officers use computers to
insert user details every single time either that same or new user needs to buy ticket, which makes
it hard for the users to reserve and buy tickets whenever needed and as easily needed. As a context
to depict the problem , Most of students of Haramaya University and other customers of ERC
stated that they usually have to be present physically at the corresponding station whenever they
want to reserve and buy tickets, indeed one needs to be physically present at the station at the exact
time of start of the journey but it is not necessary to be physically present during reservation and
payment process of the travel ticket which creates tiresome experience for the customer and also
the staffs of ERC and cost incurred for manual resources such as paper and also the manual labor
itself.
Considering the context there are several challenges coming up with the usage of the existing
system such as:
➢ Queue Congestion: Long queues at ticket counters lead to congestion and delays for
passengers, especially during peak travel times.
➢ Limited Accessibility: Passengers may face difficulties accessing ticket counters, limiting
their ability to purchase tickets conveniently.
➢ Human Errors: Semi-automated processes are prone to human errors, such as incorrect
data entry, leading to discrepancies in ticket information and potential customer
dissatisfaction.
➢ Time-Consuming Process: The Semi-automated ticketing process is time-consuming,
both for passengers waiting in line and for the staff processing transactions, resulting in
inefficiencies.
➢ Ineffective Record-Keeping: The existing record-keeping systems may lack accuracy and
can be challenging to maintain, making it difficult to track passenger information and
manage the overall ticketing process efficiently.
➢ Limited Payment Options: Traditional ticket booking often involves limited payment
options, restricting passengers to cash transactions and excluding more modern payment
methods.
4
➢ Overhead Costs: Maintaining semi-automated ticketing processes involves higher
overhead costs, including paper, and other resources, contributing to operational expenses.
➢ Customer Dissatisfaction: Delays, errors, and inefficiencies in the semi-automated
booking process contribute to customer dissatisfaction, impacting the overall passenger
experience.
➢ Security Concerns: The existing system lack robust security measures, making them
susceptible to fraud, ticket tampering, or other security breaches.
➢ Lack of Real-time Information: Passengers may face challenges obtaining real-time
information about ticket availability, schedules, and other relevant details, leading to
inconvenience and uncertainty.
➢ Inflexibility in Modifications: Making changes to booked tickets or accommodating last-
minute adjustments can be difficult and may require additional semi-automated
interventions.
In order to overcome the stated problem and sub-problems coming up with it we have proposed a
technological solution coined as Ethiopian Railway Ticket Booking System based on QR-code
generation.
➢ The main objective of this Project is to develop a Digital means of ticketing for Ethiopian
Railway Corporation.
5
➢ To provide seat selection feature using seat maps
➢ To Develop an Admin Panel for System Management
➢ To Implement Ticket Modification and Cancellation
➢ To Provide User Notifications
➢ To Provide Comprehensive System Documentation
The methodology section of a project outlines the approach, tools, and techniques that will be
employed to achieve the objectives of the project or development effort. For this project here the
Iterative waterfall methodology is utilized as a methodology.
6
Figure 1:Iterative Waterfall
Iterative model was introduced because of problems faced in Waterfall model. The iterative
waterfall model is used in the development of the system. The system is developed in increments,
each increments adding some functional capability to the system until the full system is fully
implemented. The advantage of this approach is that it will result in better testing, as testing of
each increment is easier than testing the entire system in totality. Furthermore, this approach
provided us with important feedback that was very useful in the implementation of the system.
The iterative waterfall model is very similar to the classical waterfall model, but there are feedback
paths; these feedback paths make the model realistic [5].
7
Stages of the model used for this project include:
8
Characteristics and Considerations of the model:
✓ Sequential Flow: Each stage must be completed before moving on to the next.
✓ Document-Driven: Emphasis on extensive documentation at each stage to provide a clear
record of requirements, design, and other decisions.
✓ Inflexibility: Changes to requirements after the project has started are discouraged and may
be costly to implement.
✓ Well-Suited for Well-Defined Projects: Waterfall is often best suited for projects with well-
defined and stable requirements.
✓ Mobile application: through which the users (Passengers) experience the booking system
and
✓ Web Application: through which the Administrators and Ticket Officers experience the
booking system
It encompasses distinct framework and programming languages to develop the mentioned modules
and provide an integrated common database in between them.
This project uses flutter which is an open-source UI software development toolkit created by
Google for building natively compiled applications for mobile, web, and desktop from a single
codebase. It allows developers to use a single codebase to create applications for different
platforms, reducing development time and effort.
Flutter primarily uses the Dart programming language. Dart is a modern, object-oriented language
with a syntax that is easy to learn. It was developed by Google, and it's designed for building web,
mobile, and server applications [6].
9
Back-End development: Firebase (Cloud Firestore)
Here, it is intended to use the firebase as a back-end for both the mobile application and the web
modules as a central back-end server.
To do this project, the project team uses data collection methodology to gather the necessary
information that is needed to develop this project. The project team used Interview as a primary
data collection method and document analysis and Internet as a secondary data collection method.
1. Interview: Informal interviews are utilized in order to gain information required for both
the documentation and implementation phase of the project.
2. Document Analysis: To get more information about our project we have used documents
that help us to develop our project. During the analysis of documents, we give special
consideration to those documents which can bring more features to our system.
10
3. The Internet: We have utilized the official pages of ERC and EDR for gathering different
requirements that helped as on the development of models of several activities.
The project limits its encompassing areas with respect to various phenomena. Geographically the
system focusses on the Ethiopian railway network which has Addis Ababa to Dire Dawa as its
main route and vice versa, covering major routes and stations within the country, as mentioned
earlier currently active local route is the Addis Ababa- Djibouti Railway line while the other two
are not currently available, the system’s user scope limits with the primary users of the system
being passengers looking to book railway tickets. The system allows users to search, select, and
book railway tickets. The system will be developed using specific programming languages,
frameworks, and technologies as outlined in the methodology.
The Ethiopian Railway Corporation (ERC) is engaged in both passenger and freight transportation.
Our current project exclusively centers on passenger transport, with a particular emphasis on the
ticketing service offered within the main stations along the primary routes. While the corporation
delivers various services at these stations, such as residence assistance for guiding travelers and
guards for physical security, our project's scope is confined to the ticketing service, excluding other
station services.
The project’s security measures are also limited to protect user data, financial transactions, and the
overall integrity of the system. A notification system is integrated to update users on booking
status, modifications, and cancellations.
The project consists of its mentioned scope boundaries and delimits the following areas which are
specified with respect to certain phenomena, Geographically the system will not cover further
international railway routes. In accordance to its functionality the project will not include features
unrelated to the core functionalities of ticket booking which is QR code generation, and associated
processes. The system is directed not to employ technologies or frameworks outside of those
11
specified in the methodology, and finally notification system will not cover every possible
communication channel but will focus on essential updates for users.
The result of the project is expected to contribute to the main actors who are currently taking part
in the existing semi-automated system used by ERC which are The Passengers and the Ticket
Officers working in ERC.
The project is also anticipated to serve as a guiding example for future developers, providing
valuable insights on the seamless transformation of manual ticket booking and seat reservation
systems within the Ethiopian transportation sector into efficient digital platforms. The project
documentation and implementation will stand as a mentor, offering a blueprint for the
digitalization of various transportation modes, facilitating a smoother transition for upcoming
developers in Ethiopia.
Feasibility study is the process of determination of whether or not a project is workable [9].
Economic feasibility identifies that whether the new developing system is economically feasible
or not. Economic justifications include a broad range of concerns that include cost benefits
analysis.
Since the system is being automated to avoid extreme problems of semi-automated ticketing
system, this in return helps them to increase satisfaction that they can get before.
For the project we are working on we have the following benefits and costs.
➢ Tangible Benefits:
The primary benefit of this project stems from the implementation of a newly computerized
system, aiming to decrease the resources allocated to semi-automated operations.
12
Intangible Benefits:
Technical feasibility is a study of resource availability that may affect the ability to achieve an
acceptable system.
The evaluation determines whether the technology needed for the proposed system is available or
not. And in our case the technology needed for this project are available.
It is a measure of how well a proposed system solves the problems and how it satisfies the
requirements identified in the requirements analysis phase of system development.
On this study we can identify whether the process in the new Ethiopian Railway Ticket Booking
System can satisfy all the needs present in the requirement analysis phase or not.
The project is intended to be with in fixed time interval. Unless and otherwise we may fail in
difficulty in cost estimation and as well as we may fail in the financial problem, to overcome such
13
problem we fixed the time interval in which we should finish the development of the whole time
among different section of project by using the one of two techniques of schedule which are PERT
(Project Evaluation Review Technique) and Gant Chart. Well, we use Gant chart for our planning
and project review schedule.
A project budget is a plan that details how much you'll spend, for what, and by when. When you
create a budget plan in advance and use it to monitor spend throughout your project, you can reduce
the likelihood that you'll run out of resources or go over budget—a common occurrence in many
workplaces [10].
14
the time of not being in the
computer laboratory but other
places.
Print Printing document for hard 300 ETB
copy submission of the system
documentation
Personal Expense Costs for meetings on lounges 1500 ETB
Paper, Pen and Pencil Usage - 500ETB
TOTAL - 3900ETB
In our project, we have 4 members where each of us has specified work and also the projects are
supervised by one of our members.
The table below describes the types of tasks and also responsibility each of us can have:
15
Documentation Oliyad Temesgen System analysis and design documentation
Reviewer reviewing and find errors and gaps left unseen by
the rest of team members
Code Mohammed Molla & Writing the code for the proposed system and
(Implementation) Yosef Israel integration of front-end and back-end
developments.
Testing Minase Amanuel Finally putting the developed system in to test
using well-known testing techniques.
While working on our project, we use the following techniques in order to meet one another and
communicate by exchanging our suggestions and ideas.
The structure of this work comprises four chapters, each contributing to a thorough comprehension
of the project. In the initial chapter, an introduction to the project is presented, offering a detailed
overview of the system. This includes background information on the previous works related to
the system, establishing the project's context. Additionally, the chapter articulates the problem
statement, explaining the specific challenges the system seeks to address. To provide a clear project
direction, both general and specific objectives are defined. The chapter also outlines the scope of
16
the system, precisely describing project boundaries. A brief explanation of the development
methodology is provided, and the significance of the proposed application is underscored,
emphasizing its potential impact and benefits.
The second chapter is dedicated to user requirements and analysis. Here, an analysis of the existing
system is conducted, identifying any limitations or bottlenecks that necessitate resolution. The
chapter explores functional requirements, precisely describing the specific features and
functionalities the proposed system should incorporate.
The third chapter offers a detailed insight into the system design for the proposed system. It
clarifies how the system is intended to function, encompassing various components and modules.
The chapter dives into the architecture and design. This section acts as a blueprint for the
development process, guiding implementation and ensuring a well-designed, cohesive application.
The fourth chapter depicts about the implementation phases that have already taken place by the
project team, the sample code and prototype of the system followed by the results for different
testing types in context with the proposed system and the user manual which can help users of the
system to utilize the app easily and finally it holds on to conclusion of the whole idea of the paper
and the system and also recommendations to different personnels.
17
CHAPTER TWO
An examination of the current semi-automated Ethiopian Railway ticket booking system reveals
an operational method that relies on both computers based on the ticket officer side and non-
automated processes on the user’s side. In this existing system, the booking of railway tickets is
managed through semi-automated procedures with a very little assistance of technological tool on
the ticket officer’s side. Customers typically engage with railway staff directly in person or through
non-digital means, to inquire about ticket availability, make reservations, and complete the
booking process.
Despite its reliance on human interactions, the semi-automated system may present certain
challenges, including potential inefficiencies, longer processing times, and a higher likelihood of
errors in data entry or ticket allocation. Additionally, the absence of automation may limit the
system's ability to provide real-time updates, hinder scalability, and pose challenges in adapting to
increasing demands for railway services.
In summary, the existing Semi-automated Ethiopian Railway ticket booking system operates
through conventional, non-digital methods for users, relying on human interactions. The
assessment of this system lays the groundwork for exploring the need for and benefits of
transitioning to a more modern and automated approach.
The proposed Ethiopian Railway ticket booking system represents a transformative shift from the
existing semi-automated processes to a fully digital mobile ticketing platform. This innovative
system aims to make use of modern technologies to streamline and enhance the efficiency of the
ticket booking experience for both passengers and railway personnel.
Mobile Accessibility
18
The proposed system introduces mobile accessibility, allowing passengers to perform ticket
bookings using their smartphones. This provides users with the convenience of making
reservations anytime, anywhere.
QR Code Integration
A notable feature of the system is the incorporation of dynamically generated QR codes. These
QR codes serve as digital representations of tickets, facilitating secure and efficient ticket
validation.
Real-Time Updates
Unlike the semi-automated system, the proposed digital platform offers real-time updates on ticket
availability, trip schedules, and other relevant information. Passengers can access the latest
information, ensuring a more informed and convenient booking process.
Efficient Record-Keeping
The system employs digital databases for efficient record-keeping. Passenger details, booking
history, and trip schedules are stored electronically, reducing the reliance on semi-automated
paperwork and minimizing the risk of errors.
Automated Processes
Automation is introduced in various processes, including ticket allocation, seat reservations, and
payment processing. This automation contributes to faster transaction processing and a reduction
in semi-automated intervention.
User-Friendly Interface
A user-friendly interface is prioritized to enhance the overall user experience. Both passengers and
railway personnel can navigate the system effortlessly, contributing to increased user adoption.
Security Measures
Security features, including secure transactions and secure user authentication, are implemented
to safeguard passenger information and ensure the integrity of the ticketing process.
19
Here, user selects the seat before payment, Hence if the user did not finish purchasing the ticket
and is only on booked status the seat will not be fully reserved where as if the user completes its
navigation to purchase the ticket including the payment process the selected seat will be reserved
for that specific passenger.
The system integrates with secure payment gateways, allowing passengers to make secure online
payments for their bookings. This adds a layer of convenience and flexibility to the payment
process.
The proposed Ethiopian Railway ticket booking system represents a digital transformation aimed
at improving accessibility, efficiency, and user experience. By incorporating mobile ticketing, QR
code technology, and automation, the system aims to overcome the limitations of the existing semi-
automated system and usher in a new era of modern and convenient railway ticket bookings.
The functional requirements of the "Ethiopian Railway Ticket Booking System" outline the
specific capabilities and features that the system must possess to meet the needs of its users. These
requirements are essential for the successful development and operation of the system. The
following functional requirements are identified for the project:
• User Registration and Authentication: Users should be able to create accounts securely.
The system should authenticate users during the booking process.
• Search and View Train Schedules: A search feature to find available trains based on
criteria like date, time, and destination. Display detailed train schedules, including
departure and arrival times.
• Seat Availability and Selection: Show the availability of seats found in the train. Allow
users to select and reserve specific seats.
• QR Code Generation: Dynamically generate a unique QR code for each purchased ticket.
The QR code should contain essential details like the user's information, journey details.
• Booking and Payment Processing: Provide a user-friendly booking process with a step-
by-step interface. Support payment process securely for ticket purchases.
20
• Ticket Confirmation and Receipt: Display a confirmation of the booked ticket. Email or
SMS the user the ticket details and a digital confirmation containing the QR code.
• User Profile Management: Allow users to manage their profiles, including updating
personal information and viewing booking history.
• Reservation Expiring time: Ensure real-time validation to prevent the use of duplicate or
expired QR codes.
• Cancellation: Enable users to cancel booked tickets.
• Admin Dashboard: An administrative interface to manage user accounts, train schedules,
and bookings.
• Notification System: Automated email or SMS notifications for booking confirmation,
changes in schedule, or cancellations.
• Mobile Responsiveness: Develop a responsive design to facilitate easy use on various
devices, including smartphones and tablets.
Class Responsibility Collaboration (CRC) cards are a brainstorming tool used in the design of
object-oriented software. It is a collection of standard index cards that have been divided into
three sections [11].
21
A. Actor Classes CRC
Admin <<Actor Class >>
22
Ticket Officer <<Actor Class>>
B. UI Classes CRC
23
Ticket Officer UI <<UI Class>>
Booking<<Business Class>>
24
• Book_id • User<<Actor Class>>
• Date • Journey<<Business Class>>
• User Details • Route<<Business Class>>
• Trip Summary
25
Journey <<Business Class>>
Business rules are the policies and procedures that govern the operation of the system [12].
Identifying the business rule of the proposed system help to ensure that the system is used in a
consistent and effective manner and also to specify and describe each use case in an effective way.
• Users must register with valid and verifiable personal information to create an account.
• Authentication is mandatory for accessing any booking-related functionalities.
• Users are allowed a single account, and account sharing is strictly prohibited.
• Each user can select an option for a one-way trip round trip.
• Each User can select the class type whether it is hard seat, hard sleeper or soft sleeper.
• Rule: Ticket bookings must be made at least 24 hours before the departure time.
BR 03: Payment
• Payment must be made at the time of booking using approved and secure payment methods.
26
• The system must display accurate and up-to-date train schedules, including arrival and
departure times.
• Rule: Train schedules may be subject to change, and users must be notified in advance.
• Users can select their preferred seats before payment; Hence the seat will be approved as
taken if only user has paid for the booking, subject to availability.
• Users should receive email and/or SMS notifications for successful bookings, changes in
schedule, and other relevant updates.
➢ Reliability: The system should be reliable and matured enough in giving its service.
➢ Workability: The system should be suitable for all the users. It should be accurate in
performing its functions and secured enough from attacks by external users. It should be
fully functional in terms of providing all the functions expected it to perform.
➢ Efficiency: The system should be efficient and the response time should be minimal. It
should be capable of running on minimum hardware requirements.
➢ Usability: The system should be understandable by all users. The Interface should be easy
to use and it should have a customary look and feel so that users can easily be familiar with
the system.
27
➢ Maintainability: The system should be easily maintainable in case of problem and gives
consistent services all times without fluctuation since there is internet connection and
should be testable.
➢ Availability: The system is available for the users whenever there is an internet connection.
➢ Security: The system should be securing from external attackers and internet issue. It
should have user’s database and should authenticate each user on login and should grant
user specific services.
An Essential use case is a structured narrative, expressed in language of the application domain
and of users, comprising a simplified, generalized, abstract technology-free and implementation
independent description of one task or interaction that is complete, meaningful and well-defined
from the point of view of users in some role in relation to a system and that embodies the purpose
or intentions underlying the interaction [14].
28
2.6.2. Essential Use Case Description
A system use case describes the interaction between the user and system in a more detailed way
than essential use case. It is a type of UML (Unified Modeling Language) diagram that visually
represents the interactions between external actors (such as users or other systems) and a system
29
[15]. It is a high-level diagram used to capture the primary functionalities or use cases of a system
and the actors involved in those interactions.
30
2.6.4. System Use Case Description
Use Case ID UC 01
Description This use case enables users to initiate their interaction with the system by
inputting specific personal details., during the initial installation of the
application.
Actors Passengers
Post Condition Passenger will be registered as a user of the system and will have an
account to which he/she can login whenever needed, and Information
entered will be stored in the database and QR codes on later processes.
Exceptional Flow o E6. System: Validates input encounter error and asks user to re-try
o E7. User: Corrects the error and re-submit
o E8. System: Validates input and send success message
o E9. End Use Case
Include None
31
Extends None
Use Case ID UC 02
Description This use case allows mentioned actors to verify their identity, gain access
to the system upon successful validation, and utilize the services offered
by the system.
Pre-Condition User must have an account, valid username and password, and must be
aware about the information required.
Post Condition User will be allowed to navigate through various screens consisting
several services under them.
Exceptional Flow o E6. System: Validates input encounter error and asks user to re-try
o E7. User: Corrects the error and re-submit
o E8. System: Validates input and display corresponding user screen.
o E9. End Use Case
32
Extends None
Use Case ID UC 03
Description This use case allows passengers to book their ticket before payment by
filling up their desired selections.
Actors Passengers
Post Condition User will receive ticket number as a confirmation to booked ticket and will
be allowed to pass to payment process
Exceptional Flow o E2. User: Enters the same start and destination point
o E3. System: Asks user to enter different start and destination point
o E4. User: Input incorrect selection
33
o E5. System: Asks user to re-enter selections then fetch and display
available journeys
o E7. User wants to change his/her idea of selection from displayed
trip summary
o E8. User navigate back and modify selections before confirming
the booking
o E9. End Use Case
Extends None
Use Case ID UC 04
Description This use case allows passengers to pay the fare amount attached on their
selected journey through payment options available
Actors Passengers
Pre-Condition User must have an account, logged in and have confirmed their bookings
and received ticket numbers.
34
7. System: Provide passengers a unique QR codes
8. End Use Case
Post Condition User will receive QR code and later uses them for check-in process on
journey date
Exceptional Flow -
Extends None
Use Case ID UC 05
Description This use case allows ticket officers to verify the QR codes generated by
the system and authorize the passengers to start their journey
Exceptional Flow -
35
Include None
Extends None
Use Case ID UC 07
Description This use case allows Admin to approve the refund requests from
passengers
Actors Admin
Exceptional Flow -
Extends None
36
Table 15:Logout Use Case Description
Use Case ID UC 08
Description This use case allows mentioned actors to exit out of their main page
Exceptional Flow -
Include None
Extends Login
37
2.7. User Interface Prototyping
38
CHAPTER THREE
3. SYSTEM DESIGN
Design is:
Design of the system is simply a blueprint for a solution of the system [16].
Is a common architectural strategy to layer the architecture of the system in to several layers/strata
of class types [17].
Below the class-type layered architecture of the proposed system is depicted as follows:
39
User Interface Layer
• Admin Home Page
• Login/Register Form
• Ticket Officer Home Page
• Passenger Home Page
• Booking UI
• Payment UI
Persistence Layer
• Accounts
• Passenger Details
• Book History
• Journey Details
• Seats
•
40
3.1.2. Class Model
A class diagram is a type of diagram used in system analysis and design to visually represent the
structure and relationships of classes within a system. It captures the static structure of Object-
Oriented systems, or how they are structured rather than how they behave [18].
• Class Name: This is the name of the class and is usually written in bold at the top of the
box.
• Attributes: This compartment lists the attributes or properties of the class. Attributes are
the data members that describe the characteristics of the class.
• Methods/Operations: This compartment contains the methods or operations that the class
can perform. Methods represent the behavior or actions associated with the class.
Lines and arrows are used to represent relationships between classes. The relationships can include
associations, generalizations, aggregations, and compositions. Here are some common elements
you might find in a class diagram:
41
Figure 7:Class Diagram
42
Figure 10:Login UI Figure 11:Register UI
43
3.3. Sequence Diagram
A sequence diagram is a type of interaction diagram in the field of system analysis and design,
which is a phase in the software development life cycle. Sequence diagrams are used to visualize
and document the flow of interactions or messages between different components or objects within
a system over time [15]. They are particularly useful in illustrating the dynamic aspects of a system,
showing how various components collaborate to achieve a specific functionality or behavior.
44
Figure 15:Sequence Diagram for Login Use case
45
Figure 16:Sequence Diagram for Book Use case
An activity diagram is another type of diagram used in system analysis and design to model the
dynamic aspects of a system. It is a graphical representation of workflows or processes within a
system, showing the sequence of activities and actions that take place [19].
46
A given Activity diagram Consists:
• Activities: Represent tasks or actions that are performed within the system. Activities are
usually depicted as rectangles and can represent operations, calculations, or other
behaviors.
• Transitions (Arrows): Represent the flow of control from one activity to another. These
arrows show the sequence in which activities are performed. The transition may be
triggered by a decision, completion of an activity, or other events.
• Control Nodes: Include decision nodes, merge nodes, and fork/join nodes, which control
the flow of activities in the diagram. Decision nodes are diamond-shaped and represent
points where the flow can take different paths based on conditions.
• Initial and Final Nodes: The initial node indicates where the activity starts, and the final
node indicates where it ends.
47
Figure 18:Activity Diagram for Login Use Case
48
Figure 20:Activity Diagram for Pay Use Case
A State Chart diagram, is a type of diagram used in system analysis and design to model the
dynamic behavior of a system in response to external stimuli. This diagram is part of the Unified
Modeling Language (UML) and is particularly useful for representing the various states that an
object or system can be in and how it transitions between these states based on events or conditions
[20].
• States: Represent different conditions or situations that an object or system can be in. States
are typically depicted as rectangles with labels.
• Transitions: Represent the flow of control between states and are triggered by events or
conditions. Transitions are depicted as arrows and often include labels indicating the event
that causes the transition.
49
• Initial and Final States: The initial state represents the starting point of the system, and
the final state represents the end or termination point.
• Actions: Represent activities or operations that occur when a state is entered or exited.
These actions are associated with states or transitions.
50
Figure 22:State Chart Diagram for Login Use Case
51
Figure 24:State Chart Diagram for Pay Use Case
A visual representation of various data utilizing conventions that explain how these data are
related to one another is known as an entity relationship diagram (ERD) [21]. Many different
elements make up an entity relationship diagram:
1. Entity: An entity is a thing about which data may be kept. It could be a tangible thing, a
thought, or an occasion. In our case: Passenger, Ticket Officer, Admin, Ticket, Book, Seat, Route,
Journey, Payment.
2. Relationship: In an ERD, a relationship describes the connections between two things. When
referring to a database or a collection of entities.
3. Attribute: An attribute is a quality that can be utilized to identify or describe an entity. They
are frequently depicted as entries inside an entity or as ovals. Our project uses attributes like age
and sex.
52
Figure 25:ERD
3.6.2. Normalization
Normalization is a database design technique that reduces data redundancy and eliminates
undesirable characteristics like Insertion, Update and Deletion Anomalies [22]. Normalization
rules divides larger tables into smaller tables and links them using relationships.
• a single cell must not hold more than one value (atomicity)
• each column must have only one value for each row in the table
So, here below it is tables of Entities are depicted with their respective primary keys as follow:
53
ADMIN
PASSENGER
TICKET OFFICER
TICKET
BOOK
54
ROUTE
JOURNEY
PAYMENT
SEAT
• Has no partial dependency. That is, all non-key attributes are fully dependent on a primary
key.
So, here Table: ‘Ticket’ is not in 2NF for the following reasons:
1. In ‘Ticket’ table there exists a partial dependence between ‘BookingDate’ and the primary
key ‘TicketNumber’
So, by creating two separate tables we try to normalize the table as follows:
55
TICKET
BOOK
BookingId BookingDate
Again, here Table: ‘Book is not in 2NF for the following reasons:
1. In ‘Book’ table there exists a partial dependence between ‘ClassType’ and the primary key
‘BookingId’’
So, by creating two separate tables we try to normalize the table as follows:
BOOK
JOURNEY
JourneyId ClassType
No transitive dependencies.
56
Now, the tables are in 3NF. Each table represents a distinct entity, and relationships are established
using foreign keys.
A persistent database model stores persistent data in the form of objects, or records that are durable
when changing devices and software. The most popular example of a database model is the
relational model, which uses a table-based format. It doesn’t use objects and their relationships
[15].
57
3 TICKET TicketOfficerId INT TicketOfficerId
OFFICER OfficerEmail VARCHAR
FirstName STRING
LastName STRING
OfficerUsername VARCHAR
Station STRING
58
8 ROUTE RouteId INT RouteId
Start STRING
Destination STRING
59
Figure 26:Relational Persistent Model
60
3.8. Component Diagram
A component diagram is a UML diagram that illustrates the organization and relationships among
components in a system [23].
In a component diagram, components are represented as rectangles, and the relationships between
these components are depicted using lines and connectors. Components in this context refer to
modular units or building blocks of a system, which can be software modules, classes, packages,
or even hardware components.
61
3.9. Deployment Diagram
Deployment diagrams are used to visualize the topology of the physical components of a system,
where the software components are deployed [24].
Deployment diagrams are used to describe the static deployment view of a system. Deployment
diagrams consist of nodes and their relationships.
62
CHAPTER FOUR
4. IMPLEMENTATION
4.1. Overview
The project implementation overview provides a comprehensive roadmap outlining the essential
steps, tasks, and considerations necessary for executing the Ethiopian Railway Ticket Booking
System. This document serves as a guiding framework for the project team, stakeholders, and any
individuals involved in the implementation phase. It emphasizes the key phases, milestones, and
resources required to successfully carry out the project.
The main aim of project implementation is to translate the project plan into actionable steps,
ensuring the completion of all tasks efficiently and effectively to meet the project goals and
deliverables. The implementation process entails coordinating and executing various activities,
managing resources, and monitoring progress to ensure a successful outcome.
Implementation Phases
1. Project Initiation
➢ Formulate the project team and allocate roles and responsibilities.
➢ Facilitate a kickoff meeting to align stakeholders and communicate project objectives.
➢ Develop a detailed implementation plan, encompassing timelines, milestones, and
deliverables.
➢ Identify and secure necessary resources, including funding, equipment, and personnel.
2. Execution
➢ Commence implementation according to the established plan and timeline.
➢ Coordinate tasks and activities among team members to ensure smooth progress.
➢ Maintain regular communication with stakeholders to provide updates and address concerns.
➢ Monitor project metrics and key performance indicators (KPIs) to gauge progress.
➢ Conduct routine meetings and reviews to evaluate project status and make necessary
adjustments.
63
3. Resource Management
➢ Effectively manage project resources, such as personnel, budget, and equipment.
➢ Allocate tasks and responsibilities to team members based on their expertise and
availability.
➢ Monitor resource allocation to ensure optimal utilization and mitigate bottlenecks.
➢ Address any resource constraints or issues arising during implementation promptly.
4. Risk Management
➢ Identify potential risks and devise strategies to mitigate them.
➢ Regularly assess risks and implement appropriate risk management measures.
➢ Establish contingency plans to address unforeseen events or challenges.
➢ Continuously monitor and evaluate risks throughout the implementation phase.
5. Quality Assurance
➢ Establish quality standards and benchmarks for project deliverables.
➢ Conduct regular quality checks to ensure compliance with established standards.
➢ Promptly address any quality issues and undertake corrective actions as necessary.
➢ Engage relevant stakeholders in quality assurance processes to ensure satisfaction.
6. Documentation and Reporting
➢ Maintain accurate and updated project documentation, including plans, reports, and
records.
➢ Generate progress reports to provide stakeholders with timely updates on project status.
➢ Document lessons learned and best practices for future reference and improvement.
➢ Prepare a final project report summarizing the implementation process and outcomes.
In the System Development section, the project team opted for a hybrid approach by utilizing
Flutter for Android for the user module side, catering to passengers, and Flutter Web for the Admin
and Ticket Officer interfaces. This decision was made to utilize the flexibility and efficiency of
Flutter in developing cross-platform applications while ensuring a seamless user experience across
different devices and platforms.
For the user module side, which includes functionalities such as ticket booking, viewing schedules,
and managing personal profiles, Flutter for Android was chosen. Flutter for Android enables the
64
development of native-like mobile applications with excellent performance and rich user
interfaces. This choice ensures that passengers can easily access and interact with the system on
their Android devices, providing a smooth and intuitive experience.
On the other hand, for the Admin and Ticket Officer interfaces, Flutter Web was selected. Flutter
Web extends Flutter's capabilities to web browsers, allowing the development of responsive and
dynamic web applications. By utilizing Flutter Web, the Admin and Ticket Officer interfaces can
be accessed through web browsers on various devices, including desktops and laptops, without the
need for separate development efforts for different platforms.
Additionally, a common backend powered by Firebase using Firestore Database or Cloud Firestore
was employed to support both the user module and the Admin/Ticket Officer interfaces. Firebase
offers a comprehensive set of backend services, including real-time database and authentication,
which seamlessly integrate with Flutter applications. Firestore Database or Cloud Firestore
provides scalable and flexible NoSQL databases, enabling efficient data storage and retrieval for
the system.
By adopting Flutter for Android and Flutter Web for different user interfaces and integrating them
with Firebase's backend services, the project team ensures consistency, scalability, and
maintainability across the entire system. This approach facilitates streamlined development,
deployment, and management of the Ethiopian Railway Ticket Booking System, ultimately
enhancing the overall user experience and system performance.
import 'package:erbs/Users/homePage.dart';
import 'package:erbs/Users/welcomeScreen.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
65
bool _obscurePassword = true;
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
toolbarHeight: 40,
backgroundColor: Colors.white,
leading: IconButton(
icon: const Icon(Icons.arrow_back_ios),
onPressed: () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (BuildContext context) => WelcomeScreen(),
),
);
},
),
),
body: SingleChildScrollView(
child: Form(
key: _formKey,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Padding(
padding: const EdgeInsets.only(top: 20.0),
child: Image.asset(
'images/train_image.png',
height: 270,
),
),
const Text(
'Login',
textAlign: TextAlign.center,
style: TextStyle(
height: -4,
fontFamily: 'DMSans',
fontSize: 24,
fontWeight: FontWeight.bold,
),
),
Padding(
padding: const EdgeInsets.all(15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.grey.shade200,
66
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 1,
blurRadius: 5,
offset: const Offset(0, 2),
),
],
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
TextFormField(
controller: emailController,
cursorColor: const Color(0xFF3F7347),
decoration: InputDecoration(
labelText: 'Email',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: const BorderSide(
color: Colors.grey,
),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: const BorderSide(
color: Color(0xFF3F7347),
// Change focused color to green
),
),
labelStyle: const TextStyle(
fontFamily: 'DMSans',
fontSize: 14,
color: Colors.grey,
),
),
validator: (value) {
if (value == null || value.isEmpty) {
return 'Please enter your email';
}
// You can add more email validation logic if needed
return null;
},
),
const SizedBox(height: 20),
TextFormField(
controller: passwordController,
obscureText: _obscurePassword,
cursorColor: const Color(0xFF3F7347),
decoration: InputDecoration(
67
labelText: 'Password',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: const BorderSide(
color: Colors.grey,
),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: const BorderSide(
color: Color(0xFF3F7347),
// Change focused color to green
),
),
labelStyle: const TextStyle(
fontFamily: 'DMSans',
fontSize: 14,
color: Colors.grey,
),
suffixIcon: IconButton(
icon: Icon(
_obscurePassword
? Icons.visibility
: Icons.visibility_off,
color: Colors.grey,
),
onPressed: () {
setState(() {
_obscurePassword = !_obscurePassword;
});
},
),
),
validator: (value) {
if (value == null || value.isEmpty) {
return 'Please enter your password';
}
// You can add more password validation logic if needed
return null;
},
),
const SizedBox(height: 20),
],
),
),
),
],
),
),
const SizedBox(height: 20),
Center(
child: ElevatedButton(
68
onPressed: () {
if (_formKey.currentState!.validate()) {
signUserIn(context);
}
},
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF3F7347),
foregroundColor: Colors.white,
padding: const EdgeInsets.symmetric(
horizontal: 30, vertical: 15),
minimumSize: const Size(300, 50),
),
child: const Text(
'Login',
style: TextStyle(fontFamily: 'DMSans', fontSize: 18),
),
),
),
],
),
),
),
);
}
if (passwordController.text.isEmpty) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Please enter your password.'),
backgroundColor: Colors.red,
behavior: SnackBarBehavior.floating,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
duration: const Duration(seconds: 3),
69
),
);
return;
}
70
4.4. Testing
In system development, unit testing plays a crucial role by focusing on the smallest units of system
design, known as modules. These modules are tested separately to ensure they meet the expected
output criteria. For the Ethiopian Railway Ticket Booking System project, all forms are carefully
designed to function as intended. Unit testing involves examining every small modular component
of the system in isolation from others. After the implementation of each unit or function, rigorous
testing is conducted to promptly identify and rectify errors. This process ensures the robustness of
the system. Key steps in unit testing include reviewing program units, executing code tests,
resolving discrepancies, and documenting results.
➢ Each data entry module, such as product and supplier entry, undergoes thorough validation
checks both pre- and post-runtime to detect any errors or warnings.
➢ Test classes are created for each module to facilitate comprehensive testing.
View Modules
Report Modules
Each report module is examined before and after runtime to ensure smooth and effective report
generation. In general, unit testing ensures the reliability and functionality of each component of
the system, contributing to the overall quality of the Ethiopian Railway Ticket Booking System.
71
4.4.2. System Testing
System testing is a crucial phase in the software development life cycle where the entire integrated
system is evaluated to ensure that it meets specified requirements. It involves testing the system
as a whole, focusing on both functional and non-functional aspects to verify its behavior and
performance. This process aims to uncover defects or bugs that may exist in the system before it
is deployed to production environments.
In the context of the Ethiopian Railway booking system, which is based on QR generation
technology, system testing involves comprehensive testing of all system components and features
related to booking train tickets using QR codes. This includes testing the functionality of
generating QR codes for tickets, scanning QR codes, handling various scenarios such as ticket
cancellations or modifications, and ensuring the system's reliability, security, and performance
under different load conditions.
During system testing, testers validate that the Ethiopian Railway booking system accurately
generates QR codes containing relevant ticket information, such as passenger details, journey
details, and seat assignments. They also verify that the QR codes can be successfully scanned and
authenticated by ticket officers or automated gate systems at railway stations.
Additionally, system testing for the Ethiopian Railway booking system would involve evaluating
its compatibility with different devices and platforms, including mobile devices used by passengers
for ticket booking and ticket officers for QR code scanning. It would also encompass testing the
system's integration with other components such as payment gateways, passenger databases, and
train scheduling systems to ensure seamless operation and data synchronization.
Acceptance testing is the final phase of the software testing process, where the system is evaluated
to determine whether it meets the acceptance criteria set by stakeholders. It primarily focuses on
validating whether the system satisfies the business requirements and objectives and is ready for
deployment. Acceptance testing involves testing the system's functionality, usability, reliability,
and performance from the perspective of end-users or customers to ensure that it meets their
expectations and needs.
72
In the context of the Ethiopian Railway booking system, acceptance testing involves testing the
system to ensure that it meets the requirements and expectations of the railway authorities,
ticketing agents, and passengers. This would include verifying that the system accurately generates
QR codes for train tickets, allows seamless booking and payment processes, and provides a user-
friendly interface for both booking tickets and scanning QR codes at railway stations.
During acceptance testing, stakeholders evaluate the system's compliance with specific criteria,
such as the governance to security standards for handling passenger data, and compatibility with
existing railway infrastructure and ticketing processes. They would also assess the system's
reliability in generating and validating QR codes under various network conditions and in different
environments.
Acceptance testing plays a critical role in gaining confidence in the Ethiopian Railway booking
system's readiness for deployment and ensuring that it meets the needs and expectations of all
stakeholders involved, including railway authorities, ticketing agents, and passengers. By
thoroughly evaluating the system against predefined acceptance criteria, stakeholders can make
informed decisions about its suitability for production use and identify any necessary
improvements or modifications before its launch.
Performance testing is a crucial aspect of software testing that focuses on assessing the speed,
responsiveness, scalability, and stability of a system under various conditions. It involves
evaluating how efficiently the system performs under different workloads and stress levels to
ensure optimal performance and user experience. Performance testing helps identify potential
bottlenecks, issues, or weaknesses in the system's architecture, infrastructure, or code that could
impact its responsiveness or reliability in production environments.
In the context of the Ethiopian Railway booking system, which relies on QR code generation
technology, performance testing is essential to ensure that the system can handle the expected
volume of ticket bookings and QR code validations efficiently, especially during peak periods of
ticket sales or train departures. This involve assessing the system's ability to generate QR codes
quickly and accurately, process ticket bookings and payments promptly, and validate QR codes or
inspection points without delays or errors.
73
During performance testing, various scenarios would be simulated to evaluate the system's
performance under different levels of concurrent user activity, network traffic, and data load.
Testers would measure key performance metrics such as response times, throughput, resource
utilization, and error rates to identify any performance bottlenecks or areas for optimization. They
would also assess the system's scalability by gradually increasing the workload to determine its
capacity limits and ensure that it can accommodate future growth in user traffic and transaction
volumes.
We have received valuable feedback from stakeholders regarding the Ethiopian Railway booking
system, which is based on QR generation technology.
Seamless Booking Experience: Clients praised the smooth and seamless booking experience
provided by the web-based system. They highlighted the stability and reliability of the platform,
which ensured uninterrupted booking sessions and minimized technical disruptions. Passengers
reported no major issues during the booking process, resulting in a stress-free and efficient
experience.
Accessibility and Convenience: The clients appreciated the online nature of the booking system,
which provided convenience and accessibility to passengers. They noted that passengers could
book tickets from any location with an internet connection, eliminating the need for physical
ticketing counters. This flexibility allowed passengers to book tickets at their convenience and
reduced logistical challenges.
Security and Integrity: Stakeholders were impressed by the robust security measures
implemented in the booking system. They acknowledged the use of advanced authentication
techniques, secure data encryption, and safeguards against fraudulent activities. These security
measures instilled confidence in the integrity and fairness of the booking process.
74
Efficient Ticketing and Confirmation: Feedback highlighted the efficient ticketing and
confirmation process of the online system. Clients expressed satisfaction with the timely issuance
of tickets and confirmation emails, enabling smooth travel planning for passengers. The automated
ticketing system provided accurate and prompt confirmation, enhancing overall efficiency.
Comprehensive Reporting and Analytics: Clients praised the system's reporting and analytics
capabilities, which provided detailed insights into booking statistics and passenger preferences.
They found the reports to be comprehensive and useful in identifying trends, optimizing resource
allocation, and making data-driven decisions for future service enhancements.
In General, the stakeholders' feedback indicates a positive response to the Ethiopian Railway
booking system. The system's user-friendly interface, seamless booking experience, accessibility,
security measures, efficient ticketing, comprehensive reporting, and analytics capabilities were the
key factors contributing to stakeholder satisfaction. The online system has successfully
streamlined the ticket booking process, benefiting both passengers and railway authorities.
Login
75
Admin Dashboard Overview
➢ Admin can perceive analytics overview corresponding to the system from its panel
Admin Logout
➢ Admin can logout of its panel by hitting the logout icon on the top right corner of the top
bar
76
4.6.2. Passenger Manual
Login
If user
already have Otherwise
account
Figure 34: Welcome Screen Figure 33: User Login Screen Figure 32: User Register Screen
➢ User after logging in or registering to the app he/she can use the services that are offered
by the application by navigating through different pages starting from its Home Page
Figure 36: User Home Page Figure 35: User Booking Page
77
4.7. Conclusion and Recommendation
Conclusion
The development of the Ethiopian Railway Ticket Booking System incorporating QR code
generation marks a significant stride towards modernizing the nation's transportation
infrastructure. Through careful planning, robust technological implementation, and user-centric
design, this project has successfully addressed critical challenges faced by passengers and the
railway authorities alike. The integration of QR code technology not only streamlines the ticket
booking process but also enhances security and efficiency within the railway system.
The adoption of such innovative solutions aligns with Ethiopia's broader vision of utilizing
technology to drive socioeconomic progress. By embracing digital transformation in the
transportation sector, the country can unlock a numerous benefit, including improved passenger
experience, optimized operations, and enhanced revenue generation. Furthermore, the
implementation of the Ethiopian Railway Ticket Booking System sets a precedent for future
undertakings aimed at modernizing other aspects of public infrastructure.
Recommendations
Moving forward, several recommendations can further enhance the effectiveness and sustainability
of the Ethiopian Railway Ticket Booking System:
Continuous Improvement: As a developer it is recommended that the project team takes place
on an ongoing refinement and enhancement of the ticket booking system based on user feedback
and emerging technological advancements. Regular updates and maintenance are essential to
ensure optimal performance and address evolving customer needs.
Accessibility and Inclusivity: Efforts should be made to ensure that the booking system is
accessible to all segments of society, including individuals with disabilities and those in remote
areas with limited internet connectivity. User interfaces should be intuitive and user-friendly,
accommodating diverse user demographics.
78
the ticket booking system into the existing infrastructure. Partnerships can also foster knowledge
exchange and resource sharing to drive continuous innovation.
Security and Data Privacy: Robust security measures must be implemented to safeguard
passenger data and prevent unauthorized access or fraudulent activities. Compliance with
international standards and regulations concerning data privacy and cybersecurity should be
prioritized to build trust and confidence among users.
Additional Recommendations for those who can use this document as another continual project
initiation, it is recommended that next gen developers should add more feasible functionalities
which can make the system more seamless in experience such as:
Consider taking varying number of passenger which enables for one user to purchase multiple
tickets for others by only adding passenger details of his/her fellows.
Localization using different languages implementation to the application which can help
passengers utilize the app to its fullest extent with better understanding.
79
References
[6] M. L.Napoli, Beginning Flutter A Hands On Guide To App Development, Canada: John
Wiley & Sons, Inc..
[10 C. MacNeil, "How to create (and stick with) a project budget," 20th November 2022.
] [Online]. Available: https://asana.com/resources/project-budget.
80
[14 J. N. E. T. Robert Biddle, Wellington, New Zealand: Author(s).
]
[21 R. Peterson, "Entity Relationship (ER) Diagram Model with DBMS Example," 9 December
] 2023. [Online]. Available: https://www.guru99.com/er-diagram-tutorial-dbms.html.
[22 "Database Normalization – Normal Forms 1nf 2nf 3nf Table Examples," 21 DECEMBER
] 2022. [Online]. Available: https://www.freecodecamp.org/news/database-normalization-
1nf-2nf-3nf-table-examples/.
81
Appendix I
Interview Questions
✓ Can you describe your typical experience when booking a railway ticket in Ethiopia?
✓ What are the main challenges or pain points you encounter during the current ticket
booking process?
✓ Are there specific features or functionalities you wish existed in a railway ticket booking
system?
User Preferences
✓ How important will it be in ease of use and a friendly user interface to you when using a
ticket booking system?
✓ Are there any specific features from other ticket booking systems that you find particularly
useful?
Payment Preferences
Notification
✓ How do you prefer to receive notifications and updates about your booked tickets? (Email,
SMS, app notifications, etc.)
✓ What type of information would you like to receive before, during, and after your journey?
Mobile Usage
✓ Do you often use mobile devices for tasks like ticket booking? If so, what features would
you expect from a mobile app for this purpose?
82
Security Concerns
✓ What security measures would make you feel more confident in using an online ticket
booking system?
✓ Are there specific concerns related to the security of your personal information or payment
details?
Seat Availability
✓ Was there a condition in which you can select seats in the current system?
83
Appendix II
84