TasteTravel - Personalized Cultural Travel Planner

Inspiration

The vision for TasteTravel was born from a passion for cultural exploration and a frustration with one-size-fits-all travel apps. I wanted to empower travelers to discover destinations that resonate with their unique tastes—whether it’s the serene temples of Kyoto or the vibrant markets of Marrakech. The breakthrough came from discovering Qloo’s Taste AI™ API, which could analyze individual preferences, and OpenAI’s GPT models, which could provide conversational travel advice. My goal was to create a platform that feels like a personal cultural guide, curating authentic experiences across all continents.

What it does

TasteTravel is a web application that crafts personalized travel experiences using AI. It covers 17 global destinations across Asia (Kyoto, Angkor Wat, Mumbai, Bangkok), Europe (Florence, Istanbul, Prague, Santorini), Africa (Marrakech, Cairo, Cape Town), the Americas (Cusco, Mexico City, New York, Buenos Aires), and Oceania (Sydney, Auckland). Key features include:

  • Personalized Recommendations: AI-driven suggestions based on user preferences for culture, history, or cuisine.
  • Cultural Sites: Curated lists of museums, temples, and monuments, like Cairo’s pyramids or Florence’s Uffizi Gallery.
  • Restaurant Recommendations: Tailored dining options, from local eateries in Bangkok to fine dining in New York.
  • Interactive World Map: A Leaflet.js-powered map for visual exploration with cultural insights.
  • Itinerary Builder: A drag-and-drop interface for creating custom travel plans.
  • AI Chat Assistant: Powered by GPT-4o (with Gemini-2.5-flash fallback), it offers real-time travel advice.
  • Cultural Insights: In-depth information on local traditions and tips, ensuring authentic experiences. The app is responsive, supports desktop, tablet, and mobile, and provides real-time updates for a seamless user experience.

How we built it

TasteTravel was developed as a full-stack web application with a modern, scalable architecture:

  1. Tech Stack:
    • Frontend: React 18 with TypeScript, Tailwind CSS, and shadcn/ui components for a responsive, visually rich UI. Vite ensured fast builds.
    • Backend: Express.js with TypeScript, handling API routes and integrating Qloo’s Taste AI™ and OpenAI’s GPT-4o. PostgreSQL with Drizzle ORM stored data.
    • Additional Tools: TanStack Query for server-state management, Wouter for routing, and Leaflet.js for the interactive map.
  2. Development Process:
    • Data Curation: Compiled a dataset of 17 destinations with cultural metadata (e.g., Mumbai’s street food, Prague’s castles) stored in PostgreSQL. The schema included tables for Users, Destinations, Cultural Sites, Restaurants, Itineraries, and Chat Messages.
    • AI Integration: Qloo’s API scored destinations based on user preferences using a weighted formula: [ \text{score} = \sum_{i} w_i \cdot \text{preference_match}_i ] GPT-4o powered the chat assistant, with prompts like: “Provide cultural insights for Santorini.” Gemini-2.5-flash served as a fallback for rate-limit handling.
    • Frontend: Built reusable components (HeroSection, ItineraryBuilder) with React. The drag-and-drop itinerary builder used React state for smooth interactions.
    • Backend: Created API endpoints (e.g., GET /api/destinations, POST /api/chat) with Express.js. Caching with TanStack Query reduced latency.
    • Deployment: Optimized for Replit, with support for Vercel and Heroku. Environment variables (e.g., OPENAI_API_KEY) were secured in a .env file.
  3. Testing: Wrote unit tests for utility functions, integration tests for APIs, and end-to-end tests for user flows like preference input and itinerary creation.

Challenges we ran into

  • Data Accuracy: Maintaining up-to-date data for 17 destinations was challenging. For example, ensuring Cape Town’s restaurant recommendations reflected current local favorites required frequent updates.
  • AI Calibration: Early GPT-4o responses were generic (e.g., suggesting only the Eiffel Tower for Europe). I fine-tuned prompts to prioritize niche sites, like Istanbul’s hidden mosques. Qloo’s API needed similar tweaks to avoid over-recommending popular destinations.
  • Performance: The interactive map lagged due to heavy data loads. I implemented lazy loading and indexed PostgreSQL tables to achieve < 3s Time to Interactive.
  • Responsive Design: Adapting the UI for mobile, tablet, and desktop required custom Tailwind breakpoints and extensive testing for touch interactions.
  • Security: Protecting APIs from abuse involved adding rate limiting and input sanitization, particularly for POST /api/itineraries.

Accomplishments that we're proud of

  • Global Reach: Successfully curating 17 destinations across all continents, each with rich cultural data, from Angkor Wat’s temples to Auckland’s Māori heritage.
  • Seamless AI Integration: Combining Qloo’s Taste AI™ and GPT-4o with a Gemini fallback created a robust, uninterrupted recommendation system.
  • Responsive UI: Achieved a mobile-first, visually stunning interface with < 2s First Contentful Paint and < 0.1 Cumulative Layout Shift.
  • User-Centric Features: The drag-and-drop itinerary builder and interactive map received positive user feedback for ease of use and engagement.
  • Cultural Authenticity: Ensured recommendations respect local traditions, like including halal dining for Marrakech and indigenous sites for Cusco.

What we learned

  • AI Optimization: Fine-tuning AI models to deliver specific, culturally relevant outputs was critical. I learned to craft precise prompts and adjust weighting algorithms.
  • Scalable Data Management: Structuring a relational database with Drizzle ORM taught me to handle complex, global datasets efficiently.
  • Performance Tuning: Techniques like code splitting, caching, and lazy loading were essential for a fast, smooth experience.
  • Cultural Sensitivity: Researching diverse destinations deepened my understanding of global cultures, ensuring respectful and authentic recommendations.
  • Team Collaboration: Writing clean, type-safe TypeScript code with ESLint and Prettier streamlined development and future contributions.

What's next for TasteTravel

  • Expanded Destinations: Add more cities (e.g., Seoul, Nairobi) to cover 30+ destinations by 2026.
  • Enhanced AI Features: Integrate real-time weather data and event calendars into recommendations using additional APIs.
  • Offline Mode: Develop offline itinerary access for travelers in low-connectivity areas.
  • Community Features: Add user reviews and social sharing for cultural sites and restaurants.
  • AR Integration: Explore augmented reality for virtual tours of cultural sites, like a 3D view of Angkor Wat.
  • Sustainability Focus: Incorporate eco-friendly travel options, such as low-carbon transport and sustainable lodging. TasteTravel will continue to evolve as a platform that makes cultural exploration accessible, personal, and unforgettable.
Share this project:

Updates