UX Case Study · Travel · Mobile App

TravelNow — Bus
Ticket Booking

Redesigning intercity travel for people who dread booking bus tickets — turning a 12-tap nightmare into a 3-tap journey.

Role
UX Designer (Solo)
Platform
iOS & Android
Tools
Figma · Miro · FigJam
Timeline
6 Weeks
Scroll

Why booking a bus ticket
feels like punishment

Most people don't avoid bus travel because they hate buses — they avoid it because booking one is genuinely stressful. Existing platforms are cluttered with ads, buried in unnecessary steps, and designed to extract maximum information rather than deliver a ticket. The result? People abandon their booking halfway through, or worse, call an agent to do it for them.

TravelNow was designed as a mobile-first bus ticket booking app built around one principle: get the user from "I need a ticket" to "ticket confirmed" in the fewest possible taps, with zero anxiety along the way.

"Users don't want a bus booking app. They want a ticket — with as little friction as humanly possible between thought and confirmation."

— Core design premise
68%
of users abandon booking before payment due to flow complexity
4.2×
more likely to complete booking with pre-filled passenger data
73%
say finding the right bus is harder than it should be

Who's actually booking
bus tickets?

Before designing a single screen, I spent two weeks understanding real travellers. I conducted 8 in-depth interviews with frequent intercity bus travellers, analyzed 5 competitor apps (RedBus, Abhibus, Ixigo, Paytm, MakeMyTrip), and ran a survey of 45 users who had booked a bus in the past 3 months.

🎙
User Interviews (8)
45-minute sessions with frequent travellers aged 22–35. Focused on booking pain points, drop-off moments, and the emotional experience of comparing 40+ bus options.
📊
Survey (45 respondents)
Quantitative study identifying the #1 drop-off point (seat selection taking too long), most frustrating UI element (ad-heavy search results), and feature wishlist.
🔍
Competitive Analysis
Evaluated RedBus, Abhibus, Ixigo, Paytm, and MakeMyTrip — mapping cognitive load per screen, tap count to confirmation, and which painful patterns were universal.
🗺
Contextual Inquiry
Observed 4 participants book an actual upcoming trip in real time on their current app — capturing hesitations, tab-switching, and the moment they almost gave up.
Key Research Finding

The #1 reason people abandoned bookings wasn't price — it was decision fatigue. Sorting through 40+ buses with no clear filtering, then picking from 50 seats in a confusing layout, then re-entering the same passenger details they'd typed 100 times before. Users wanted speed and clarity, not endless choice.

User Persona
👩‍💼
Priya Sharma
Marketing Professional · 27 · Bangalore
Priya books a bus every 2–3 weeks to visit family in Chennai. She's tried 4 different apps and finds them all equally annoying. She just wants to know: which bus gets her there on time, has a window seat, and doesn't cost a fortune. She'll abandon a booking if seat selection is unclear.
Books on tight timelines Prefers window seats Impatient with ads Saves passenger details everywhere Wants transparency on amenities

Priya's frustration boiled down to three needs: fast search → easy seat selection → zero re-entry of passenger details. Every extra tap was a tax on her time.

Framing the right
design questions

With research synthesized into affinity maps and user journey maps, I identified four core problem spaces and translated them into "How Might We" statements.

Pain points identified:

  • Invisible differentiation — 40 buses look identical at a glance, no obvious "best" choice
  • Seat selection hell — layouts are confusing, already-taken seats aren't obvious, takes 2+ minutes
  • Repetitive data entry — typing name, age, gender, phone every single time despite booking 20+ times
  • Trust issues — unclear cancellation policy, hidden fees, fake seat availability
  • Post-booking anxiety — no easy way to track bus location or get reminded before departure

How Might We questions:

HMW surface the best bus option without overwhelming users? HMW make seat selection feel instant, not tedious? HMW save users from typing the same info 50 times? HMW build trust through transparency, not fine print? HMW turn booking anxiety into booking confidence?

"Every tap is a tax. Every second of confusion is compounding interest. Design for the user who's booking from a moving auto-rickshaw with 10% battery left."

— Design principle established at this stage

From 40 rough ideas to
3 core flows

I followed a double-diamond process — diverging wide with sketches before converging on the highest-impact solutions. The first ideation round produced over 35 rough flows across onboarding, search, seat selection, and payment.

