AI-based Travel Itinerary Planner
An app to move the daunting task of travel itinerary planning into the realm mobile AI technology
Travel
Mobile development
January 2023 — Ongoing
iOS
Project Idea
Our client approached us with the idea of an AI-based travel planner that will help users organize their trips in seconds. The app simplifies travel planning by helping users find the optimal transportation, accommodations, and sightseeings all in one place. The main goal of this solution is to enhance the travel experience, ensure travelers can easily access all the best options for their needs, and relieve the stress connected to organizing trips.
We were responsible for
- Converting wireframes to colored designs
- Backend development
- Frontend development
The client had
- Idea
- Wireframes
- Feature list
Team
Project manager
Backend engineer
iOS engineer
QA engineer
UX/UI designer
Key features
Activity and event suggestions
A user can get recommended events according to their expectations. For example, if they are a music fan, the app can get a list of interesting music festivals, shows, and concerts happening during the user's travel dates.
Destination recommendations
If a user doesn’t know where to go or has several options to choose from, the app will help them choose the destination according to previous travels and personal preferences.
Transportation guidance
Besides looking for plane tickets, the app offers information on public transportation options, schedules, and routes to the destination itself. It also provides directions and maps for walking and driving.
Trip itinerary creation
The app helps users create detailed itineraries for their trips, including activities, accommodations, and transportation options. It can also optimize itineraries based on time constraints and distance and assist with visa requirements, passport expiration alerts, and necessary travel documents.
ChatGPT integration
With the help of ChatGPT integration, users can use ChatGPT for planning and asking any questions about all the points of the itinerary. From accommodations to activities, the app will get the most relevant answers from our database.
More features
Safety and health tips
The app provides information on local safety conditions, health alerts, and vaccination recommendations. Also, a user can find emergency contact information and nearby medical facilities.
Packing lists
Users can generate lists of necessary things to pack for any particular destination, weather, and planned activities.
Offline access
The app allows users to access their travel plans and information offline which is useful when traveling in areas with limited connectivity.
Tech stack
Here is the list of technologies we used on this project.
Programming language
Swift 5
REST API
Alamofire, Swagger Codegen
Code style and conventions
SwiftLint
App distribution
Fastlane, Firebase App Distribution
Maps
Google Maps iOS SDK
Architecture
MVVM + C
Local database
CoreData
Crash analytics
Firebase Crashlytics
Localization
SwiftGen
UI
UIKit + SnapKit
Programming language
TypeScript
Additional services
Firebase Auth, Firebase Storage, Google Analytics, Firebase Cloud Messaging
Framework
NestJS
AI
Open AI
Database
PostgreSQL
ORM
Sequelize
Development Challenges and Solutions
How our team coped with a range of development challenges
Real-time data processing
Challenge: We needed to create an algorithm to track destinations and related information in real-time.
Solutions: We used event emitters + sockets. It was necessary to create a real-time connection. Now, when the user asks for a new itinerary, a new connection is created and the initial data is sent.
AI training
Challenge: ChatGPT had trouble with understanding our database.
Solutions: After thorough research, we decided to put dynamically generated information about the database into context.
Map display
Challenge: We needed to implement a map to allow users to see the itinerary. However, custom map implementation will take a lot of time to implement.
Solutions: We chose Google Maps iOS SDK, an out-of-the-box solution that helped us implement map features quickly.
Data caching
Challenge: Sometimes, data loading from the API takes a long time. For a good user experience, the loading time should be decreased.
Solutions: We cache some information in RAM and some in the local database to display it first. Then the app will update information after fetching it from the API.
Results
Our team is testing the app and adding the final touches to the design.