Inspiration

The inspiration came from the fact that I'll be taking an international trip in a few months, and this time I wanted an app that would fit my specific travel needs.

What it does

NextStop is a personal travel management app that helps users organize every part of a trip in one place. Users can create and manage trips, plan activities in a chronological itinerary, store and preview travel documents, maintain daily checklists, and track expenses in multiple currencies.

The app provides a Travel Center with a quick overview of the next event, today’s activities, pending tasks, documents, and expenses. It also supports event categories, document associations, completion statuses, date validation, and currency-based expense totals.

How we built it

NextStop was built as a native Android application using Kotlin and Jetpack Compose. The project follows a feature-first architecture with separate layers for presentation, data, navigation, and shared UI components. Room is used for local persistence, allowing trips, events, documents, checklist tasks, and expenses to be stored directly on the device. ViewModels expose UI state and handle user actions through a unidirectional data flow. The app includes form validation, document selection and preview, chronological itinerary sorting, event status management, and expense totals grouped by currency.

Codex and GPT-5.6 supported the development process by helping plan the architecture, implement Compose screens, debug issues, refine the UI, create validation logic, improve localization, and verify the project with Gradle builds and tests.

Challenges we ran into

One of the main challenges was designing a reliable local data architecture while keeping the app simple and fully offline. We needed to ensure that trips, events, documents, checklist tasks, and expenses were stored consistently without relying on fake data in production. We also faced several UI and state-management challenges, including refreshing screens after creating, editing, or deleting data; keeping the itinerary correctly sorted by date and time; filtering past events from the next-event section; and displaying the correct events in Today’s Summary. Another challenge was validating date and time ranges. The app needed to support optional end times while still preventing users from creating events or trips with invalid date sequences. Document handling required additional work because users can select images and PDFs from the Android file system, preview them, associate them with events, and open them securely.

Accomplishments that we're proud of

We built a complete offline-first travel management app that brings trips, itineraries, documents, checklists, and expenses together in one place. We are especially proud of have a structured itinerary with event categories, date and time validation, completion status, document linking, and daily organization.

What we learned

We learned how to design and build an offline-first Android application using Kotlin, Jetpack Compose, Room, and ViewModels.

What's next for Next Stop

Integrate AI to provide personalized recommendations whenever I have free time between activities, based on my current location. The AI should also generate a personalized trip summary at the end of my journey, highlighting insights such as where I spent the most money, the places I enjoyed the most, and other useful travel statistics.

Built With

  • android
  • codex
  • gpt5.6
  • java17
  • jetpackcompose
  • kotlin
  • room
Share this project:

Updates