# huzz-bitcrafter/wanderlust-travel architecture

> Architecture diagram of the GitHub repository huzz-bitcrafter/wanderlust-travel, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/huzz-bitcrafter/wanderlust-travel
- Repository: https://github.com/huzz-bitcrafter/wanderlust-travel

## Overview

Wanderlust is a full-stack travel discovery, booking, and trip-planning platform. The main journey is browse or search destinations, packages, hotels, and flights; choose an offering; complete checkout; then manage bookings and itineraries in an account. Reviews and contact submissions feed moderation and an admin workspace. The README documents these capabilities, while sampled source confirms the home-page catalog calls, review reads, and Supabase access patterns; unsampled subsystem wiring is represented only where documented.

Main entry points: [`src/components/home/SearchWidget.tsx`](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/components/home/SearchWidget.tsx) (Search widget), [`src/components/shared/ReviewSection.tsx`](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/components/shared/ReviewSection.tsx) (Review experience), [`src/routes/checkout.tsx`](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/checkout.tsx) (Checkout), [`src/integrations/supabase/client.ts`](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/integrations/supabase/client.ts) (Public Supabase client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Travel discovery"]
  node_home["Home discovery<br/>[index.tsx]"]
  node_search["Search widget<br/>[SearchWidget.tsx]"]
  node_catalog["Catalog pages<br/>[destinations.tsx]"]
  node_destination["Destination detail"]
  node_packages["Package catalog<br/>[packages.tsx]"]
  node_package_detail["Package details<br/>[packages.$slug.tsx]"]
  node_hotels["Hotel search<br/>[hotels.tsx]"]
  node_hotel_detail["Hotel details<br/>[hotels.$id.tsx]"]
  node_flights["Flight search<br/>[flights.tsx]"]
  node_gallery["Photo gallery<br/>[gallery.tsx]"]
  node_catalog_api["Catalog functions"]
end

subgraph group_booking["Booking and trips"]
  node_checkout["Checkout<br/>[checkout.tsx]"]
  node_confirmation["Booking confirmation<br/>[confirmation.tsx]"]
  node_account["Trip dashboard<br/>[index.tsx]"]
  node_itineraries["Itinerary management<br/>[itineraries.tsx]"]
end

subgraph group_identity["Accounts and feedback"]
  node_auth["Registration and login<br/>[register.tsx]"]
  node_auth_provider{{"Supabase Auth"}}
  node_reviews["Review experience<br/>[ReviewSection.tsx]"]
  node_review_api["Review functions"]
end

subgraph group_operations["Platform operations"]
  node_contact["Contact form<br/>[contact.tsx]"]
  node_admin["Admin workspace<br/>[index.tsx]"]
  node_admin_reviews["Review moderation<br/>[reviews.tsx]"]
  node_supabase_client["Public Supabase client<br/>[client.ts]"]
  node_supabase_server["Public server client"]
  node_database[("Supabase database")]
end

node_traveler(("Traveler"))

node_traveler -->|"browses"| node_home
node_home -->|"loads featured data"| node_catalog_api
node_home -->|"offers search"| node_search
node_search -->|"opens results"| node_catalog
node_search -->|"opens results"| node_packages
node_search -->|"opens results"| node_hotels
node_search -->|"opens results"| node_flights
node_catalog -->|"opens details"| node_destination
node_packages -->|"opens details"| node_package_detail
node_hotels -->|"opens details"| node_hotel_detail
node_traveler -->|"views"| node_gallery
node_traveler -->|"books"| node_checkout
node_package_detail -->|"starts booking"| node_checkout
node_hotel_detail -->|"starts booking"| node_checkout
node_flights -->|"starts booking"| node_checkout
node_checkout -->|"confirms booking"| node_confirmation
node_traveler -->|"registers or signs in"| node_auth
node_auth -->|"authenticates"| node_auth_provider
node_traveler -->|"manages trips"| node_account
node_account -->|"manages itineraries"| node_itineraries
node_destination -->|"shows reviews"| node_reviews
node_package_detail -->|"shows reviews"| node_reviews
node_hotel_detail -->|"shows reviews"| node_reviews
node_reviews -->|"loads reviews and ratings"| node_review_api
node_review_api -->|"queries public data"| node_supabase_server
node_supabase_server -->|"reads"| node_database
node_reviews -->|"submits reviews"| node_supabase_client
node_supabase_client -->|"reads and writes"| node_database
node_traveler -->|"sends inquiry"| node_contact
node_admin -->|"moderates reviews"| node_admin_reviews
node_admin_reviews -->|"deletes reviews"| node_supabase_client
node_admin -->|"manages platform data"| node_supabase_client
node_catalog_api -->|"loads catalog data"| node_supabase_server

click node_home "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/index.tsx"
click node_search "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/components/home/SearchWidget.tsx"
click node_catalog "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/destinations.tsx"
click node_destination "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/destinations.%24slug.tsx"
click node_packages "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/packages.tsx"
click node_package_detail "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/packages.%24slug.tsx"
click node_hotels "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/hotels.tsx"
click node_hotel_detail "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/hotels.%24id.tsx"
click node_flights "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/flights.tsx"
click node_gallery "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/gallery.tsx"
click node_checkout "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/checkout.tsx"
click node_confirmation "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/checkout/confirmation.tsx"
click node_account "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/account/index.tsx"
click node_itineraries "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/account/itineraries.tsx"
click node_auth "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/register.tsx"
click node_reviews "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/components/shared/ReviewSection.tsx"
click node_review_api "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/lib/review.functions.ts"
click node_contact "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/contact.tsx"
click node_admin "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/admin/index.tsx"
click node_admin_reviews "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/admin/reviews.tsx"
click node_catalog_api "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/lib/catalog.functions.ts"
click node_supabase_client "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/integrations/supabase/client.ts"
click node_supabase_server "https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/lib/supabase-public.server.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_home,node_search,node_catalog,node_destination,node_packages,node_package_detail,node_hotels,node_hotel_detail,node_flights,node_gallery,node_catalog_api toneBlue
class node_checkout,node_confirmation,node_account,node_itineraries toneAmber
class node_auth,node_auth_provider,node_reviews,node_review_api toneMint
class node_contact,node_admin,node_admin_reviews,node_supabase_client,node_supabase_server,node_database toneRose
class node_traveler toneIndigo
```

## Components

### Travel discovery

- [Home discovery](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/index.tsx): `src/routes/index.tsx`
- [Search widget](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/components/home/SearchWidget.tsx): `src/components/home/SearchWidget.tsx`
- [Catalog pages](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/destinations.tsx): `src/routes/destinations.tsx`
- [Destination detail](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/destinations.%24slug.tsx): `src/routes/destinations.$slug.tsx`
- [Package catalog](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/packages.tsx): `src/routes/packages.tsx`
- [Package details](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/packages.%24slug.tsx): `src/routes/packages.$slug.tsx`
- [Hotel search](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/hotels.tsx): `src/routes/hotels.tsx`
- [Hotel details](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/hotels.%24id.tsx): `src/routes/hotels.$id.tsx`
- [Flight search](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/flights.tsx): `src/routes/flights.tsx`
- [Photo gallery](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/gallery.tsx): `src/routes/gallery.tsx`
- [Catalog functions](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/lib/catalog.functions.ts): `src/lib/catalog.functions.ts`

### Booking and trips

- [Checkout](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/checkout.tsx): `src/routes/checkout.tsx`
- [Booking confirmation](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/checkout/confirmation.tsx): `src/routes/checkout/confirmation.tsx`
- [Trip dashboard](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/account/index.tsx): `src/routes/account/index.tsx`
- [Itinerary management](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/account/itineraries.tsx): `src/routes/account/itineraries.tsx`

### Accounts and feedback

- [Registration and login](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/register.tsx): `src/routes/register.tsx`
- **Supabase Auth**
- [Review experience](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/components/shared/ReviewSection.tsx): `src/components/shared/ReviewSection.tsx`
- [Review functions](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/lib/review.functions.ts): `src/lib/review.functions.ts`

### Platform operations

- [Contact form](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/contact.tsx): `src/routes/contact.tsx`
- [Admin workspace](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/admin/index.tsx): `src/routes/admin/index.tsx`
- [Review moderation](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/routes/admin/reviews.tsx): `src/routes/admin/reviews.tsx`
- [Public Supabase client](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/integrations/supabase/client.ts): `src/integrations/supabase/client.ts`
- [Public server client](https://github.com/huzz-bitcrafter/wanderlust-travel/blob/main/src/lib/supabase-public.server.ts): `src/lib/supabase-public.server.ts`
- **Supabase database**

### Other components

- **Traveler**

## Connections

- Traveler → Home discovery: browses
- Home discovery → Catalog functions: loads featured data
- Home discovery → Search widget: offers search
- Search widget → Catalog pages: opens results
- Search widget → Package catalog: opens results
- Search widget → Hotel search: opens results
- Search widget → Flight search: opens results
- Catalog pages → Destination detail: opens details
- Package catalog → Package details: opens details
- Hotel search → Hotel details: opens details
- Traveler → Photo gallery: views
- Traveler → Checkout: books
- Package details → Checkout: starts booking
- Hotel details → Checkout: starts booking
- Flight search → Checkout: starts booking
- Checkout → Booking confirmation: confirms booking
- Traveler → Registration and login: registers or signs in
- Registration and login → Supabase Auth: authenticates
- Traveler → Trip dashboard: manages trips
- Trip dashboard → Itinerary management: manages itineraries
- Destination detail → Review experience: shows reviews
- Package details → Review experience: shows reviews
- Hotel details → Review experience: shows reviews
- Review experience → Review functions: loads reviews and ratings
- Review functions → Public server client: queries public data
- Public server client → Supabase database: reads
- Review experience → Public Supabase client: submits reviews
- Public Supabase client → Supabase database: reads and writes
- Traveler → Contact form: sends inquiry
- Admin workspace → Review moderation: moderates reviews
- Review moderation → Public Supabase client: deletes reviews
- Admin workspace → Public Supabase client: manages platform data
- Catalog functions → Public server client: loads catalog data
