# karlcyrus/navsu-augmented-reality-navigation-system architecture

> Architecture diagram of the GitHub repository karlcyrus/navsu-augmented-reality-navigation-system, 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/karlcyrus/navsu-augmented-reality-navigation-system
- Repository: https://github.com/karlcyrus/navsu-augmented-reality-navigation-system

## Overview

NAvSU is a Unity Android campus-navigation app. A user finds and selects a destination, then the app localizes with GPS and Lightship WPS, computes a shortest route over the campus graph, and presents live AR, minimap, and navigation-card guidance. The README describes these relationships, but no source excerpts were provided; several documented capabilities therefore use their exact asset directory as the path, and the separate admin dashboard is shown only as a documented optional integration.

Main entry points: [`Assets/NavigationController.cs`](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/NavigationController.cs) (Navigation controller), [`Assets/DestinationButton.cs`](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/DestinationButton.cs) (Destination selection), [`Assets/CampusBuildingImages`](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/tree/master/Assets/CampusBuildingImages) (Building directory), [`Assets/CategoryScreenManager.cs`](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/CategoryScreenManager.cs) (Category browsing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Destination Discovery"]
  node_category["Category browsing"]
  node_search["Destination search<br/>[SearchFilter.cs]"]
  node_destination["Destination selection"]
  node_directory["Building directory"]
end

subgraph group_navigation["Route Navigation"]
  node_navigation["Navigation controller"]
  node_warmup["WPS warmup<br/>[ARWarmupManager.cs]"]
  node_arobjects["AR route markers"]
end

subgraph group_guidance["Live Guidance"]
  node_navcard["Navigation card"]
  node_minimap["Live minimap"]
  node_guide["AR guide companion"]
end

subgraph group_campusdata["Campus Data"]
  node_graphdata["Navigation graph"]
  node_officeinfo["Office mappings"]
  node_descriptions["Building descriptions"]
  node_minimapdata["Minimap data<br/>[minimap_data.json]"]
end

node_user(("Campus user"))
node_gps(("Device GPS"))
node_lightship{{"Lightship WPS"}}
node_api{{"Campus data API"}}
node_admin["Admin dashboard"]

node_user -->|"browses"| node_category
node_user -->|"searches"| node_search
node_user -->|"selects"| node_destination
node_category -->|"offers"| node_destination
node_search -->|"finds"| node_destination
node_destination -->|"starts"| node_navigation
node_navigation -->|"primes localization"| node_warmup
node_navigation -->|"reads position"| node_gps
node_navigation -->|"checks localization"| node_lightship
node_navigation -->|"loads graph"| node_graphdata
node_navigation -->|"spawns markers"| node_arobjects
node_navigation -->|"feeds guidance"| node_navcard
node_navigation -->|"feeds path"| node_minimap
node_minimap -.->|"uses map data"| node_minimapdata
node_directory -.->|"presents details"| node_descriptions
node_directory -.->|"uses mappings"| node_officeinfo
node_navigation -.->|"accompanies user"| node_guide
node_admin -.->|"manages data"| node_api
node_navigation -.->|"syncs data"| node_api

click node_category "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/CategoryScreenManager.cs"
click node_search "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/SearchFilter.cs"
click node_destination "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/DestinationButton.cs"
click node_directory "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/tree/master/Assets/CampusBuildingImages"
click node_navigation "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/NavigationController.cs"
click node_warmup "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/ARWarmupManager.cs"
click node_officeinfo "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/Resources/office_mapping.json"
click node_descriptions "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/Resources/building_descriptions.json"
click node_arobjects "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/tree/master/Assets/ArrowPrefab"
click node_navcard "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/NavigationTopCardUI.cs"
click node_minimap "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/MinimapController.cs"
click node_minimapdata "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/Resources/minimap_data.json"
click node_guide "https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/tree/master/Assets"

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_category,node_search,node_destination,node_directory,node_user toneBlue
class node_navigation,node_warmup,node_arobjects toneAmber
class node_navcard,node_minimap,node_guide,node_api toneMint
class node_graphdata,node_officeinfo,node_descriptions,node_minimapdata toneRose
class node_gps,node_lightship,node_admin toneIndigo
```

## Components

### Destination Discovery

- [Category browsing](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/CategoryScreenManager.cs): `Assets/CategoryScreenManager.cs`
- [Destination search](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/SearchFilter.cs): `Assets/SearchFilter.cs`
- [Destination selection](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/DestinationButton.cs): `Assets/DestinationButton.cs`
- [Building directory](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/tree/master/Assets/CampusBuildingImages): `Assets/CampusBuildingImages`

### Route Navigation

- [Navigation controller](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/NavigationController.cs): `Assets/NavigationController.cs`
- [WPS warmup](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/ARWarmupManager.cs): `Assets/ARWarmupManager.cs`
- [AR route markers](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/tree/master/Assets/ArrowPrefab): `Assets/ArrowPrefab`

### Live Guidance

- [Navigation card](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/NavigationTopCardUI.cs): `Assets/NavigationTopCardUI.cs`
- [Live minimap](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/MinimapController.cs): `Assets/MinimapController.cs`
- [AR guide companion](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/tree/master/Assets): `Assets`

### Campus Data

- **Navigation graph**
- [Office mappings](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/Resources/office_mapping.json): `Assets/Resources/office_mapping.json`
- [Building descriptions](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/Resources/building_descriptions.json): `Assets/Resources/building_descriptions.json`
- [Minimap data](https://github.com/karlcyrus/navsu-augmented-reality-navigation-system/blob/master/Assets/Resources/minimap_data.json): `Assets/Resources/minimap_data.json`

### Other components

- **Campus user**
- **Device GPS**
- **Lightship WPS**
- **Campus data API**
- **Admin dashboard**

## Connections

- Campus user → Category browsing: browses
- Campus user → Destination search: searches
- Campus user → Destination selection: selects
- Category browsing → Destination selection: offers
- Destination search → Destination selection: finds
- Destination selection → Navigation controller: starts
- Navigation controller → WPS warmup: primes localization
- Navigation controller → Device GPS: reads position
- Navigation controller → Lightship WPS: checks localization
- Navigation controller → Navigation graph: loads graph
- Navigation controller → AR route markers: spawns markers
- Navigation controller → Navigation card: feeds guidance
- Navigation controller → Live minimap: feeds path
- Live minimap → Minimap data: uses map data
- Building directory → Building descriptions: presents details
- Building directory → Office mappings: uses mappings
- Navigation controller → AR guide companion: accompanies user
- Admin dashboard → Campus data API: manages data
- Navigation controller → Campus data API: syncs data
