Full-stack + LLM

TripWise

Plan a trip your budget can actually afford.

How it works

A full-stack travel platform: pick your dates, interests and budget, and it builds a day-by-day plan — where to go, what to do, where to stay — with the itinerary generated by Claude and streamed back live. A live weather forecast is injected into the prompt so outdoor activities land on the best days, and a two-stage recommendation engine ranks destinations and stays against your budget and taste.

Engineering detail

  • 28 async REST/SSE endpoints, 9-table PostgreSQL schema, JWT auth with access/refresh token-type enforcement, 23 automated tests.
  • Two-stage recommendation engine: heuristic scoring (popularity, rating, budget-fit, tag affinity) blended with pgvector cosine similarity over 384-dim sentence-transformer embeddings; Redis-cached feeds with event-driven invalidation.
  • Streaming LLM itineraries over Server-Sent Events with schema-enforced JSON output (Pydantic extra="forbid" → additionalProperties: false), weather-aware prompting, prompt caching, per-user Redis rate limiting, and per-request token/cost telemetry surfaced in an admin dashboard.
  • Simulated booking lifecycle (hold → confirm → cancel) with date-overlap conflict detection; interaction tracking that closes the loop back into the recommender.
  • Cut the initial JS bundle ~27% via route-level code splitting; multi-stage Docker builds behind an SSE-safe nginx reverse proxy, designed for AWS; request-ID tracing and structured JSON logging.