Inspiration

Last year, our group decided to go to LA. However, the planning was messy at best. We got there really late and didn't know what to do. Each member had a different idea of how the trip would unfold, and in the end, the result was a trip that could've had more potential.

What it does

Questline turns group conversations into a shared trip plan. It extracts places mentioned in a chat, puts them on a map, and lets everyone vote on where they want to go. The group’s choices become a questline, with main quests for committed stops and side quests for optional detours. Users can adjust the itinerary, review estimated costs and travel times, and check off quests throughout the day. An iMessage integration also lets the group contribute directly from their chat.

How we built it

We built Questline with React, TypeScript, Vite, and Tailwind CSS, creating an RPG-inspired interface with parchment panels, quest cards, and interactive Google Maps. Reusable components organize waypoints, group voting, route planning, and the quest log. Our Python and FastAPI backend uses Supabase as our hosted PostgreSQL database to store trips, members, messages, votes, and plans. SQLAlchemy handles database access, Alembic manages migrations, and PostgreSQL-backed background jobs process chat extraction and plan generation. We integrated Gemini to interpret group conversations and Google Places and Routes to resolve locations and plan travel. A typed API client, member tokens, and polling connect the frontend to shared trip updates. An iMessage relay running on a Mac brings group conversations into Questline, while Docker and mock providers support local development.

Challenges we ran into

One challenge was turning casual group conversations into useful planning information. A place being mentioned doesn’t exactly mean everyone wants to visit it, so we needed to separate suggestions from votes and committed stops. Merge conflicts were also often a big challenge.

Accomplishments that we're proud of

We’re proud of bringing our idea into an interactive experience where a group can contribute places, vote, build a route, and track its adventure. The main quest and side quest system gives the group structure while leaving room for spontaneous stops. We’re also proud of the visual design and of connecting chat extraction, maps, routing, and iMessage into one project.

What we learned

We learned how much collaboration matters when building a full-stack application. Agreeing on how information moves between the interface, backend, and external services helped us bring our separate contributions together.

For some of us, this was our first hackathon and our first time building web backends. We gained experience with frontend design, API development, databases, AI integration, testing, and had a lot of fun learning alongside our team.

What's next for Questline

We can add Android support, and a more advanced placefinding, routemaking, and parameters for our trip limitations. Also we can add a mobile app.

Built With

Share this project:

Updates

Submission history