Travel itinerary apps (TripIt, Hopper, Google Trips legacy) auto-organize a trip from confirmation emails into a unified itinerary. The interview tests whether you understand email parsing, time-zone-aware data modeling, real-time flight tracking, and the operational realities of a stressed traveler at an airport.
Functional requirements
- Forward email confirmations; app extracts trip details
- Unified timeline of flights, hotels, rentals, restaurants
- Time-zone aware: shows arrival in destination time
- Real-time flight status (delays, gate changes)
- Offline maps and notes for destinations
- Sharing with travel companions
Email parsing
Source of trip data: confirmation emails forwarded by the user.
Parsing strategies:
- Pattern matching for known senders (United, Delta, Hilton)
- Generic ML model for unknown formats
- Schema.org structured data when available
Modern apps increasingly use LLMs for robust parsing across diverse email formats.
Time-zone modeling
The most-broken aspect of travel apps. Each event has:
- Local start/end time
- Time zone (IANA identifier)
- Logical “trip day” for organizing
Critical: a 1pm Tokyo arrival is at midnight in NYC. The display must show local-to-the-event time, not user’s home time.
Real-time flight tracking
Sources:
- FlightAware, FlightStats, OAG (commercial APIs)
- Airline-specific APIs (limited public access)
Push notifications for:
- Schedule change
- Gate change
- Boarding
- Departure / arrival
Critical that these are reliable — travelers count on the app.
Offline maps and notes
For destinations without reliable cellular:
- Pre-download maps (OpenStreetMap or Google offline maps)
- Cache key destinations: hotel address, restaurant reservations
- Cache trip docs (boarding pass PDFs, hotel confirmations)
Wallet integration
Boarding passes go in the user’s mobile wallet:
- Apple Wallet: PKPass format
- Google Wallet: Wallet API
App can generate or import these from email attachments.
Sharing
Travel companions need access:
- Read-only sharing via link or in-app invite
- Full collaboration: anyone can edit
- Per-event sharing (only the joint dinner, not the whole trip)
Calendar integration
Sync trip events to user’s calendar:
- iOS: EventKit
- Android: Calendar Provider
- Cross-platform: ICS export
Battery and data
Light. Travel apps are reference apps, not always-on. The exception: real-time flight tracking pushes are infrequent but high-value.
Frequently Asked Questions
What if the user forwards an email in a non-supported language?
Modern LLM-based parsers handle most languages. Older pattern-matching parsers fail; surface the email to manual review.
How does the app handle a multi-leg flight?
Each leg as separate event. Display as a connected itinerary. Track delays per leg.
What about loyalty programs?
Connect to airline/hotel accounts; track points and tier progress. OAuth is the norm.