Inspiration
Organizing a group travel can be a disaster. With differing schedules, financial constraints, dietary preferences, and the never-ending "Where shall we go?" discussion in group chat rooms, most trips never happen. Our mission was to create a product that will eliminate all of this hassle, an application in which everyone has their say and AI does all the heavy lifting. In our personal experience, during our time in Turkey, a country with amazing tourist attractions, we encountered the issue of "What do we do next?". 10 days might have been a long for what we already planned for, but we wished that we would have known even more about the restaurants, food, and historic places to go to. Well all of it is already in the internet shared among people traveling there, so all that we would be needing is an application that can gather all that data with us putting in as little effort as possible.
What it does
TravelBuddy is a fully functional travel planning app for groups in which you can make a joint trip, invite all your friends through a link, gather information about their preferences and special needs, choose the best destination places through voting, and automatically get a full itinerary plan for each day using AI in seconds, with all booking links, maps, challenges, leaderboard, email notifications, and premium subscriptions.
How we built it
TravelBuddy was developed using Next.js 16 along with TypeScript in the frontend, Clerk for authentication, Prisma 7 as our ORM, and Amazon Aurora PostgreSQL with IAM-only authentication as our database. All group member preferences were sent at once to Groq AI via the AI planning pipeline, which gave us a whole JSON itinerary that contains the coordinates, pricing information, booking links, and gamification tasks. Our maps were developed using Leaflet, our emails via Resend, and payments were managed using Stripe.
Challenges we ran into
The primary technical hurdle was AWS Aurora PostgreSQL's IAM-only authentication method, which is fine for psql but the Node.js pg package does the PAM authentication handshake in a different manner, silently rejecting the request even if you use a proper token. Another problem we faced was designing all the data models in terms of groups, not individuals, as well as resolving any merge conflicts that arise due to parallel development among team members. We had to cut down our original plan drastically.
Accomplishments that we're proud of
We take pride in having shipped a truly useful, end-to-end working application within three weeks. Our AI itinerary planning, which involves collecting information on the preferences, dietary restrictions, budget constraints, and things to see from each member of the group and generating a realistic multi-day plan with actual booking links, functions fantastically. The gamification aspect (challenges, points, leaderboard) is surprisingly fun and something we didn't think would be completed by now. And our implementation of AWS Aurora using IAM authentication from scratch is a huge technical accomplishment.
What we learned
The AWS IAM database authentication is different for various clients and needs to be tested on the actual driver you use in the application rather than only on the CLI. Groq AI models are incredibly proficient in handling multi-constrained planning tasks via JSON output. Designing for teams rather than for individual users alters each data model and permission scheme. Most of all, ruthless scoping defines a shipped product from one that gets abandoned.
What's next for TravelBuddy
Actual booking of flights and hotels through Amadeus API, push notification on changing the itinerary, development of mobile app using React Native, offline version for users without internet connectivity, and social aspect with which you can follow your friends and view their completed travel challenges.
Built With
- amazon-web-services
- aurora
- leaflet.js
- next.js
- postgresql
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.