Inspiration
I'm a PhD student at KU. I go to three or four academic conferences a year, presenting research, attending workshops, trying to meet people whose work I've been reading for two years. The travel itself is fine. Getting there is the problem. Last fall I was heading to a conference in Seattle. My advisor had verbally approved the trip in October. What I didn't know was that university travel requires a separate pre-authorization form, submitted to a different department, with specific reimbursement codes that vary depending on whether the conference registration counts as a training expense or a research expense. By the time I sorted all of that out, the hotel room block had filled and I paid $40 more a night than my labmates who figured out the process faster. When I read the Lockton challenge brief, I felt it as i have experienced how hectic traveling can be especially during business or conferences. Every traveler I know has a version of that problem. Not the flight. Everything around it. Globe-Trotter started as: what if something just already knew all of this.
What it does
Globe-Trotter is the name of the project, Navi is an AI travel agent that changes behavior depending on where you are in your trip. Not just a chatbot that answers questions, it knows whether you're still planning, waiting on approval, already traveling, dealing with something going wrong, or trying to close out after you get back. Each of those gets a different kind of help. Planning mode is thorough. Give it a destination and it comes back with visa requirements, specific flight options, hotel recommendations by neighborhood, weather, and a checklist. Issue mode gives you two options and a phone number and stops. Post-trip is a summary and the break down of the budget and expenses. You add a trip by entering your name, email, and phone, it stores a full traveler record and auto-creates reminders with real due dates. There's a Trips panel that shows every trip you've added, with live status you can update from Upcoming to Traveling to Completed or Canceled. Search results come back as structured rows, not paragraphs. Every result has direct links, Google Flights, Booking.com, FlightAware, that open in a new tab. Nothing is a dead end.
How we built it
Frontend is React and Vite, built from scratch. The sidebar has four panels, Add Trip, Trips, Search, Tools, with drag handles you can use to resize it horizontally or expand the results panel vertically. All the animations, the stage tab system, the contact modal, and the globe logo are custom CSS. No component library. Backend is Python and FastAPI. Each session stores trips as a list so you can add multiple, each with traveler identity, status, and timestamps. The approval router makes real decisions, it checks cost against policy threshold.
AI is Groq's free tier running Llama 3.3 70B. The whole system is built around one decision: the system prompt changes completely between stages. Same question, five different response styles depending on which tab is active. A router reads every message and decides what to fetch, visa data, flight info, weather, flight status, then injects it into the prompt before the model responds. The AI answers with current information, not year-old training data. Search output gets prompted into key: value format, parsed into info rows, and rendered with booking links. A fallback handles plain text so the UI doesn't break when the model drifts.
Challenges we ran into
The messiest bug was a list-vs-dict crash in the chat endpoint. When we upgraded from storing one trip per session to storing a list of trips, the chat endpoint was still passing the whole list into extract_trip(), which called dict() on it. The error, "dictionary update sequence element #0 has length 13; 2 is required", is not one that immediately tells you what went wrong. That took a while. Getting Issue mode to be brief was harder than expected. The model's instinct when you say "my hotel canceled my reservation" is to write four paragraphs. That's the wrong instinct when someone is standing at a front desk at 11pm. We had to be explicit in the prompt, two options, one number, stop, and test it against enough different crisis phrasings before it held. Weather kept triggering the escalation flag. The detector scanned AI responses for emergency keywords. "Dangerous heat index" and "severe storm advisory" kept setting it off on routine weather questions, showing a red urgent banner when someone just wanted to know what to pack. Fixed by filtering on the query side before the escalation check runs. The structured output parser needed a fallback. We prompt the model to respond in key: value format for search results. It mostly does. When it doesn't, the parser needs to render plain text cleanly rather than show an empty card. That edge case took a round of testing to catch.
Accomplishments that we're proud of
The stage system works. That sounds like a low bar but it isn't , getting the same question to produce genuinely different responses depending on which tab we're in, consistently, across different phrasings, required real iteration. When we switch from Planning to Issue and watch the response shorten and sharpen in real time, that's the thing working. The app feels like something you'd actually use. The contact collection, the Trips panel, the reminders with real dates, the booking links, none of that was in scope at hour one. We kept adding things that made it feel less like a demo and more like a product. There's no mocked data anywhere. Every search result is live. Every approval decision is computed. Every reminder date is calculated from the current timestamp.
What we learned
The real problem in business travel isn't missing information. It's that all the information exists somewhere and nobody wants to spend two hours finding it the night before a flight. Every feature we built came back to that. The stage system exists because the right kind of help depends entirely on where you are, not just what you're asking.
What's next for Globe-Trotter
We want to train our model more so that it learns to expand and respond well. The next version adds a configurable policy layer so the approval logic and spending limits match your actual organization. Also, want to add Calendar sync to detect upcoming travel from Google Calendar and start the pre-trip checklist automatically.

Log in or sign up for Devpost to join the conversation.