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.