Enabling users to book and cancel train tickets efficiently— UI/UX Case Study
In this case study, I’ll share how I redesigned the booking and cancel ticket flow of IRCTC.
What is IRCTC?
IRCTC is a company owned by the Ministry of Railways of India that provides users with an online train ticket booking facility.
Core Problems
- Inability to book tickets efficiently.
- Inability to view and cancel booked tickets efficiently.
Core Users and User stories
15–35 age
Rahul is a 20-year-old college student. He wants to book train tickets because he is planning a trip with his friends to Goa from Delhi.
35–60 age
Nitin is a 52 years old man who works in Tata Steel and lives in Jamshedpur, he wants to book train tickets because he is missing his daughter who works as a software engineer in Bangalore, and wants to surprise her by visiting her place in Bangalore.
Research
To gain some perspective, I did primary and secondary research, and these are some insights:
- Users find the app frustrating and confusing.
- Users find it outdated and not user-friendly.
- Non-tech-savvy people usually depend on someone to book tickets for them as they find it difficult to use.
Let’s get to problems and solutions.
#1. Inability to book tickets efficiently (ticket booking flow)
Train search page
Problems
Lack of emphasis on Trip details, visual clutter, and lack of visual hierarchy is making it hard to scan.
Solutions
- Gave emphasis to trip details, fixed visual clutter, and visual hierarchy.
- Removed options like, flexible with date, trains with available berth, and others as they can be used later on by various filters.
Search results page
Problems
- The inability to quickly change trip details makes the user think they don’t have control and creates frustration.
- Similar features — sort and filter are separated.
- Need to click on every card to check the availability and price of every card.
Solutions
- After multiple iterations, I came up with a navbar with the ability to edit trip details quickly.
- Placed similar features — sort and filter together differentiated available by giving a toggle switch.
- Showed the price of each class with seats without clicking on it.
Normal State
Expanded State
Filters page
Problems
- Options are scattered.
- Lack of consistency — checkboxes are placed differently in different places.
- No option to filter from the arrival time slot.
Solutions
- Fixed options together.
- Improved consistency.
- Gave the option to filter from arrival time slot.
Passenger details page
Problems
- Related information like “Class”, “seats” and “price” are scattered.
- No emphasis on “add new”.
- Visual clutter and lack of visual hierarchy.
- Payment info is irrelevant on the “passenger details” page (the next page is a review, not payment so it doesn’t make sense)
Solutions
- Placed class, price, and seats together
- Emphasis on “Add passenger”
- Fixed visual clutter and lack of visual hierarchy
- Removed payment info
Review details page
Problems
- Uneven spacing.
- Visual clutter and lack of visual hierarchy.
- Extra click to see fare summary.
Solutions
- Fixed uneven spacing.
- Fixed visual clutter and lack of visual hierarchy.
- Placed fare summary on screen for ease.
#2. Inability to view and cancel booked tickets efficiently (view and cancel ticket flow)
Bookings page
Problems
- Visual clutter and lack of visual hierarchy.
- Information overload makes it overwhelming for users.
Solutions
- Fixed visual clutter and lack of visual hierarchy.
- Gave limited information — removed PNR because usually, users identify their tickets by trip date and location.
Tickets details page
Problems
- Visual clutter and lack of visual hierarchy.
- No option to cancel the ticket on this page, here it says “cancellation and refund rules”. For cancelation, users need to go to another page which can be frustrating.
- No emphasis on “confirm” status and seat details
Solutions
- Fixed visual clutter and lack of visual hierarchy.
- Gave the option to cancel the ticket.
- Emphasized “confirm” status and seat details.
My learnings
- Each data point holds a different rank in the hierarchy and needs to be identified and conveyed accordingly.
- I worked on a lot of iterations to arrive at the right solution. During this process, I realized that iteration is the key.
And… That’s a wrap!
So that’s pretty much it. Hopefully, you found this article insightful. Feel free to comment with your thoughts and feedback.
You can connect with me on :