Play music
Find me
AI-powered
06
ai

AI-powered travel planning made simple.

Client

Vespucci

Role

Full Stack Developer

Timeline

Launching Soon

Category

ai

PROJECT OVERVIEW

Overview.

Vespucci is a multi-tenant SaaS platform for travel agencies — built as a modular Go + React monorepo with 4 deployable services, 11 domain-driven modules, 4 platform services, and 7 shared packages. It handles trip planning, client CRM, double-entry accounting, AI-powered document extraction, supplier management, and reminder workflows — with LLM-powered intelligence via OpenAI and Gemini.

THE CHALLENGE

Travel agencies relied on fragmented tools — spreadsheets for finances, separate CRMs for clients, manual document handling, and no intelligent planning assistance. There was no unified platform that combined trip management, financial ledger, client CRM, document intelligence, and AI-powered content generation in one system.

Architected a full-stack modular monorepo with a Go backend (Gin + GORM + Redis), React 19 frontend with Redux Toolkit + React Query, AI-powered document extraction pipeline (LLM factory with OpenAI/Gemini, schema registry, confidence scoring, 33-step timeline), a double-entry financial ledger with state machine validation, Keycloak 23 for multi-tenant PBAC auth, and production deployment on AWS via Terraform and 7 GitHub Actions CI/CD workflows.

THE SOLUTION

Gallery.

Full platform walkthrough — 11 domain modules covering trip planning, AI document extraction (Foundry), double-entry ledger, client CRM, reminder derivation engine, and two-layer supplier catalog.

Video

Main dashboard with Recharts + Chart.js visualizations, KPI metrics, and quick-action navigation — built with 57+ shadcn/ui components and OKLCH color system.

Trip management with status lifecycle (Draft → Proposal → Open → Final → Closed), reference code auto-generation, multi-traveler support, and planner workspace auto-creation.

Canvas workspace with Tiptap (20+ extensions), CodeMirror for JSON/Markdown, AI-assisted generation via OpenAI/Gemini SSE streaming, resizable split view, and optimistic updates with rollback.

Client CRM with encrypted PII, contact points, passport management with expiry tracking, loyalty memberships, relationship tracking, and full-text Postgres FTS search.

Two-layer supplier catalog — 60+ global reference + organization-specific adoption with detection patterns, match keys (ABN, IATA, domain, tax ID), and gold standard classification.

Admin panel with PBAC permission management (resource:action codes), 4-role invitation system (Owner, Admin, Agent, Viewer), and organization-scoped multi-tenant configuration.

TECHNOLOGY

Tech Stack.

1

Frontend

React 19.1 + TypeScript 5.8

Core framework

Vite 7.1 (SWC)

Build tooling with hot module replacement

Redux Toolkit + Redux Persist

Client state management (19+ slices)

TanStack React Query 5.90

Server state, caching & infinite queries

React Router 7.9

Client-side routing

57+ shadcn/ui + Radix UI + Ariakit

Accessible UI component suite

Tailwind CSS v4 + SCSS + OKLCH

Styling with perceptually uniform color system

React Hook Form + Zod

Form management & validation

Tiptap (20+ extensions)

Rich text editor — collaboration, drag-handle, emoji, image, math, mentions, code blocks, task lists

CodeMirror 6

JSON and Markdown code editing

Recharts + Chart.js

Data visualization & charts

TanStack Table + TanStack Virtual

Tables with virtual scrolling for large datasets

Framer Motion 12

Page transitions with AnimatePresence + 8 custom keyframe animations

Embla Carousel

Carousel components

react-resizable-panels

Workspace split view layouts

cmdk

Command palette for keyboard-driven navigation

jsPDF + html2canvas + react-to-print

PDF generation and export

Sonner

Toast notifications with importance levels

2

Backend

Go 1.25

Primary backend language

Gin 1.11

HTTP web framework

GORM 1.31

ORM for PostgreSQL 16 with migrations

Redis 7

Caching & session store

Keycloak 23

OAuth2/OIDC with PKCE, hybrid Session + JWT auth

golang-migrate

Version-controlled database migrations

Swagger / swaggo

OpenAPI documentation auto-generation

AWS SDK v2 (S3, SQS, EC2, SSM)

Cloud service integration

golang-jwt v5

JWT token handling with refresh queue

OpenAI API + Gemini

LLM factory pattern for document extraction and trip planning

