Inspiration

Traditional travel apps show generic "top rated" results that ignore group dynamics. When traveling with friends, family, or kids, one person usually ends up manually reconciling everyone's preferences across multiple tabs, maps, and chats. I wanted to solve this by building an app that considers your entire group's interests to find places everyone will enjoy.

What it does

Yelp! What to do? helps groups quickly answer "What should we do together?" in any city. Key features include:

  • Smart Onboarding: 4-step wizard captures destination, user interests, and travel companions (with ages and individual interests)
  • Group-Aware Search: Uses Yelp Fusion API to find businesses matching the collective group preferences, with smart filtering (Food, Activities, Nightlife, Culture, Together, Popular, Top Rated)
  • Place Exploration: Rich cards with ratings, distance, price, and photos; interactive map view; detailed modals with hours and Yelp links
  • AI Recommendations: Optional OpenAI integration explains why each place fits your group
  • Itinerary Builder: Auto-generate or manually build multi-day plans with drag-and-drop, walking time estimates between activities, and progress tracking
  • Multi-Trip Support: Create, switch, and manage multiple trips with separate saved places and itineraries

How I built it

Frontend: React 19 + TypeScript + Vite, styled with Tailwind CSS, Framer Motion for animations, React Query for data caching, Wouter for routing, and Radix UI for accessible components.

Backend: Node.js + Express in TypeScript with session-based auth (bcrypt), RESTful APIs for trips/places/itineraries, and Yelp API response caching.

Algorithms: Haversine formula for distance calculations, walking time estimates, and smart place categorization by time-of-day (breakfast, morning, lunch, afternoon, dinner, evening) for itinerary generation.

Challenges I ran into

  • Mapping diverse user interests to effective Yelp search queries required careful interest-to-category mapping
  • Generating sensible itineraries that balance activities throughout the day without repeating places across multiple days
  • Making the UX feel polished for a hackathon while maintaining robust functionality

Accomplishments that I'm proud of

  • Full-stack TypeScript application with end-to-end type safety
  • Genuine group-awareness that treats companion preferences as first-class data
  • Smart itinerary generation with real geospatial calculations
  • Production-ready architecture (PostgreSQL-ready via Drizzle ORM)

What I learned

  • Deep dive into Yelp Fusion API capabilities and rate limiting strategies
  • Building group-centric UX requires thinking beyond individual user flows
  • Geospatial algorithms (Haversine) are essential for meaningful travel recommendations

What's next for Yelp! What to do?

  • Real-time collaborative trip planning with shareable links
  • Integration with calendar apps for itinerary sync
  • Offline mode for travelers without constant connectivity
  • Expanded AI features for conversational trip planning

Built With

Share this project:

Updates