🌟 Leisure Planner

AI-powered personalized leisure activity planner — input your demographics, interests & mood, get beautifully crafted activity suggestions, then dive into a detailed itinerary + packing list for your chosen adventure.

✨ Features

  • 3-Step Experience: Profile → Suggestions → Detailed Plan
  • Demographic Awareness: age, gender, environment, group size
  • Interest & Skill Matching: 20 interest tags + 12 skill tags + free-text hobbies
  • Mood-Based Filtering: 9 moods influence suggestion tone and energy level
  • Budget Sensitivity: Free → Splurge tiers shape realistic options
  • AI-Powered Suggestions: 5 tailored activity ideas via GPT-4o-mini
  • Rich Detail View: step-by-step timeline, 8–12 item packing list, pro tips
  • Beautiful Dark UI: glassmorphism design with gradient accents

🗂 Architecture

Rendering mermaid diagram...

📁 File Structure

main.tsx              ← Hono HTTP server (routes + static serving)
api/
  suggest.ts          ← OpenAI calls: getSuggestions + getActivityDetail
frontend/
  index.html          ← HTML shell
  index.tsx           ← React app root + state management
  ProfileForm.tsx     ← Step 1: demographics, mood, interests, skills
  SuggestionsView.tsx ← Step 2: activity cards grid
  DetailView.tsx      ← Step 3: timeline, packing list, pro tip
  style.css           ← Dark glassmorphism theme
README.md

🔑 Setup

Required environment variable:

KeyDescription
OPENAI_API_KEYYour OpenAI API key from platform.openai.com/api-keys

Add it in Val Settings → Environment Variables.

🚀 Live App

Visit the deployed endpoint to start planning your perfect leisure time!