← Back to selected work
PERSONAL PROJECT / MOBILE & APPLIED AI

Questra.

From inspiration
to a plan.

Connecting travel discovery, saved places, and itinerary planning through a mobile experience and an AI-enabled backend.

PROJECT TYPEPersonal mobile app
FOCUSProduct · Full stack · AI
PLATFORMExpo + Firebase
THE ACTUAL APPDISCOVER / SAVE / PLAN
Actual Questra discovery screen with destination imagery, search, and saved-place shortcutsActual Questra itinerary editor showing a sample Japan trip with editable activities

Captured from the Expo app’s web preview with sample saved places and trip data.

BUILT WITH

React Native / Expo · TypeScript · Firebase · OpenAI API · Place APIs · Earlier Flutter implementation

Travel inspiration often starts in a social feed, while the useful details end up scattered across saved posts, maps, and notes. I built Questra to bring destination discovery, saved places, and itinerary planning into one mobile experience.

The engineering challenge is turning loosely structured content into data an application can use: named places, geographic context, saved references, and editable daily plans.

A compelling AI feature needs more than a generated answer. It needs a path into the product’s data and interface.

02 / INSIDE THE PRODUCT

Built to explore.
Organized to act on.

Actual app screens, using sample content.
Select any screen to view it at full size.

03 / INTERACTIVE ARCHITECTURE

Follow the data.
Explore the decisions.

A source-based walkthrough of the backend.
Sample data. No live imports or AI calls.

INSIDE THE FLOW

THE ENGINEERING DECISION

Inspect the example data

Interactive walkthrough with illustrative data. The two flows are separate; the trip path uses explicit preferences. No social account is accessed, and no live AI request is made.

04 / ENGINEERING DECISIONS

The choices behind
the experience.

01

Separate suggestions
from place records.

AI proposes candidates. Place lookup adds identifiers and geographic context, while imported suggestions remain marked unverified. This preserves the distinction between a model’s answer and a reusable application record.

02

Reuse what the system
already knows.

The backend checks previously processed URLs and existing place IDs. A repeat import can reuse stored results and add missing user references without repeating the entire analysis pipeline.

03

Keep the itinerary useful
when a lookup fails.

Trip generation returns structured days and activities. Place details are attached where available; an unsuccessful lookup retains a fallback activity rather than discarding that part of the plan.

Questra spans an earlier Flutter application and a newer React Native / Expo interface. The newer services normalize existing trip fields and saved-place references into the shapes its screens expect.

That makes compatibility part of the engineering story: evolving the mobile experience while continuing to work with an established Firebase data model.

What this case study demonstrates

Mobile interface development, multimodal AI processing, external API integration, structured generation, and data-model continuity. The emphasis is on connecting AI output to structured data, real interfaces, and editable product workflows.

EXPLORE MORE

Back to the bigger picture.

Return to the portfolio