Inspiration

Funny enough what inspired me to build Places isn't a positive attribute. I'm very bad at planning and being intentional about future events whether it's hanging put with friends, studying or even just my daily activities. LLMs have come of age over the years and are changing they we live and interact with the world around us. Given an optimal context and data one would dare say AI becomes superhuman. That drove me cause I know a ton of information and how to get about the best places to visit once in the region both as a local or an international tourist. I decided to make it extremely simple to generate an itinerary and trip plan that can be viewed visually on map and represented as accurately as possible in terms of price what to expect and prices, down to the last cent.

What it does

Places is an AI supercharged trip and itinerary planner iOS app that uses cloud and on device AI when in remote places to come up with a pixel perfect accurate itinerary when visiting Eastern Africa for a holiday or a getaway. This itinerary can be converted to a trip and be edited on demand based on a user's schedule. Places also gives the users to plan for a trip spanning several countries in the Eastern Africa region with notes on what to focus on for each pit stop.

How we built it

Building the app first required a painful data collection process which lasted a week for a team of 5 working almost full time collecting sampling and uploading destinations, experiences and other essentials needed to make Places whole. This included online searches, visiting government sites & portals physical tours, making calls and setting up meets with relevant personnel. After I had a rich DB of data I then did a brief system design of the application including a 5 minute flow of a new user making sure a new user go through the onboarding process, taken for a tour of the app, create an itinerary and export it for use outside the application. I decided to go server-less not only because this would have no upfront deployment and hosting cost, but also meant that I had all of the infra prebuilt(databases, buckets, authentication etc) and would focus on the core product. Finally I built the iOS app using SwiftUI and it's popular libraries for animations, data management and testing. And on the last step integrated Revenue Cat for in app purchases and subscription.

Challenges we ran into

The biggest issue was obtaining the data and verifying it against multiple sources ensuring that when a user itinerary was being generated the tool calls by the model were to a verifiable data source that could be relied upon. The other issue was making sure that the models worked in sync because for users with Apple Intelligence they can decided to use on device AI to generate content and Apple Foundational Model's have slightly different architecture compared to OpenAI's GPT cloud model. So building a reliable adapter that could seamless switch from either was a bit challenging.

Accomplishments that we're proud of

I'm supper proud that I have been able to build an app from the ground up and in time to get reviews and make more edits. This is a contrast to last Revenue cat hackathon where I didn't manage to submit my app on time.

What we learned

A lot was learned to be honest. I got to to use SwiftData and Core Animations for the first time in production. Not to mention Writing tests for the very first time for my iOS app using XCTesting. But above all the key thing I acquired was the art of data collection and design a system. Cause before I really didn't pay much attention to system design and data flow when it came to building app I just started from the UI and guessed my way to a a mediocre app. But now I'm the wiser.

What's next for Places in East Africa

I have already began working on better pro features for Places with things such as offline maps, trip sharing and live activities tracking for when a trip starts. These are features that I believe would really make Places unique.

Built With

  • revenuecat
  • supabase
  • swift
  • swiftui
Share this project:

Updates