# samaysarthakswain/sight-sound-walk architecture

> Architecture diagram of the GitHub repository samaysarthakswain/sight-sound-walk, 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/samaysarthakswain/sight-sound-walk
- Repository: https://github.com/samaysarthakswain/sight-sound-walk

## Overview

Lets Explore is a tourism and city-exploration application. Its main user journey enters the React app, browses destinations and local places, and uses dedicated pages for trip planning and experiences; additional branches provide AI travel assistance and crowd/traffic monitoring. The repository also contains separate API, location-service, narration-service, and model-training code. Edges are limited to relationships visible in excerpts or SOURCE INDEX references; many feature pages and integrations were not sampled, so their internal wiring is not asserted.

Main entry points: [`src/App.tsx`](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/App.tsx) (React application), [`src/components/AnimatedRoutes.tsx`](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/components/AnimatedRoutes.tsx) (Page routing), [`src/pages/Index.tsx`](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Index.tsx) (Explore landing), [`src/hooks/useCabServices.ts`](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/hooks/useCabServices.ts) (Cab data and fares)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Tourism app"]
  node_app["React application<br/>[App.tsx]"]
  node_routes["Page routing<br/>[AnimatedRoutes.tsx]"]
  node_home["Explore landing<br/>[Index.tsx]"]
  node_monuments["Monument browsing<br/>[useMonuments.ts]"]
  node_placepages["Food and hotels<br/>[Food.tsx]"]
end

subgraph group_experiences["Travel experiences"]
  node_heritage["Heritage quests<br/>[HeritageQuests.tsx]"]
  node_artisan["Artisan trail<br/>[ArtisanTrail.tsx]"]
  node_soundscape["Soundscape<br/>[Soundscape.tsx]"]
  node_sundial["Sundial simulator"]
  node_ar["AR experiences<br/>[ARExperience.tsx]"]
end

subgraph group_mobility["Mobility and safety"]
  node_tripplanner["Journey planning<br/>[RouteSection.tsx]"]
  node_cab["Cab services<br/>[Cabs.tsx]"]
  node_cabdata["Cab data and fares<br/>[useCabServices.ts]"]
  node_crowd["Crowd dashboard<br/>[CrowdDashboard.tsx]"]
  node_live["Live room<br/>[LiveRoom.tsx]"]
  node_rtc["Device sessions<br/>[WebRTCContext.tsx]"]
  node_detector["Camera detection"]
  node_detectionstate["Detection state"]
  node_routing["City route algorithms<br/>[graphRouting.ts]"]
  node_topology["City topology<br/>[cityTopology.ts]"]
end

subgraph group_services["Backend services"]
  node_api["REST API<br/>[api.js]"]
  node_backend["API server<br/>[server.js]"]
  node_models[("Travel data models<br/>[Monument.js]")]
  node_locationgrpc["Location gRPC service"]
  node_locationlogic["Location operations<br/>[MonumentService.kt]"]
  node_narration["Tour narration"]
end

subgraph group_ai["AI services"]
  node_assistant["Travel assistant<br/>[Assistant.tsx]"]
  node_functions["Assistant functions<br/>[index.ts]"]
  node_rag["RAG guide<br/>[index.ts]"]
  node_training["Recommender training"]
end

node_traveler(("Traveler"))

node_traveler -->|"opens"| node_app
node_app -->|"renders routes"| node_routes
node_routes -->|"routes to"| node_home
node_home -.->|"loads destinations"| node_monuments
node_traveler -.->|"plans journey"| node_tripplanner
node_cab -.->|"uses fare data"| node_cabdata
node_cabdata -->|"uses account"| node_traveler
node_crowd -.->|"runs detection"| node_detector
node_detector -->|"updates counts"| node_detectionstate
node_live -.->|"uses sessions"| node_rtc
node_routing -->|"reads topology"| node_topology
node_traveler -.->|"explores heritage"| node_heritage
node_traveler -.->|"explores artisans"| node_artisan
node_traveler -.->|"hears local audio"| node_soundscape
node_traveler -.->|"uses simulator"| node_sundial
node_traveler -.->|"opens AR"| node_ar
node_traveler -.->|"asks for guidance"| node_assistant
node_assistant -.->|"requests assistance"| node_functions
node_traveler -.->|"requests guide"| node_rag
node_backend -->|"mounts routes"| node_api
node_api -->|"uses models"| node_models
node_locationgrpc -.->|"delegates operations"| node_locationlogic
node_traveler -.->|"requests narration"| node_narration