golangci-lint v2 (15 linters)

Code quality enforcement

testify + go-sqlmock

Backend testing with mocked database

3

Infrastructure & DevOps

AWS (EC2, ECR, S3, RDS, SQS, SSM, IAM/OIDC, CloudFront)

Cloud platform

Terraform (ECS, RDS, S3)

Infrastructure as Code

Docker multi-stage builds

Go alpine builder → runtime containers

GitHub Actions (7 workflows)

CI/CD — test, lint, build, deploy, release, validate migrations, validate docs

Semantic Release

Conventional commits, automatic changelog, GitHub releases

LocalStack

Local AWS emulation for development

Vitest + React Testing Library

Frontend testing with V8 code coverage

Sentry

Error monitoring and tracing in production

CAPABILITIES

Key Features.

01

Planner & Itinerary

Canvas-based visual workspace for itinerary design with three view modes (itinerary-only, planner-only, split)
Segment management — flights, lodging, tours, activities, transfers, trains, buses, cruises
AI-assisted generation via OpenAI/Gemini with real-time SSE streaming
Tiptap rich text editor with 20+ extensions — collaboration, drag-handle, emoji, image, math, mentions, code blocks, task lists, typography
CodeMirror integration for JSON/Markdown editing
Schema.org JSON-LD support for structured activity data
Canvas-to-segment conversion (single and batch) with optimistic updates and rollback
PDF export via jsPDF + html2canvas, resizable panels for split view, diagnostics panel for real-time job tracking
02

AI Document Intelligence (Foundry)

LLM-powered extraction pipeline: PDF ingestion → classification → schema-guided extraction → segmentation → validation
LLM factory pattern — pluggable OpenAI/Gemini clients with provider-agnostic abstraction
Schema registry with versioned canonical schemas and supplier templates
Confidence scoring on extracted fields with 33-step extraction timeline and real-time polling (2s interval)
SQS async job processing with idempotent workers and retry mechanism (up to 3 attempts)
Extraction audit trail with performance metrics (tokens, latency)
Multi-entity attachment — link documents to trips, clients, etc. with tag-based organization
03

Finance & Ledger

Double-entry accounting model — receivable, payable, refund, adjustment transactions
Invoice lifecycle: Draft → Issued → Partially Paid → Paid (+ Overdue, Voided) with state machine validation
Client and supplier invoices with line items, tax, and discount support
Multiple payment methods (cash, card, bank transfer, wire, ACH, check) with refund processing
Transaction posting and reversal, gross profit and commission calculation
Currency support (ISO 4217) with FX conversion hooks, configurable invoice numbering per organization
04

Client CRM (Hive)

Client profiles with encrypted PII (given name, family name) and status management
Contact points (phone, email, fax, social media), multiple addresses with role tags (home, postal, billing, shipping)
Passport management with expiry tracking, loyalty program memberships with tiers
Relationship tracking (lead, partner, child, parent, sibling, friend), emergency contacts
Full-text search with Postgres FTS, audit logging of all changes
05

Reminders & Suppliers

12+ reminder types — deposits, payments, departures, returns, visa checks, follow-ups, birthdays
Derivation engine — supplier reminders auto-generate client reminders with chain integrity validation and T-3 business day logic
Batch operations (up to 100 items), priority levels, assignment and watch lists, activity feed with comment system
Two-layer supplier catalog: 60+ global reference + organization-specific adoption with detection patterns
Match keys (ABN, IATA, domain, tax ID), gold standard classification, processing priority and confidence thresholds
06

Auth & Multi-Tenancy

Hybrid Session + JWT (Keycloak OAuth2 + PKCE) with automatic fallback
PBAC (Permission-Based Access Control) with granular permission codes (resource:action)
4-role invitation system: Owner, Admin, Agent, Viewer with magic link passwordless login
CSRF protection, security headers (HSTS, CSP), brute-force protection with rate limiting
Force Keycloak logout via hidden iframe, token refresh with concurrent prevention (promise queue pattern)
07

Trip Management

Status lifecycle: Draft → Proposal → Open → Final → Closed (+ Cancelled)
Reference code auto-generation with configurable organization format
Multi-traveler support (JSONB), currency and timezone per trip, planner workspace auto-creation
Trip cloning, soft delete with recovery, advanced search/filtering/sorting/pagination
08

UI/UX & Frontend Architecture

