# dudekula-raja/travel-insurance-react-app architecture

> Architecture diagram of the GitHub repository dudekula-raja/travel-insurance-react-app, 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/dudekula-raja/travel-insurance-react-app
- Repository: https://github.com/dudekula-raja/travel-insurance-react-app

## Overview

This is a React landing-page application for NRI travel insurance. Visitors can choose an insurance category, enter trip and traveller details, and continue to Preventia360’s quote engine; a separate modal provides a three-step quote flow. The page also presents plan information, trust content, FAQs, and contact options. The tree and App show the major page sections, but most section implementations and some form handlers were not sampled, so uncertain internal wiring is omitted.

Main entry points: [`src/App.tsx`](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/App.tsx) (App composition), [`src/components/QuoteModal.tsx`](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/QuoteModal.tsx) (Quote modal), [`src/components/InsuranceQuoteForm.tsx`](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/InsuranceQuoteForm.tsx) (Plan quote form), [`src/utils/quoteUrl.ts`](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/utils/quoteUrl.ts) (Quote URL builder)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["Page shell"]
  node_app["App composition<br/>[App.tsx]"]
  node_header["Navigation<br/>[Header.tsx]"]
  node_hero["Landing hero<br/>[Hero.tsx]"]
  node_footer["Footer<br/>[Footer.tsx]"]
end

subgraph group_quotes["Quote journeys"]
  node_quoteform["Plan quote form"]
  node_quotecontext["Quote state<br/>[QuoteContext.tsx]"]
  node_quotemodal["Quote modal<br/>[QuoteModal.tsx]"]
  node_urlbuilder["Quote URL builder<br/>[quoteUrl.ts]"]
end

subgraph group_coverage["Insurance information"]
  node_visitorinsurance["Visitor insurance"]
  node_whyrail["Coverage benefits<br/>[WhyRail.tsx]"]
  node_storygrid["Insurance stories<br/>[StoryGrid.tsx]"]
  node_doctor["Doctor coverage<br/>[DoctorSection.tsx]"]
  node_requirements["Requirements<br/>[Requirements.tsx]"]
  node_howitworks["How it works<br/>[HowItWorks.tsx]"]
end

subgraph group_engagement["Trust and contact"]
  node_partners["Partners<br/>[Partners.tsx]"]
  node_reviews["Traveller reviews<br/>[Reviews.tsx]"]
  node_expert["Expert contact<br/>[ExpertContact.tsx]"]
  node_faq["FAQs<br/>[FAQ.tsx]"]
  node_finalcta["Final call to action<br/>[FinalCTA.tsx]"]
  node_welcome["Welcome popup<br/>[WelcomePopup.tsx]"]
  node_whatsapp["WhatsApp contact<br/>[WhatsAppFab.tsx]"]
end

node_visitor(("Site visitor"))
node_quoteengine{{"Preventia360 quote engine"}}

node_visitor -->|"opens site"| node_app
node_app -->|"renders"| node_header
node_app -->|"renders"| node_hero
node_app -->|"renders"| node_quoteform
node_app -->|"renders"| node_visitorinsurance
node_app -->|"renders"| node_whyrail
node_app -->|"renders"| node_storygrid
node_app -->|"renders"| node_doctor
node_app -->|"renders"| node_requirements
node_app -->|"renders"| node_howitworks
node_app -->|"renders"| node_partners
node_app -->|"renders"| node_reviews
node_app -->|"renders"| node_expert
node_app -->|"renders"| node_faq
node_app -->|"renders"| node_finalcta
node_app -->|"renders"| node_footer
node_app -->|"renders"| node_welcome
node_app -->|"renders"| node_whatsapp
node_app -->|"provides state"| node_quotecontext
node_app -->|"renders"| node_quotemodal
node_quoteform -->|"builds quote link"| node_urlbuilder
node_quotemodal -->|"reads and updates"| node_quotecontext
node_quotemodal -->|"builds quote link"| node_urlbuilder
node_urlbuilder -->|"redirects with details"| node_quoteengine
node_visitor -->|"enters trip details"| node_quoteform
node_visitor -->|"requests assistance"| node_expert
node_visitor -->|"contacts"| node_whatsapp

