TripFlow
An AI-assisted travel planner that brings the whole trip together in one place, with real-time collaboration, interactive maps and full offline access.
The problem
Planning a trip means juggling half a dozen tools that don't talk to each other. The result is information that's scattered, copied by hand and out of date almost immediately.
Information is scattered across search engines, maps, blogs and chats.
Nothing is connected: every detail is copied by hand and goes stale instantly.
In a group it multiplies: different preferences and changes that get lost.
The whole trip in one place
Most tools solve only a slice of the problem. TripFlow set out to cover the whole of it (time-based planning, AI, real-time collaboration and offline) in a single product.
| Maps | TripAdvisor | Roamy | Wanderlog | TripFlow | |
|---|---|---|---|---|---|
| Time-based planning | — | — | ✓ | ✓ | ✓ |
| Real-time collaboration | — | — | — | Paid | ✓ |
| AI generation | — | — | ✓ | ✓ | ✓ |
| Offline support | Partial | — | — | Paid | ✓ |
| Cross-platform | ✓ | ✓ | — | ✓ | ✓ |
| Pricing | Free | Free | Free | Freemium | Freemium |
Features
Everything you need to plan a trip, from the first idea to a shareable, offline-ready itinerary.
Day-by-day itineraries
Plan trips by days and activities, with optimized routes between places.
AI assistant
Generate a complete itinerary from a single prompt with an AI assistant.
Real-time collaboration
Plan together with live, role-based collaboration.
Interactive map + PDF
Visualize everything on an interactive map and export a clean PDF.
Public share links
Share any itinerary through a secure public link.
Cross-platform PWA · Offline
An installable PWA that works on any device, even with no connection.
Distributed architecture
TripFlow is a distributed system: a React PWA talks to a set of Spring Boot microservices through a gateway, and those services coordinate asynchronously over an Apache Kafka event bus.
Key technical decisions
A handful of decisions shaped the project the most, around security, AI, real-time and offline.
JWT authentication
Dual JWT (15-min access, 30-day refresh) in HttpOnly cookies to mitigate XSS.
Async, secure AI
Prompt-injection filtering on the way in, and sanitization of the generated JSON on the way out.
Real time
WebSocket + STOMP with JWT validation in the handshake itself to authorize events.
Offline PWA
A service worker installs the app and lets you consult itineraries with no connection, mid-trip.
Quality & delivery
Built with a strong testing and automation culture from day one: every change ships through the same pipeline.
The journey
TripFlow was my Bachelor's Thesis at Universidad Rey Juan Carlos, graded 10/10, designed and built end to end. It grew iteratively across three versions, and each one shipped as a working, deployed release rather than a prototype, from the first commit to v1.0.0.
Authentication and base itineraries.
AI, notifications and administration.
Maps, collaboration, share links, PWA and PDF.
Each release, documented from first commit to v1.0.0: