# simranjit8933/dream-nest architecture

> Architecture diagram of the GitHub repository simranjit8933/dream-nest, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/simranjit8933/dream-nest
- Repository: https://github.com/simranjit8933/dream-nest

## Overview

DreamNest is a stays-booking application with an AI trip planner. Travelers browse and filter stays, inspect listing details and reviews, save favorites, get booking quotes and book; they can also submit a trip request for budget-aware stay suggestions, an activity itinerary and a cost estimate. Hosts can add listings. The graph separates the client experience, booking domain, and trip-planning stages, with shared persistence and pricing logic. Some subsystem paths and links come from the README or source index because their implementation was not excerpted.

Main entry points: [`server/services/copilot.js`](https://github.com/simranjit8933/dream-nest/blob/main/server/services/copilot.js) (Trip Planner), [`client/src/pages.jsx`](https://github.com/simranjit8933/dream-nest/blob/main/client/src/pages.jsx) (Stay and Trip Pages), [`client/src/App.jsx`](https://github.com/simranjit8933/dream-nest/blob/main/client/src/App.jsx) (App Router), [`client/src/api.js`](https://github.com/simranjit8933/dream-nest/blob/main/client/src/api.js) (API Client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Traveler Experience"]
  node_app["App Router<br/>[App.jsx]"]
  node_pages["Stay and Trip Pages<br/>[pages.jsx]"]
  node_wishlist_ui["Wishlist View<br/>[Wishlist.jsx]"]
  node_client_api["API Client<br/>[api.js]"]
  node_carousel["Photo Carousel<br/>[Carousel.jsx]"]
  node_gallery["Photo Gallery<br/>[Gallery.jsx]"]
  node_map["Map View<br/>[MapView.jsx]"]
end

subgraph group_booking["Stays and Booking"]
  node_server["Express App<br/>[index.js]"]
  node_stay_routes["Stay and Booking Routes<br/>[index.js]"]
  node_budget["Pricing Logic<br/>[budget.js]"]
end

subgraph group_planner["Trip Planning"]
  node_copilot_route["Copilot Route<br/>[copilot.js]"]
  node_planner_service["Trip Planner<br/>[copilot.js]"]
  node_freeplanner["Fallback Planner<br/>[freeplanner.js]"]
end

subgraph group_data["Domain Data"]
  node_models[("Booking Models<br/>[index.js]")]
  node_listing_data["Stay Catalog<br/>[listings.js]"]
  node_activity_data["Activity Catalog<br/>[activities.js]"]
  node_activity_model[("Activity Model<br/>[Activity.js]")]
  node_trip_model[("Saved Trip Model<br/>[TripPlan.js]")]
end

node_traveler(("Traveler"))
node_llm{{"Anthropic AI"}}

node_traveler -->|"uses"| node_app
node_app -->|"routes to"| node_pages
node_app -->|"renders"| node_wishlist_ui
node_app -->|"loads session"| node_client_api
node_pages -->|"requests data"| node_client_api
node_pages -->|"renders"| node_carousel
node_pages -->|"renders"| node_gallery
node_pages -->|"renders"| node_map
node_wishlist_ui -->|"requests data"| node_client_api
node_client_api -->|"calls API"| node_server
node_server -->|"mounts routes"| node_stay_routes
node_server -->|"mounts routes"| node_copilot_route
node_stay_routes -->|"reads and writes"| node_models
node_stay_routes -->|"prices stays"| node_budget
node_copilot_route -->|"plans trip"| node_planner_service
node_copilot_route -->|"saves plan"| node_trip_model
node_planner_service -->|"queries stays"| node_models
node_planner_service -->|"queries activities"| node_activity_model
node_planner_service -->|"calculates costs"| node_budget
node_planner_service -->|"falls back to"| node_freeplanner
node_planner_service -->|"requests plans"| node_llm
node_listing_data -->|"seeds stays"| node_models
node_activity_data -->|"seeds activities"| node_activity_model

click node_app "https://github.com/simranjit8933/dream-nest/blob/main/client/src/App.jsx"
click node_pages "https://github.com/simranjit8933/dream-nest/blob/main/client/src/pages.jsx"
click node_wishlist_ui "https://github.com/simranjit8933/dream-nest/blob/main/client/src/Wishlist.jsx"
click node_client_api "https://github.com/simranjit8933/dream-nest/blob/main/client/src/api.js"
click node_carousel "https://github.com/simranjit8933/dream-nest/blob/main/client/src/Carousel.jsx"
click node_gallery "https://github.com/simranjit8933/dream-nest/blob/main/client/src/Gallery.jsx"
click node_map "https://github.com/simranjit8933/dream-nest/blob/main/client/src/MapView.jsx"
click node_server "https://github.com/simranjit8933/dream-nest/blob/main/server/index.js"
click node_stay_routes "https://github.com/simranjit8933/dream-nest/blob/main/server/routes/index.js"
click node_budget "https://github.com/simranjit8933/dream-nest/blob/main/server/services/budget.js"
click node_models "https://github.com/simranjit8933/dream-nest/blob/main/server/models/index.js"
click node_listing_data "https://github.com/simranjit8933/dream-nest/blob/main/server/data/listings.js"
click node_copilot_route "https://github.com/simranjit8933/dream-nest/blob/main/server/routes/copilot.js"
click node_planner_service "https://github.com/simranjit8933/dream-nest/blob/main/server/services/copilot.js"
click node_freeplanner "https://github.com/simranjit8933/dream-nest/blob/main/server/services/freeplanner.js"
click node_activity_data "https://github.com/simranjit8933/dream-nest/blob/main/server/data/activities.js"
click node_activity_model "https://github.com/simranjit8933/dream-nest/blob/main/server/models/Activity.js"
click node_trip_model "https://github.com/simranjit8933/dream-nest/blob/main/server/models/TripPlan.js"

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_app,node_pages,node_wishlist_ui,node_client_api,node_carousel,node_gallery,node_map toneBlue
class node_server,node_stay_routes,node_budget toneAmber
class node_copilot_route,node_planner_service,node_freeplanner toneMint
class node_models,node_listing_data,node_activity_data,node_activity_model,node_trip_model toneRose
class node_traveler,node_llm toneIndigo
```

## Components

### Traveler Experience

- [App Router](https://github.com/simranjit8933/dream-nest/blob/main/client/src/App.jsx): `client/src/App.jsx`
- [Stay and Trip Pages](https://github.com/simranjit8933/dream-nest/blob/main/client/src/pages.jsx): `client/src/pages.jsx`
- [Wishlist View](https://github.com/simranjit8933/dream-nest/blob/main/client/src/Wishlist.jsx): `client/src/Wishlist.jsx`
- [API Client](https://github.com/simranjit8933/dream-nest/blob/main/client/src/api.js): `client/src/api.js`
- [Photo Carousel](https://github.com/simranjit8933/dream-nest/blob/main/client/src/Carousel.jsx): `client/src/Carousel.jsx`
- [Photo Gallery](https://github.com/simranjit8933/dream-nest/blob/main/client/src/Gallery.jsx): `client/src/Gallery.jsx`
- [Map View](https://github.com/simranjit8933/dream-nest/blob/main/client/src/MapView.jsx): `client/src/MapView.jsx`

### Stays and Booking

- [Express App](https://github.com/simranjit8933/dream-nest/blob/main/server/index.js): `server/index.js`
- [Stay and Booking Routes](https://github.com/simranjit8933/dream-nest/blob/main/server/routes/index.js): `server/routes/index.js`
- [Pricing Logic](https://github.com/simranjit8933/dream-nest/blob/main/server/services/budget.js): `server/services/budget.js`

### Trip Planning

- [Copilot Route](https://github.com/simranjit8933/dream-nest/blob/main/server/routes/copilot.js): `server/routes/copilot.js`
- [Trip Planner](https://github.com/simranjit8933/dream-nest/blob/main/server/services/copilot.js): `server/services/copilot.js`
- [Fallback Planner](https://github.com/simranjit8933/dream-nest/blob/main/server/services/freeplanner.js): `server/services/freeplanner.js`

### Domain Data

- [Booking Models](https://github.com/simranjit8933/dream-nest/blob/main/server/models/index.js): `server/models/index.js`
- [Stay Catalog](https://github.com/simranjit8933/dream-nest/blob/main/server/data/listings.js): `server/data/listings.js`
- [Activity Catalog](https://github.com/simranjit8933/dream-nest/blob/main/server/data/activities.js): `server/data/activities.js`
- [Activity Model](https://github.com/simranjit8933/dream-nest/blob/main/server/models/Activity.js): `server/models/Activity.js`
- [Saved Trip Model](https://github.com/simranjit8933/dream-nest/blob/main/server/models/TripPlan.js): `server/models/TripPlan.js`

### Other components

- **Traveler**
- **Anthropic AI**

## Connections

- Traveler → App Router: uses (evidence: `README.md`)
- App Router → Stay and Trip Pages: routes to (evidence: `client/src/App.jsx`)
- App Router → Wishlist View: renders (evidence: `client/src/App.jsx`)
- App Router → API Client: loads session (evidence: `client/src/App.jsx`)
- Stay and Trip Pages → API Client: requests data (evidence: `client/src/pages.jsx`)
- Stay and Trip Pages → Photo Carousel: renders (evidence: `client/src/pages.jsx`)
- Stay and Trip Pages → Photo Gallery: renders (evidence: `client/src/pages.jsx`)
- Stay and Trip Pages → Map View: renders (evidence: `client/src/pages.jsx`)
- Wishlist View → API Client: requests data (evidence: `client/src/Wishlist.jsx`)
- API Client → Express App: calls API (evidence: `client/src/api.js`)
- Express App → Stay and Booking Routes: mounts routes (evidence: `server/index.js`)
- Express App → Copilot Route: mounts routes (evidence: `server/index.js`)
- Stay and Booking Routes → Booking Models: reads and writes (evidence: `server/routes/index.js`)
- Stay and Booking Routes → Pricing Logic: prices stays (evidence: `server/routes/index.js`)
- Copilot Route → Trip Planner: plans trip (evidence: `server/routes/copilot.js`)
- Copilot Route → Saved Trip Model: saves plan (evidence: `server/routes/copilot.js`)
- Trip Planner → Booking Models: queries stays (evidence: `server/services/copilot.js`)
- Trip Planner → Activity Model: queries activities (evidence: `server/services/copilot.js`)
- Trip Planner → Pricing Logic: calculates costs (evidence: `server/services/copilot.js`)
- Trip Planner → Fallback Planner: falls back to (evidence: `server/services/copilot.js`)
- Trip Planner → Anthropic AI: requests plans (evidence: `server/services/copilot.js`)
- Stay Catalog → Booking Models: seeds stays (evidence: `server/seed.js`)
- Activity Catalog → Activity Model: seeds activities (evidence: `server/seed.js`)