click node_app "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/App.tsx"
click node_routes "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/components/AnimatedRoutes.tsx"
click node_home "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Index.tsx"
click node_monuments "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/hooks/useMonuments.ts"
click node_placepages "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Food.tsx"
click node_tripplanner "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/components/RouteSection.tsx"
click node_cab "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Cabs.tsx"
click node_cabdata "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/hooks/useCabServices.ts"
click node_crowd "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/CrowdDashboard.tsx"
click node_live "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/LiveRoom.tsx"
click node_rtc "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/contexts/WebRTCContext.tsx"
click node_detector "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/components/dashboard/DetectionEngine.tsx"
click node_detectionstate "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/contexts/DetectionContext.tsx"
click node_routing "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/lib/itos/graphRouting.ts"
click node_topology "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/lib/itos/cityTopology.ts"
click node_heritage "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/HeritageQuests.tsx"
click node_artisan "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/ArtisanTrail.tsx"
click node_soundscape "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Soundscape.tsx"
click node_sundial "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/SundialSimulator.tsx"
click node_ar "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/ARExperience.tsx"
click node_assistant "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Assistant.tsx"
click node_functions "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/supabase/functions/travel-assistant/index.ts"
click node_rag "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/supabase/functions/rag-guide/index.ts"
click node_api "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend/routes/api.js"
click node_backend "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend/server.js"
click node_models "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend/models/Monument.js"
click node_locationgrpc "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend-services/location-service/src/main/kotlin/app/sightsoundwalk/location/grpc/MonumentGrpcService.kt"
click node_locationlogic "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend-services/location-service/src/main/kotlin/app/sightsoundwalk/location/service/MonumentService.kt"
click node_narration "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend-services/narration-service/src/main/java/app/sightsoundwalk/narration/service/TourGuideService.java"
click node_training "https://github.com/samaysarthakswain/sight-sound-walk/blob/main/ml_training/train_recommender.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_app,node_routes,node_home,node_monuments,node_placepages toneBlue
class node_heritage,node_artisan,node_soundscape,node_sundial,node_ar toneAmber
class node_tripplanner,node_cab,node_cabdata,node_crowd,node_live,node_rtc,node_detector,node_detectionstate,node_routing,node_topology toneMint
class node_api,node_backend,node_models,node_locationgrpc,node_locationlogic,node_narration toneRose
class node_assistant,node_functions,node_rag,node_training,node_traveler toneIndigo
```

## Components

### Tourism app

- [React application](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/App.tsx): `src/App.tsx`
- [Page routing](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/components/AnimatedRoutes.tsx): `src/components/AnimatedRoutes.tsx`
- [Explore landing](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Index.tsx): `src/pages/Index.tsx`
- [Monument browsing](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/hooks/useMonuments.ts): `src/hooks/useMonuments.ts`
- [Food and hotels](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Food.tsx): `src/pages/Food.tsx`

### Travel experiences

- [Heritage quests](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/HeritageQuests.tsx): `src/pages/HeritageQuests.tsx`
- [Artisan trail](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/ArtisanTrail.tsx): `src/pages/ArtisanTrail.tsx`
- [Soundscape](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Soundscape.tsx): `src/pages/Soundscape.tsx`
- [Sundial simulator](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/SundialSimulator.tsx): `src/pages/SundialSimulator.tsx`
- [AR experiences](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/ARExperience.tsx): `src/pages/ARExperience.tsx`

### Mobility and safety

- [Journey planning](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/components/RouteSection.tsx): `src/components/RouteSection.tsx`
- [Cab services](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Cabs.tsx): `src/pages/Cabs.tsx`
- [Cab data and fares](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/hooks/useCabServices.ts): `src/hooks/useCabServices.ts`
- [Crowd dashboard](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/CrowdDashboard.tsx): `src/pages/CrowdDashboard.tsx`
- [Live room](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/LiveRoom.tsx): `src/pages/LiveRoom.tsx`
- [Device sessions](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/contexts/WebRTCContext.tsx): `src/contexts/WebRTCContext.tsx`
- [Camera detection](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/components/dashboard/DetectionEngine.tsx): `src/components/dashboard/DetectionEngine.tsx`
- [Detection state](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/contexts/DetectionContext.tsx): `src/contexts/DetectionContext.tsx`
- [City route algorithms](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/lib/itos/graphRouting.ts): `src/lib/itos/graphRouting.ts`
- [City topology](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/lib/itos/cityTopology.ts): `src/lib/itos/cityTopology.ts`

### Backend services

- [REST API](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend/routes/api.js): `backend/routes/api.js`
- [API server](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend/server.js): `backend/server.js`
- [Travel data models](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend/models/Monument.js): `backend/models/Monument.js`
- [Location gRPC service](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend-services/location-service/src/main/kotlin/app/sightsoundwalk/location/grpc/MonumentGrpcService.kt): `backend-services/location-service/src/main/kotlin/app/sightsoundwalk/location/grpc/MonumentGrpcService.kt`
- [Location operations](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend-services/location-service/src/main/kotlin/app/sightsoundwalk/location/service/MonumentService.kt): `backend-services/location-service/src/main/kotlin/app/sightsoundwalk/location/service/MonumentService.kt`
- [Tour narration](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/backend-services/narration-service/src/main/java/app/sightsoundwalk/narration/service/TourGuideService.java): `backend-services/narration-service/src/main/java/app/sightsoundwalk/narration/service/TourGuideService.java`

### AI services

- [Travel assistant](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/src/pages/Assistant.tsx): `src/pages/Assistant.tsx`
- [Assistant functions](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/supabase/functions/travel-assistant/index.ts): `supabase/functions/travel-assistant/index.ts`
- [RAG guide](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/supabase/functions/rag-guide/index.ts): `supabase/functions/rag-guide/index.ts`
- [Recommender training](https://github.com/samaysarthakswain/sight-sound-walk/blob/main/ml_training/train_recommender.py): `ml_training/train_recommender.py`

### Other components

- **Traveler**

## Connections

- Traveler → React application: opens (evidence: `README.md`)
- React application → Page routing: renders routes (evidence: `src/App.tsx`)
- Page routing → Explore landing: routes to (evidence: `src/components/AnimatedRoutes.tsx`)
- Explore landing → Monument browsing: loads destinations
- Traveler → Journey planning: plans journey
- Cab services → Cab data and fares: uses fare data
- Cab data and fares → Traveler: uses account (evidence: `src/hooks/useCabServices.ts`)
- Crowd dashboard → Camera detection: runs detection
- Camera detection → Detection state: updates counts (evidence: `src/components/dashboard/DetectionEngine.tsx`)
- Live room → Device sessions: uses sessions
- City route algorithms → City topology: reads topology (evidence: `src/lib/itos/graphRouting.ts`)
- Traveler → Heritage quests: explores heritage
- Traveler → Artisan trail: explores artisans
- Traveler → Soundscape: hears local audio
- Traveler → Sundial simulator: uses simulator
- Traveler → AR experiences: opens AR
- Traveler → Travel assistant: asks for guidance
- Travel assistant → Assistant functions: requests assistance
- Traveler → RAG guide: requests guide
- API server → REST API: mounts routes (evidence: `backend/server.js`)
- REST API → Travel data models: uses models (evidence: `backend/routes/api.js`)
- Location gRPC service → Location operations: delegates operations
- Traveler → Tour narration: requests narration
