Inspiration

Travel planning becomes frustrating when AI tools produce rushed schedules, ignore travel time, and invent vague attractions. I built this project to treat trip planning as a constraint-satisfaction problem rather than pure text generation.

My software engineering experience taught me that reliable systems validate inputs, enforce structure, and handle uncertainty explicitly. Instead of asking open-ended questions, this system collects hard constraints first (dates, duration, mobility, transport limits) before incorporating preferences. I focused on realism, pacing, and transparency so users can trust the plan.

What it does

AI Trip Itinerary Generator creates realistic, preference-aware itineraries while minimizing hallucinations.

It supports two modes:

Option A — Discover a Destination

  • For users unsure where to go
  • Interprets high-level goals
  • Applies distance, budget, and pacing constraints
  • Recommends a coherent destination and plan

Option B — Known Destination

  • For users with a fixed location
  • Builds structured day-by-day schedules
  • Respects time limits, rest needs, accessibility, and travel flow
  • Avoids overpacked or repetitive days

Key features:

  • Structured constraint and preference collection
  • Required vs. optional input separation
  • Explicit handling of unknown answers
  • Logically ordered daily plans
  • Validated structured JSON outputs
  • Automatic PDF itinerary export

How I built it

The backend is built with FastAPI and it converts structured inputs into validated itineraries.

Core components:

  • Constraint-First Question System: collects required constraints before preferences and prevents unrealistic assumptions
  • Structured Generation Pipeline: model outputs structured JSON and custom schema validates format and completeness
  • Schema Validation: ensures consistent itinerary structure and rejects malformed outputs
  • PDF Generation Engine: converts itineraries into formatted PDFs and generates timestamped files automatically

Design Approach:

I treated itinerary creation as a planning problem that balances constraint satisfaction, travel-time realism, activity pacing, preference weighting, and uncertainty handling.

Challenges I ran into

  • AI hallucinations: models invent places and overload schedules. I reduced this with schema validation and constraint-aware prompting.
  • Flexibility vs. structure: too much structure limits personalization; too little reduces reliability. I balanced required constraints with optional preferences.
  • Realistic travel flow: geography, pacing, and fatigue complicate planning. I refined prompts to prevent excessive transitions and day density.
  • Output consistency: models produce inconsistent JSON. Schema validation and regeneration resolved this.

Accomplishments that I'm proud of

  • Built a full pipeline from user inputs to downloadable PDFs
  • Designed a constraint-first system that reduces hallucinations
  • Implemented reliable schema validation for structured outputs
  • Created two flexible trip-planning modes
  • Prioritized realistic pacing over flashy text generation

What I learned

  • Structured systems greatly improve AI reliability
  • Explicit uncertainty produces more trustworthy outputs
  • Planning problems require logic beyond language prompts
  • Validation layers are essential for production AI systems

What's next for AI Trip Itinerary Generator

  • Complete React frontend with interactive question flow
  • Enable browser-based PDF downloads
  • Improve constraint modeling for higher accuracy

Built With

  • css
  • dotenv
  • fastapi
  • git
  • github
  • html
  • javascript
  • json-schema-enforcement
  • json-schema-validation
  • openai-api
  • openai-api-(llms)
  • pdf-generation-libraries
  • pydantic
  • pydantic-schema-validation
  • python
  • react
  • reportlab
  • rest-apis
  • virtual-environments-(venv)
Share this project:

Updates

Submission history