# nextgemtechnology/world_tour_app architecture

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

- Interactive diagram: https://gitdiagram.com/nextgemtechnology/world_tour_app
- Repository: https://github.com/nextgemtechnology/world_tour_app

## Overview

worldtours.com is a full-stack travel platform for hotel and tour stays, transport reservations, partner-managed tours, and user/admin operations. The main user journey is to search or plan travel, make a booking, pay, and manage reservations from a dashboard. The frontend routing, selected API calls, AI chat, and payment flow are visible in sampled source; the backend implementation is not present in the supplied tree, so backend subsystem links are limited to documented capabilities and storage roles.

Main entry points: [`backend`](https://github.com/nextgemtechnology/world_tour_app/tree/main/backend) (Spring Boot API), [`frontend/src/App.js`](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/App.js) (React app), [`frontend/src/components/AIChatModal.js`](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/components/AIChatModal.js) (AI travel agent), [`frontend/src/payment/RazorpayPayment.js`](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/payment/RazorpayPayment.js) (Payment checkout)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Travel experience"]
  node_app["React app<br/>[App.js]"]
  node_home["Home discovery<br/>[Home.js]"]
  node_transport["Transport search<br/>[FlightBooking.js]"]
  node_hotelbrowse["Hotel browsing<br/>[ViewHotels.js]"]
  node_dashboard["User dashboard<br/>[Dashboard.js]"]
end

subgraph group_identity["Identity and assistance"]
  node_authpages["Account pages<br/>[Register.js]"]
  node_authapi["Authentication API client<br/>[authApi.js]"]
  node_aiagent["AI travel agent<br/>[AIChatModal.js]"]
end

subgraph group_reservations["Reservations and payment"]
  node_hotelbooking["Hotel booking<br/>[BookHotel.js]"]
  node_tourbooking["Tour booking"]
  node_transportapis["Transport booking clients"]
  node_tourapi["Tour booking client"]
  node_payment["Payment checkout<br/>[RazorpayPayment.js]"]
end

subgraph group_operations["Partner and operations"]
  node_hotelpartner["Hotel partner portal"]
  node_touradmin["Tour package management<br/>[TourPackageApi.js]"]
  node_admin["Admin portal<br/>[AdminDashboard.js]"]
  node_complaints["Complaint handling<br/>[ComplaintForm.js]"]
end

subgraph group_platform["Backend platform"]
  node_backend["Spring Boot API"]
  node_relational[("Relational booking data")]
  node_documentdb[("Chat and itineraries")]
  node_redis[("Cache and sessions")]
end

node_traveler(("Traveler"))
node_razorpay["Razorpay"]
node_aiproviders["LLM providers"]
node_rapidapi["RapidAPI gateway"]

node_traveler -->|"uses"| node_app
node_app -->|"routes to"| node_home
node_app -->|"routes to"| node_transport
node_app -->|"routes to"| node_hotelbooking
node_app -->|"routes to"| node_tourbooking
node_app -->|"routes to"| node_authpages
node_app -->|"routes to"| node_dashboard
node_app -->|"mounts"| node_aiagent
node_authpages -->|"requests"| node_authapi
node_authapi -->|"calls"| node_backend
node_aiagent -->|"requests"| node_backend
node_aiagent -.->|"orchestrates"| node_aiproviders
node_dashboard -->|"loads bookings"| node_transportapis
node_transportapis -->|"calls"| node_backend
node_tourbooking -->|"creates bookings"| node_tourapi
node_tourapi -->|"calls"| node_backend
node_hotelbooking -->|"books stays"| node_backend
node_payment -->|"creates and verifies orders"| node_backend
node_payment -->|"opens checkout"| node_razorpay
node_hotelpartner -->|"manages packages"| node_touradmin
node_touradmin -->|"calls"| node_backend
node_admin -->|"administers"| node_backend
node_complaints -->|"submits complaints"| node_backend
node_backend -->|"stores bookings"| node_relational
node_backend -->|"stores chat and itineraries"| node_documentdb
node_backend -->|"uses cache and sessions"| node_redis
node_backend -.->|"gets live transport data"| node_rapidapi

click node_app "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/App.js"
click node_home "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/Home.js"
click node_transport "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/FlightBooking.js"
click node_hotelbrowse "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/ViewHotels.js"
click node_dashboard "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/Dashboard.js"
click node_authpages "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/Register.js"
click node_authapi "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/api/authApi.js"
click node_aiagent "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/components/AIChatModal.js"
click node_hotelbooking "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/BookHotel.js"
click node_tourbooking "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/TourBookingPages.js"
click node_transportapis "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/api/flightBookingApi.js"
click node_tourapi "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/services/tourBookingService.js"
click node_payment "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/payment/RazorpayPayment.js"
click node_hotelpartner "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/HotelLoginDashboard.js"
click node_touradmin "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/api/TourPackageApi.js"
click node_admin "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/AdminDashboard.js"
click node_complaints "https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/components/ComplaintForm.js"
click node_backend "https://github.com/nextgemtechnology/world_tour_app/tree/main/backend"

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_home,node_transport,node_hotelbrowse,node_dashboard toneBlue
class node_authpages,node_authapi,node_aiagent toneAmber
class node_hotelbooking,node_tourbooking,node_transportapis,node_tourapi,node_payment,node_rapidapi toneMint
class node_hotelpartner,node_touradmin,node_admin,node_complaints toneRose
class node_backend,node_relational,node_documentdb,node_redis,node_traveler,node_razorpay,node_aiproviders toneIndigo
```

## Components

### Travel experience

- [React app](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/App.js): `frontend/src/App.js`
- [Home discovery](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/Home.js): `frontend/src/pages/Home.js`
- [Transport search](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/FlightBooking.js): `frontend/src/pages/FlightBooking.js`
- [Hotel browsing](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/ViewHotels.js): `frontend/src/pages/ViewHotels.js`
- [User dashboard](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/Dashboard.js): `frontend/src/pages/Dashboard.js`

### Identity and assistance

- [Account pages](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/Register.js): `frontend/src/pages/Register.js`
- [Authentication API client](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/api/authApi.js): `frontend/src/api/authApi.js`
- [AI travel agent](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/components/AIChatModal.js): `frontend/src/components/AIChatModal.js`

### Reservations and payment

- [Hotel booking](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/BookHotel.js): `frontend/src/pages/BookHotel.js`
- [Tour booking](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/TourBookingPages.js): `frontend/src/pages/TourBookingPages.js`
- [Transport booking clients](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/api/flightBookingApi.js): `frontend/src/api/flightBookingApi.js`
- [Tour booking client](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/services/tourBookingService.js): `frontend/src/services/tourBookingService.js`
- [Payment checkout](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/payment/RazorpayPayment.js): `frontend/src/payment/RazorpayPayment.js`

### Partner and operations

- [Hotel partner portal](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/HotelLoginDashboard.js): `frontend/src/pages/HotelLoginDashboard.js`
- [Tour package management](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/api/TourPackageApi.js): `frontend/src/api/TourPackageApi.js`
- [Admin portal](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/pages/AdminDashboard.js): `frontend/src/pages/AdminDashboard.js`
- [Complaint handling](https://github.com/nextgemtechnology/world_tour_app/blob/main/frontend/src/components/ComplaintForm.js): `frontend/src/components/ComplaintForm.js`

### Backend platform

- [Spring Boot API](https://github.com/nextgemtechnology/world_tour_app/tree/main/backend): `backend`
- **Relational booking data**
- **Chat and itineraries**
- **Cache and sessions**

### Other components

- **Traveler**
- **Razorpay**
- **LLM providers**
- **RapidAPI gateway**

## Connections

- Traveler → React app: uses
- React app → Home discovery: routes to
- React app → Transport search: routes to
- React app → Hotel booking: routes to
- React app → Tour booking: routes to
- React app → Account pages: routes to
- React app → User dashboard: routes to
- React app → AI travel agent: mounts
- Account pages → Authentication API client: requests
- Authentication API client → Spring Boot API: calls
- AI travel agent → Spring Boot API: requests
- AI travel agent → LLM providers: orchestrates
- User dashboard → Transport booking clients: loads bookings
- Transport booking clients → Spring Boot API: calls
- Tour booking → Tour booking client: creates bookings
- Tour booking client → Spring Boot API: calls
- Hotel booking → Spring Boot API: books stays
- Payment checkout → Spring Boot API: creates and verifies orders
- Payment checkout → Razorpay: opens checkout
- Hotel partner portal → Tour package management: manages packages
- Tour package management → Spring Boot API: calls
- Admin portal → Spring Boot API: administers
- Complaint handling → Spring Boot API: submits complaints
- Spring Boot API → Relational booking data: stores bookings
- Spring Boot API → Chat and itineraries: stores chat and itineraries
- Spring Boot API → Cache and sessions: uses cache and sessions
- Spring Boot API → RapidAPI gateway: gets live transport data
