# keshikasharma2007-pixel/hackhackgoose2026 architecture

> Architecture diagram of the GitHub repository keshikasharma2007-pixel/hackhackgoose2026, 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/keshikasharma2007-pixel/hackhackgoose2026
- Repository: https://github.com/keshikasharma2007-pixel/hackhackgoose2026

## Overview

Goose Trails is an Expo indoor-navigation prototype. Its main workflow is selecting or scanning a location, resolving it to a building-graph location, computing a route, and displaying that route on a floor map. The graph also captures AI-assisted keyword and schedule search and the building-map data layer. README-described scanning/localization and AR are product capabilities, but the excerpts do not establish their runtime wiring; the shown AI service sends text prompts, not images. Unsampled routes and integrations are represented only where documentation supports them.

Main entry points: [`my-app/src/screens/MapScreens.js`](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/screens/MapScreens.js) (Indoor map UI), [`my-app/src/ai_service/ai_start.js`](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/ai_service/ai_start.js) (AI request service), [`my-app/src/app/map.tsx`](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/app/map.tsx) (Map route), [`my-app/src/components/AIModal.jsx`](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/components/AIModal.jsx) (AI search modal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["App experience"]
  node_scan["Scan screen<br/>[scan.tsx]"]
  node_maproute["Map route<br/>[map.tsx]"]
  node_mapview["Indoor map UI<br/>[MapScreens.js]"]
end

subgraph group_ai["AI search"]
  node_aimodal["AI search modal<br/>[AIModal.jsx]"]
  node_aiservice["AI request service<br/>[ai_start.js]"]
end

subgraph group_routing["Indoor routing"]
  node_bfs["Bidirectional BFS<br/>[BFS.js]"]
end

subgraph group_mapdata["Building map"]
  node_nodecatalog["Location nodes<br/>[nodes.js]"]
  node_pathways["Pathway edges<br/>[edges.js]"]
end

node_user(("Navigator"))
node_gemini{{"Gemini API"}}

node_user -->|"scans surroundings"| node_scan
node_user -->|"opens map"| node_maproute
node_maproute -->|"renders"| node_mapview
node_user -.->|"searches locations"| node_aimodal
node_aimodal -->|"requests matches"| node_aiservice
node_aiservice -->|"formats locations"| node_nodecatalog
node_aiservice -->|"sends prompt"| node_gemini
node_mapview -->|"computes route"| node_bfs
node_mapview -->|"reads pathways"| node_pathways
node_mapview -->|"reads locations"| node_nodecatalog
node_bfs -->|"traverses edges"| node_pathways
node_mapview -->|"displays route"| node_user
node_aiservice -.->|"returns matches"| node_user

click node_scan "https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/app/scan.tsx"
click node_maproute "https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/app/map.tsx"
click node_mapview "https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/screens/MapScreens.js"
click node_aimodal "https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/components/AIModal.jsx"
click node_aiservice "https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/ai_service/ai_start.js"
click node_nodecatalog "https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/data/nodes.js"
click node_pathways "https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/data/edges.js"
click node_bfs "https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/data/BFS.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_scan,node_maproute,node_mapview toneBlue
class node_aimodal,node_aiservice toneAmber
class node_bfs,node_gemini toneMint
class node_nodecatalog,node_pathways toneRose
class node_user toneIndigo
```

## Components

### App experience

- [Scan screen](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/app/scan.tsx): `my-app/src/app/scan.tsx`
- [Map route](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/app/map.tsx): `my-app/src/app/map.tsx`
- [Indoor map UI](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/screens/MapScreens.js): `my-app/src/screens/MapScreens.js`

### AI search

- [AI search modal](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/components/AIModal.jsx): `my-app/src/components/AIModal.jsx`
- [AI request service](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/ai_service/ai_start.js): `my-app/src/ai_service/ai_start.js`

### Indoor routing

- [Bidirectional BFS](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/data/BFS.js): `my-app/src/data/BFS.js`

### Building map

- [Location nodes](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/data/nodes.js): `my-app/src/data/nodes.js`
- [Pathway edges](https://github.com/keshikasharma2007-pixel/hackhackgoose2026/blob/main/my-app/src/data/edges.js): `my-app/src/data/edges.js`

### Other components

- **Navigator**
- **Gemini API**

## Connections

- Navigator → Scan screen: scans surroundings (evidence: `README.md`)
- Navigator → Map route: opens map (evidence: `README.md`)
- Map route → Indoor map UI: renders (evidence: `my-app/src/app/map.tsx`)
- Navigator → AI search modal: searches locations
- AI search modal → AI request service: requests matches (evidence: `my-app/src/components/AIModal.jsx`)
- AI request service → Location nodes: formats locations (evidence: `my-app/src/ai_service/ai_start.js`)
- AI request service → Gemini API: sends prompt (evidence: `my-app/src/ai_service/ai_start.js`)
- Indoor map UI → Bidirectional BFS: computes route (evidence: `my-app/src/screens/MapScreens.js`)
- Indoor map UI → Pathway edges: reads pathways (evidence: `my-app/src/screens/MapScreens.js`)
- Indoor map UI → Location nodes: reads locations (evidence: `my-app/src/screens/MapScreens.js`)
- Bidirectional BFS → Pathway edges: traverses edges (evidence: `my-app/src/data/BFS.js`)
- Indoor map UI → Navigator: displays route (evidence: `my-app/src/screens/MapScreens.js`)
- AI request service → Navigator: returns matches