click node_app "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/App.tsx"
click node_header "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Header.tsx"
click node_hero "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Hero.tsx"
click node_footer "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Footer.tsx"
click node_quoteform "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/InsuranceQuoteForm.tsx"
click node_quotecontext "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/context/QuoteContext.tsx"
click node_quotemodal "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/QuoteModal.tsx"
click node_urlbuilder "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/utils/quoteUrl.ts"
click node_visitorinsurance "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/VisitorInsurance.tsx"
click node_whyrail "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/WhyRail.tsx"
click node_storygrid "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/StoryGrid.tsx"
click node_doctor "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/DoctorSection.tsx"
click node_requirements "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Requirements.tsx"
click node_howitworks "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/HowItWorks.tsx"
click node_partners "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Partners.tsx"
click node_reviews "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Reviews.tsx"
click node_expert "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/ExpertContact.tsx"
click node_faq "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/FAQ.tsx"
click node_finalcta "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/FinalCTA.tsx"
click node_welcome "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/WelcomePopup.tsx"
click node_whatsapp "https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/WhatsAppFab.tsx"

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_header,node_hero,node_footer toneBlue
class node_quoteform,node_quotecontext,node_quotemodal,node_urlbuilder toneAmber
class node_visitorinsurance,node_whyrail,node_storygrid,node_doctor,node_requirements,node_howitworks toneMint
class node_partners,node_reviews,node_expert,node_faq,node_finalcta,node_welcome,node_whatsapp toneRose
class node_visitor,node_quoteengine toneIndigo
```

## Components

### Page shell

- [App composition](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/App.tsx): `src/App.tsx`
- [Navigation](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Header.tsx): `src/components/Header.tsx`
- [Landing hero](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Hero.tsx): `src/components/Hero.tsx`
- [Footer](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Footer.tsx): `src/components/Footer.tsx`

### Quote journeys

- [Plan quote form](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/InsuranceQuoteForm.tsx): `src/components/InsuranceQuoteForm.tsx`
- [Quote state](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/context/QuoteContext.tsx): `src/context/QuoteContext.tsx`
- [Quote modal](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/QuoteModal.tsx): `src/components/QuoteModal.tsx`
- [Quote URL builder](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/utils/quoteUrl.ts): `src/utils/quoteUrl.ts`

### Insurance information

- [Visitor insurance](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/VisitorInsurance.tsx): `src/components/VisitorInsurance.tsx`
- [Coverage benefits](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/WhyRail.tsx): `src/components/WhyRail.tsx`
- [Insurance stories](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/StoryGrid.tsx): `src/components/StoryGrid.tsx`
- [Doctor coverage](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/DoctorSection.tsx): `src/components/DoctorSection.tsx`
- [Requirements](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Requirements.tsx): `src/components/Requirements.tsx`
- [How it works](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/HowItWorks.tsx): `src/components/HowItWorks.tsx`

### Trust and contact

- [Partners](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Partners.tsx): `src/components/Partners.tsx`
- [Traveller reviews](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/Reviews.tsx): `src/components/Reviews.tsx`
- [Expert contact](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/ExpertContact.tsx): `src/components/ExpertContact.tsx`
- [FAQs](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/FAQ.tsx): `src/components/FAQ.tsx`
- [Final call to action](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/FinalCTA.tsx): `src/components/FinalCTA.tsx`
- [Welcome popup](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/WelcomePopup.tsx): `src/components/WelcomePopup.tsx`
- [WhatsApp contact](https://github.com/dudekula-raja/travel-insurance-react-app/blob/main/src/components/WhatsAppFab.tsx): `src/components/WhatsAppFab.tsx`

### Other components

- **Site visitor**
- **Preventia360 quote engine**

## Connections

- Site visitor → App composition: opens site
- App composition → Navigation: renders
- App composition → Landing hero: renders
- App composition → Plan quote form: renders
- App composition → Visitor insurance: renders
- App composition → Coverage benefits: renders
- App composition → Insurance stories: renders
- App composition → Doctor coverage: renders
- App composition → Requirements: renders
- App composition → How it works: renders
- App composition → Partners: renders
- App composition → Traveller reviews: renders
- App composition → Expert contact: renders
- App composition → FAQs: renders
- App composition → Final call to action: renders
- App composition → Footer: renders
- App composition → Welcome popup: renders
- App composition → WhatsApp contact: renders
- App composition → Quote state: provides state
- App composition → Quote modal: renders
- Plan quote form → Quote URL builder: builds quote link
- Quote modal → Quote state: reads and updates
- Quote modal → Quote URL builder: builds quote link
- Quote URL builder → Preventia360 quote engine: redirects with details
- Site visitor → Plan quote form: enters trip details
- Site visitor → Expert contact: requests assistance
- Site visitor → WhatsApp contact: contacts
