Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Iteroo

Iteroo app showcase

Iteroo is an AI travel planner that turns structured trip preferences into a day-by-day itinerary with mapped stops, estimated costs, accommodation suggestions, edit flows, and external booking links.

The project was originally built and shipped as a solo-founder SaaS experiment. This public version is a portfolio-friendly monorepo with a fresh Git history and all live secrets, service accounts, deployment metadata, and local environment files removed.

What It Does

  • Collects trip preferences through a 6-step wizard: destination, dates, travelers, budget, accommodation, vibes, and pace.
  • Generates itineraries asynchronously through a Spring Boot backend and an AI orchestration pipeline.
  • Persists trips, days, steps, accommodations, map coordinates, estimated costs, ratings, and share tokens.
  • Lets users review, edit, reorder, add, and delete itinerary steps.
  • Shows a map/timeline experience in a Flutter Web PWA.
  • Enriches selected travel experiences and search flows with external provider or affiliate links.
  • Includes a localized marketing website with landing pages and travel blog content.

Monorepo Layout

apps/
  frontend/   Flutter Web/PWA product app
  backend/    Spring Boot API and AI orchestration service
  website/    Next.js marketing website and blog
docs/
  ARCHITECTURE.md
  API.md
  DATA_MODEL.md
  SECURITY.md

Tech Stack

Area Technology
Product frontend Flutter Web, Riverpod, Supabase Auth, Google Maps
Backend Java 21, Spring Boot 3, Spring Security, JPA, Spring AI
Data Supabase PostgreSQL, Redis
AI and data providers Google Gemini, Brave Search, Geoapify, Viator, Unsplash
Notifications Firebase Cloud Messaging for web push
Marketing site Next.js, React, TypeScript, next-intl
Ops Docker, Firebase Hosting-ready frontend config, Render-style backend config

Architecture

graph LR
  U["User"] --> F["Flutter Web PWA"]
  U --> W["Next.js Website"]

  F --> SA["Supabase Auth"]
  F --> API["Spring Boot API"]
  F --> GM["Google Maps / Places"]
  F --> FCM["Firebase Messaging"]

  API --> DB["Supabase PostgreSQL"]
  API --> R["Redis Cache"]
  API --> AI["Google Gemini"]
  API --> GEO["Geoapify"]
  API --> BS["Brave Search"]
  API --> V["Viator"]
  API --> UN["Unsplash"]
  API --> TP["Travelpayouts"]
  API --> BEE["Beehiiv"]
  API --> FCM
Loading

More detail: docs/ARCHITECTURE.md.

Running Locally

Backend:

cd apps/backend
cp .env.example .env
set -a && source .env && set +a
docker compose up -d redis
./mvnw spring-boot:run

Frontend:

cd apps/frontend
cp .env.example .env
flutter pub get
flutter run -d chrome

Website:

cd apps/website
npm install
npm run dev

The app needs your own Supabase project, PostgreSQL database, Google API keys, and provider credentials for the full production flow. Optional integrations can be disabled by leaving their env vars empty.

Public-Repo Safety

This repository intentionally does not include:

  • .env files
  • Supabase service-role keys
  • database passwords
  • Firebase service account JSON files
  • live Firebase project config
  • Google Maps keys
  • local IDE/agent settings
  • private Git history from the original repositories

See docs/SECURITY.md for the full sanitization notes.

Why This Project Matters

Iteroo is not a toy CRUD app. It demonstrates full-stack product engineering across:

  • async AI workflow design
  • provider integration and caching
  • JWT auth boundaries
  • geospatial UX
  • SaaS deployment configuration
  • rate limiting and production observability
  • real product documentation
  • monetization-oriented affiliate architecture

License

MIT. See LICENSE.

About

AI-powered travel planner monorepo featuring a Flutter Web app, Spring Boot backend, and Next.js website for personalized day-by-day itineraries. 

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages