# eshajha19/incredible-india-explorer architecture

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

- Interactive diagram: https://gitdiagram.com/eshajha19/incredible-india-explorer
- Repository: https://github.com/eshajha19/incredible-india-explorer

## Overview

Incredible India Explorer is a browser-based interactive guide to India’s culture, history, geography, wildlife, and travel. A visitor explores themed pages and can use the itinerary generator to select a destination and preferences, receive a sequenced, cost-estimated plan, and save or export it. The repository also documents an interactive freedom narrative, state map, chatbot, and shared bookmarks/search. The tree and excerpts establish the itinerary data-to-engine and voice-controller internals; many page-specific implementations were not sampled, so their wiring is not asserted.

Main entry points: [`frontend/js-modules/voice/voice-assistant-controller.js`](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/voice-assistant-controller.js) (Voice assistant), [`frontend/app.js`](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/app.js) (Browser experience), [`itinerary-engine.js`](https://github.com/eshajha19/incredible-india-explorer/blob/main/itinerary-engine.js) (Itinerary generation), [`frontend/router.js`](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/router.js) (Page navigation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Explorer experience"]
  node_browser["Browser experience<br/>[app.js]"]
  node_router["Page navigation<br/>[router.js]"]
  node_freedom["Freedom story"]
  node_state_map["Interactive state map"]
  node_cultural_pages["Culture and heritage"]
end

subgraph group_travel["Trip planning"]
  node_itinerary_data["Destination data<br/>[itinerary-data.js]"]
  node_itinerary_engine["Itinerary generation"]
  node_sustainability["Sustainable travel"]
end

subgraph group_guidance["Interactive guidance"]
  node_chatbot_data["Guide knowledge<br/>[chatbot-data.js]"]
  node_assistant["Bharat AI Guide"]
  node_voice_controller["Voice assistant"]
  node_intent_parser["Intent parsing<br/>[intent-parser.js]"]
  node_conversation_context["Conversation context"]
  node_conversation_history["Conversation history"]
end

subgraph group_shared["Shared capabilities"]
  node_bookmarks["Saved journey<br/>[storage.js]"]
  node_search["Explorer search<br/>[search-data.js]"]
  node_firebase["Firebase services<br/>[firebase-config.js]"]
end

node_visitor(("Visitor"))

node_visitor -->|"explores"| node_browser
node_browser -.->|"navigates"| node_router
node_visitor -->|"chooses story"| node_freedom
node_visitor -->|"selects states"| node_state_map
node_visitor -->|"explores topics"| node_cultural_pages
node_visitor -->|"plans trip"| node_itinerary_engine
node_itinerary_engine -->|"reads destinations"| node_itinerary_data
node_visitor -.->|"checks impact"| node_sustainability
node_visitor -->|"asks questions"| node_assistant
node_visitor -.->|"speaks request"| node_voice_controller
node_voice_controller -->|"resolves references"| node_conversation_context
node_voice_controller -->|"parses intent"| node_intent_parser
node_voice_controller -->|"records turn"| node_conversation_history
node_visitor -->|"saves places"| node_bookmarks
node_visitor -->|"searches explorers"| node_search
node_browser -->|"loads configuration"| node_firebase

click node_browser "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/app.js"
click node_router "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/router.js"
click node_freedom "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/freedom-movement-explorer/freedom-movement.js"
click node_state_map "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/state-names-explorer/state-names-explorer.js"
click node_cultural_pages "https://github.com/eshajha19/incredible-india-explorer/tree/main/frontend"
click node_itinerary_data "https://github.com/eshajha19/incredible-india-explorer/blob/main/itinerary-data.js"
click node_itinerary_engine "https://github.com/eshajha19/incredible-india-explorer/blob/main/itinerary-engine.js"
click node_sustainability "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/route-planner/sustainability-engine.js"
click node_chatbot_data "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/chatbot-data.js"
click node_assistant "https://github.com/eshajha19/incredible-india-explorer/blob/main/assistantService.js"
click node_voice_controller "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/voice-assistant-controller.js"
click node_intent_parser "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/intent-parser.js"
click node_conversation_context "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/conversation-context.js"
click node_conversation_history "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/voice-conversation-history.js"
click node_bookmarks "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/user-bookmarks/storage.js"
click node_search "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/components/search-data.js"
click node_firebase "https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/api/firebase-config.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_browser,node_router,node_freedom,node_state_map,node_cultural_pages toneBlue
class node_itinerary_data,node_itinerary_engine,node_sustainability toneAmber
class node_chatbot_data,node_assistant,node_voice_controller,node_intent_parser,node_conversation_context,node_conversation_history toneMint
class node_bookmarks,node_search,node_firebase toneRose
class node_visitor toneIndigo
```

## Components

### Explorer experience

- [Browser experience](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/app.js): `frontend/app.js`
- [Page navigation](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/router.js): `frontend/router.js`
- [Freedom story](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/freedom-movement-explorer/freedom-movement.js): `frontend/freedom-movement-explorer/freedom-movement.js`
- [Interactive state map](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/state-names-explorer/state-names-explorer.js): `frontend/state-names-explorer/state-names-explorer.js`
- [Culture and heritage](https://github.com/eshajha19/incredible-india-explorer/tree/main/frontend): `frontend`

### Trip planning

- [Destination data](https://github.com/eshajha19/incredible-india-explorer/blob/main/itinerary-data.js): `itinerary-data.js`
- [Itinerary generation](https://github.com/eshajha19/incredible-india-explorer/blob/main/itinerary-engine.js): `itinerary-engine.js`
- [Sustainable travel](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/route-planner/sustainability-engine.js): `frontend/route-planner/sustainability-engine.js`

### Interactive guidance

- [Guide knowledge](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/chatbot-data.js): `frontend/chatbot-data.js`
- [Bharat AI Guide](https://github.com/eshajha19/incredible-india-explorer/blob/main/assistantService.js): `assistantService.js`
- [Voice assistant](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/voice-assistant-controller.js): `frontend/js-modules/voice/voice-assistant-controller.js`
- [Intent parsing](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/intent-parser.js): `frontend/js-modules/voice/intent-parser.js`
- [Conversation context](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/conversation-context.js): `frontend/js-modules/voice/conversation-context.js`
- [Conversation history](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/js-modules/voice/voice-conversation-history.js): `frontend/js-modules/voice/voice-conversation-history.js`

### Shared capabilities

- [Saved journey](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/user-bookmarks/storage.js): `frontend/user-bookmarks/storage.js`
- [Explorer search](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/components/search-data.js): `frontend/components/search-data.js`
- [Firebase services](https://github.com/eshajha19/incredible-india-explorer/blob/main/frontend/api/firebase-config.js): `frontend/api/firebase-config.js`

### Other components

- **Visitor**

## Connections

- Visitor → Browser experience: explores (evidence: `README.md`)
- Browser experience → Page navigation: navigates
- Visitor → Freedom story: chooses story (evidence: `README.md`)
- Visitor → Interactive state map: selects states (evidence: `README.md`)
- Visitor → Culture and heritage: explores topics (evidence: `README.md`)
- Visitor → Itinerary generation: plans trip (evidence: `README.md`)
- Itinerary generation → Destination data: reads destinations (evidence: `itinerary-engine.js`)
- Visitor → Sustainable travel: checks impact
- Visitor → Bharat AI Guide: asks questions (evidence: `README.md`)
- Visitor → Voice assistant: speaks request
- Voice assistant → Conversation context: resolves references (evidence: `frontend/js-modules/voice/voice-assistant-controller.js`)
- Voice assistant → Intent parsing: parses intent (evidence: `frontend/js-modules/voice/voice-assistant-controller.js`)
- Voice assistant → Conversation history: records turn (evidence: `frontend/js-modules/voice/voice-assistant-controller.js`)
- Visitor → Saved journey: saves places (evidence: `README.md`)
- Visitor → Explorer search: searches explorers (evidence: `README.md`)
- Browser experience → Firebase services: loads configuration (evidence: `README.md`)
