# codewithaarohi/ai-travel-planning-system-using-langgraph architecture

> Architecture diagram of the GitHub repository codewithaarohi/ai-travel-planning-system-using-langgraph, 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/codewithaarohi/ai-travel-planning-system-using-langgraph
- Repository: https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph

## Overview

This is a LangGraph travel-planning app: a user submits a trip request through the Streamlit interface or terminal, then a sequential agent workflow gathers flight and hotel information, creates an itinerary, and produces a final response. PostgreSQL checkpoints conversation state, while AviationStack, Tavily, and Groq provide external data and language-model services. The source excerpts show the graph and tool calls; some Streamlit execution details are unsampled, so those links rely on README evidence.

Main entry points: [`main.py`](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py) (LangGraph workflow), [`frontend.py`](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/frontend.py) (Streamlit interface), [`tools/flight_tool.py`](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/tools/flight_tool.py) (Flight search tool), [`tools/tavily_tool.py`](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/tools/tavily_tool.py) (Hotel search tool)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User interfaces"]
  node_streamlit["Streamlit interface<br/>[frontend.py]"]
  node_terminal["Terminal entry<br/>[main.py]"]
end

subgraph group_workflow["Planning workflow"]
  node_graph["LangGraph workflow<br/>[main.py]"]
  node_flight_agent["Flight agent<br/>[main.py]"]
  node_hotel_agent["Hotel agent<br/>[main.py]"]
  node_itinerary_agent["Itinerary agent<br/>[main.py]"]
  node_final_agent["Final response agent<br/>[main.py]"]
end

subgraph group_integrations["External integrations"]
  node_flight_tool["Flight search tool<br/>[flight_tool.py]"]
  node_aviationstack["AviationStack API"]
  node_hotel_tool["Hotel search tool<br/>[tavily_tool.py]"]
  node_tavily["Tavily Search API"]
  node_groq["Groq LLM"]
end

subgraph group_persistence["Memory and output"]
  node_postgres[("PostgreSQL checkpoints")]
  node_saved_plan["Saved travel plan<br/>[frontend.py]"]
end

node_traveler(("Traveler"))

node_traveler -->|"submits request"| node_streamlit
node_traveler -->|"enters request"| node_terminal
node_streamlit -->|"runs workflow"| node_graph
node_terminal -->|"invokes workflow"| node_graph
node_graph -->|"starts at"| node_flight_agent
node_flight_agent -->|"dispatches next"| node_hotel_agent
node_hotel_agent -->|"dispatches next"| node_itinerary_agent
node_itinerary_agent -->|"dispatches next"| node_final_agent
node_flight_agent -->|"searches flights"| node_flight_tool
node_flight_tool -->|"requests flight data"| node_aviationstack
node_hotel_agent -->|"searches hotels"| node_hotel_tool
node_hotel_tool -->|"searches web"| node_tavily
node_itinerary_agent -->|"generates itinerary"| node_groq
node_final_agent -->|"generates response"| node_groq
node_graph -->|"checkpoints state"| node_postgres
node_streamlit -->|"saves plan"| node_saved_plan

click node_streamlit "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/frontend.py"
click node_terminal "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py"
click node_graph "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py"
click node_flight_agent "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py"
click node_hotel_agent "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py"
click node_itinerary_agent "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py"
click node_final_agent "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py"
click node_flight_tool "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/tools/flight_tool.py"
click node_hotel_tool "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/tools/tavily_tool.py"
click node_saved_plan "https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/frontend.py"

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_streamlit,node_terminal toneBlue
class node_graph,node_flight_agent,node_hotel_agent,node_itinerary_agent,node_final_agent toneAmber
class node_flight_tool,node_aviationstack,node_hotel_tool,node_tavily,node_groq toneMint
class node_postgres,node_saved_plan toneRose
class node_traveler toneIndigo
```

## Components

### User interfaces

- [Streamlit interface](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/frontend.py): `frontend.py`
- [Terminal entry](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py): `main.py`

### Planning workflow

- [LangGraph workflow](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py): `main.py`
- [Flight agent](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py): `main.py`
- [Hotel agent](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py): `main.py`
- [Itinerary agent](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py): `main.py`
- [Final response agent](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/main.py): `main.py`

### External integrations

- [Flight search tool](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/tools/flight_tool.py): `tools/flight_tool.py`
- **AviationStack API**
- [Hotel search tool](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/tools/tavily_tool.py): `tools/tavily_tool.py`
- **Tavily Search API**
- **Groq LLM**

### Memory and output

- **PostgreSQL checkpoints**
- [Saved travel plan](https://github.com/codewithaarohi/ai-travel-planning-system-using-langgraph/blob/main/frontend.py): `frontend.py`

### Other components

- **Traveler**

## Connections

- Traveler → Streamlit interface: submits request (evidence: `README.md`)
- Traveler → Terminal entry: enters request (evidence: `main.py`)
- Streamlit interface → LangGraph workflow: runs workflow (evidence: `README.md`)
- Terminal entry → LangGraph workflow: invokes workflow (evidence: `main.py`)
- LangGraph workflow → Flight agent: starts at (evidence: `main.py`)
- Flight agent → Hotel agent: dispatches next (evidence: `main.py`)
- Hotel agent → Itinerary agent: dispatches next (evidence: `main.py`)
- Itinerary agent → Final response agent: dispatches next (evidence: `main.py`)
- Flight agent → Flight search tool: searches flights (evidence: `main.py`)
- Flight search tool → AviationStack API: requests flight data (evidence: `tools/flight_tool.py`)
- Hotel agent → Hotel search tool: searches hotels (evidence: `main.py`)
- Hotel search tool → Tavily Search API: searches web (evidence: `tools/tavily_tool.py`)
- Itinerary agent → Groq LLM: generates itinerary (evidence: `main.py`)
- Final response agent → Groq LLM: generates response (evidence: `main.py`)
- LangGraph workflow → PostgreSQL checkpoints: checkpoints state (evidence: `main.py`)
- Streamlit interface → Saved travel plan: saves plan (evidence: `frontend.py`)