57+ shadcn/ui components with Radix UI + Ariakit accessibility
OKLCH color system for perceptually uniform theming with dark mode via CSS custom properties
Redux Toolkit (19+ slices) + React Query dual state management pattern
Command palette (cmdk), virtual scrolling (TanStack Virtual), Embla Carousel, resizable panels
Error boundaries, 5xx diagnostics page with full error trace capture, module-based logger with env var control

INTELLIGENCE

AI / ML Pipeline.

Vespucci integrates AI at three levels: an LLM-powered document extraction pipeline with schema registry and confidence scoring, a trip planning engine with real-time SSE streaming, and developer tooling that automates PR generation, code review, and progress reporting.

1

Document Intelligence (Foundry)

OpenAI + Gemini (LLM Factory Pattern)

AI-powered extraction pipeline for travel documents

  • PDF ingestion → classification → schema-guided extraction → segmentation → validation
  • LLM factory pattern with pluggable OpenAI/Gemini clients
  • Schema registry with versioned canonical schemas and supplier templates
  • Confidence scoring on extracted fields with 33-step extraction timeline
  • SQS async processing with idempotent workers, retry mechanism (3 attempts), audit trail with token/latency metrics
2

Trip Planner AI

OpenAI GPT-4o-mini

Real-time streaming content generation for trip planning via SSE

  • Server-Sent Events for streaming AI responses to the frontend
  • Context-aware prompts built from canvas content, selected text, and user input
  • Custom plannerllm abstraction in Go — provider-agnostic (OpenAI + Gemini)
3

AI Developer Tooling

OpenAI (Node.js scripts)

Automated PR generation, code review, and EOD reporting

  • AI-powered PR creation analyzing git diffs for Conventional Commit-compliant output
  • Automated code review with intelligent summarization
  • End-of-day reports auto-generated from commit history

How It Works

The Foundry module uses an LLM factory pattern to abstract AI providers — documents are ingested, classified, and run through schema-guided extraction with confidence scoring across a 33-step timeline. The trip planner uses a custom plannerllm Go package that streams responses via Server-Sent Events. Developer tooling runs as Node.js scripts analyzing git history to automate PR creation, code review, and progress reporting.

IMPACT

Results.

010Domain ModulesDomain-driven Go modules with clean boundaries
020Shared PackagesConfig, editor, schema, SDKs, UI
030+UI Componentsshadcn/ui + Radix UI + Ariakit
040+Tiptap ExtensionsCollaboration, drag-handle, emoji, math, mentions
050CI/CD WorkflowsGitHub Actions pipelines
060+ADRs & RFCsArchitectural decision records

ENGINEERING

Architecture.

01Monorepo: 4 deployable services, 11 domain modules, 4 platform services, 7 shared packages
02go.work for monorepo module management across services, modules, and packages
03LLM factory pattern — pluggable OpenAI/Gemini extraction with schema registry and confidence scoring
0433-step document extraction timeline with SQS async processing and idempotent workers
05Double-entry financial ledger with state machine validation and transaction reversal
06Reminder derivation engine — supplier → client auto-generation with chain integrity and T-3 business day logic
07Two-layer supplier catalog: 60+ global reference + org-specific adoption with detection patterns and match keys
08Hybrid Session + JWT auth (Keycloak OAuth2 + PKCE) with PBAC permission codes and concurrent refresh prevention
09Multi-tenant data isolation with organization-scoped context via X-Agency-ID header
1057+ shadcn/ui components with OKLCH color system and command palette (cmdk)
11Optimistic UI updates with snapshot + rollback pattern on canvas mutations
1245+ ADRs and RFCs documenting every architectural decision
1325+ directories of documentation: ADRs, RFCs, HLDs, standards

Deployment

AWS EC2 + ECR for containerized Go backend deployment
AWS S3 + CloudFront for frontend static hosting with CDN
AWS RDS (PostgreSQL 16) for managed database
AWS SQS for async job processing (document extraction, notifications)
Terraform IaC for ECS, RDS, S3 provisioning
7 GitHub Actions workflows: test-and-lint, build-deploy-backend, build-deploy-frontend, build-deploy-static-website, semantic-release, validate-migrations, validate-docs-taxonomy
Docker multi-stage builds (Go alpine builder → runtime) with Docker Compose for full local stack
LocalStack for local AWS emulation in development

Interested in working together.