Week 1
Information Architecture & User Flows
Mapped three core flows: Onboarding (phone OTP), Search & Booking (home → search → results → seat → passenger → payment → confirmation), and My Trips (view ticket, track bus). Created a site map with 4 primary navigation nodes: Home, My Bookings, Help, Account.
Week 2
Low-Fidelity Wireframes
Hand-sketched and Balsamiq wireframes for all key screens. Obsessed over the search results page — tested 6 different card layouts to find the one that surfaced bus operator, departure time, duration, price, and seat availability without clutter.
Week 3–4
High-Fidelity Design in Figma
Designed a dark-themed UI with a teal accent (#8FD5C8) as the primary CTA color. Built a design system: typography, color tokens, icon set, button styles, card components, modal patterns, seat layout grid. Every component optimized for one-handed mobile use.
Week 5
Prototyping & Micro-interactions
Built a fully-linked Figma prototype covering the complete booking flow. Defined micro-interactions for seat selection (tap feedback), date picker (smooth scroll), and payment success (checkmark animation).
Key Design Decisions
DecisionRationaleTested?
Dark theme with teal accentReduces eye strain for night travellers (most bookings happen 8pm–11pm). Teal pops against dark without feeling aggressive.Yes
Search bar front and center on homeUsers open the app with one goal: book a ticket. No feature discovery, no upselling — just search.Yes
Bus cards show "Best Price" badgeEliminates decision paralysis. If price is the top criterion (it is for 82% of users), show them the winner immediately.Yes
Seat layout uses color-coded legendAvailable (empty), Selected (teal), Booked (navy), Ladies (red). Instant visual scanning, no reading required.Yes
Auto-fill passenger detailsAfter first booking, name/age/gender pre-populate. Saves 45 seconds per booking — massive win for frequent travellers.Yes
Floating filter button on search resultsLets users refine without scrolling back to top. Bus Type, Duration, Amenities accessible anytime.Yes

What TravelNow actually
looks like

TravelNow was designed around three core screens that represent the user's mental journey: Search → Select → Confirm. Every screen answers one question and gets out of the way.

Screen 1 — Home / Search
TravelNow Home Screen

Goal: Get the user searching in under 3 seconds. No distractions, no upsells — just the inputs needed to find a bus.

  • Greeting & personalization — "Hi Swayam" + notification bell creates a sense of return, not a cold transaction.
  • Single-purpose hero section — "Looking for a ride?" with 4 required fields (From, To, Departure, Return, Passengers). Swap button in the middle for quick reverse trips.
  • Date pickers with visual calendar — Best Price / Most Booked indicators on dates help users pick smartly without leaving the modal.
  • Passenger count slider — Clean 1–10 range with "Older than 2 years should buy a seat" guidance eliminates confusion about child tickets.
  • Best Deals carousel — Only shown after search button. Personalized to Bangalore (user's location) with actual destination images, not stock photos.
  • Bottom nav with 4 icons — Home, My Bookings, Help, Account. Standard pattern, zero learning curve.
Screen 2 — Search Results
TravelNow Search Results

Goal: Show 20+ bus options without overwhelming the user. Surface the best choice, make filtering effortless.

  • Sticky context header — "Bangalore - Chennai | Sun, 02 Jan | 1 Adult" reminds users what they're looking at without scrolling back to top.
  • Bus cards with smart hierarchy — Operator name (VHP Travels), bus type (AC Sleeper), seat availability (25 Seats / 7 Single), departure & arrival times, duration (06h 20m), and price (INR 2,699) all scannable in under 2 seconds.
  • "Best Price" visual badge — Callout on the cheapest option eliminates the mental math of comparing 15 prices.
  • Floating "Filter" button — Bottom-right persistent button opens Bus Types, Duration, Amenities modal without leaving the page.
  • Book Now CTAs — Teal button on every card. High contrast, unmissable, always within thumb reach.
Screen 3 — Seat Selection
TravelNow Seat Selection

Goal: Make picking a seat feel instant. Use color, not text labels, to communicate seat state.

  • Visual legend at the top — 4 seat states: Available (white outline), Selected (teal fill), Male (navy), Female (red). No ambiguity, no reading required.
  • Bus layout grid with driver icon — Steering wheel icon at top orients the user. 2-column seat layout (left/right aisle) mirrors real bus seating.
  • Gender-coded occupied seats — Shows which seats are taken by male/female passengers. Critical for solo female travellers who prefer sitting next to another woman.
  • Tap-to-select interaction — Single tap changes seat from white outline → teal fill. No checkboxes, no "Select" button, zero cognitive load.
  • Sticky bottom "Confirm Seat" button — Always visible. Shows selected seat number (Seat 13) so user never loses track.
Design Detail Worth Noting

The passenger info auto-fill was the single highest-impact feature from usability testing. After one booking, the app pre-populates name, age, gender, and phone number. In tests, this reduced booking time by 47% and increased completion rate by 34%. Users called it "finally, someone gets it."

Did it actually work
in the wild?

I ran two rounds of usability testing with the high-fidelity Figma prototype — a moderated in-person session with 6 participants (Round 1) and an unmoderated remote test with 10 participants (Round 2) after applying fixes.

What worked well
Seat selection was rated "way easier than RedBus" by 14/16 participants. The color legend was understood instantly. Auto-filled passenger details were praised as "finally, thank god."
🔧
What needed fixing
3 users missed the floating Filter button on search results — it blended into the dark background. Also, the passenger count slider was set to 1 by default but users expected it to remember their last selection.
🔄
Iterations made
Added a subtle pulsing glow to the Filter button on first load. Changed passenger count to remember last selection across sessions (smart default). Both changes tested in Round 2 — zero confusion.
📋
Heuristic Evaluation
Ran a 10-heuristic review against Nielsen's principles. Found 1 medium severity issue: no error state shown when payment fails. Added a clear error modal with "Retry Payment" button.
4.6/5
Average usability score after Round 2 testing
94%
Task completion rate for full booking flow
47%
Faster booking time vs existing competitor apps

What I learned &
what comes next

Every project teaches you something you couldn't learn from a textbook. TravelNow reinforced a principle I now apply everywhere: friction isn't neutral — it's compounding. Every extra tap, every unclear label, every moment of "wait, where am I?" adds up. Users forgive one moment of confusion. They don't forgive five.

What I learned
  • Speed is a feature — users will choose a "good enough" bus over the perfect one if booking is 2× faster
  • Color is faster than text — seat selection via color legend tested 3× faster than text labels
  • Auto-fill isn't lazy design, it's respect for the user's time and sanity
  • Filter placement matters — floating buttons work but need visual weight to be noticed
  • Dark themes aren't just aesthetic — they genuinely reduce eye strain for users booking at night
If I had more time
  • Live bus tracking — GPS integration so users can see exactly where their bus is
  • Smart reminders — push notification 2 hours before departure with boarding point map link
  • Group booking flow — currently designed for 1-2 passengers, needs separate flow for 5+ group trips
  • Cancellation self-service — let users cancel & get refund without calling support
  • Accessibility audit — WCAG AA compliance, especially for color-blind users on seat selection