# devarii/smart-airport-navigation-system architecture

> Architecture diagram of the GitHub repository devarii/smart-airport-navigation-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/devarii/smart-airport-navigation-system
- Repository: https://github.com/devarii/smart-airport-navigation-system

## Overview

This is a Smart Airport Navigation System: visitors can browse airport facilities by terminal, floor, and category, search for destinations, and view map and route-related UI. Administrators have a separate workflow for managing facility, category, and operating-hours data. The sampled API code confirms database-backed facility, category, floor, and hours operations, including authentication for writes. Map and routing modules are present in the tree, but their runtime wiring was not sampled, so those connections are left unspecified.

Main entry points: [`src/lib/prisma.ts`](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/lib/prisma.ts) (Prisma client), [`src/lib/auth.ts`](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/lib/auth.ts) (Session authentication), [`src/app/api/facilities/route.ts`](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/facilities/route.ts) (Facility API), [`src/app/api/facilities/[id]/route.ts`](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/facilities/%5Bid%5D/route.ts) (Facility management API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_visitor["Visitor Navigation"]
  node_home["Navigation page<br/>[page.tsx]"]
  node_search["Facility search<br/>[searchModal.tsx]"]
  node_categories["Category filters<br/>[categoryBar.tsx]"]
  node_terminal["Terminal selector"]
  node_details["Facility details<br/>[POIDetailPopup.tsx]"]
  node_routepanel["Route panel<br/>[routePanel.tsx]"]
end

subgraph group_mapping["Map and Routing"]
  node_map["Map canvas<br/>[mapCanvas.tsx]"]
  node_overlay["Room overlay<br/>[RoomOverlay.tsx]"]
  node_pathrender["Path renderer<br/>[pathRenderer.tsx]"]
  node_astar["A* pathfinding<br/>[astar.ts]"]
  node_walls["Terminal wall grids<br/>[t1.ts]"]
  node_store["Map interaction state<br/>[mapStore.ts]"]
end

subgraph group_admin["Administration"]
  node_adminpage["Admin dashboard<br/>[page.tsx]"]
  node_adminsearch["Admin facility search"]
end

subgraph group_data["Data and Access"]
  node_facilityapi["Facility API<br/>[route.ts]"]
  node_facilityitemapi["Facility management API<br/>[route.ts]"]
  node_hoursapi["Operating-hours API<br/>[route.ts]"]
  node_categoryapi["Category API<br/>[route.ts]"]
  node_categoryitemapi["Category management API<br/>[route.ts]"]
  node_floorapi["Floor API<br/>[route.ts]"]
  node_auth["Session authentication<br/>[auth.ts]"]
  node_prisma["Prisma client<br/>[prisma.ts]"]
end

node_visitor(("Airport visitor"))
node_database[("PostgreSQL database")]

node_visitor -->|"opens"| node_home
node_search -->|"fetches facilities"| node_facilityapi
node_adminsearch -->|"fetches facilities"| node_facilityapi
node_facilityapi -->|"queries"| node_prisma
node_facilityitemapi -->|"reads and writes"| node_prisma
node_hoursapi -->|"reads and upserts"| node_prisma
node_categoryapi -->|"reads and writes"| node_prisma
node_categoryitemapi -->|"reads and writes"| node_prisma
node_floorapi -->|"queries"| node_prisma
node_facilityapi -->|"checks writes"| node_auth
node_facilityitemapi -->|"checks writes"| node_auth
node_hoursapi -->|"checks writes"| node_auth
node_categoryapi -->|"checks writes"| node_auth
node_categoryitemapi -->|"checks writes"| node_auth
node_prisma -->|"queries"| node_database

click node_home "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/page.tsx"
click node_search "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/searchModal.tsx"
click node_categories "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/categoryBar.tsx"
click node_terminal "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/terminalSelector.tsx"
click node_details "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/POIDetailPopup.tsx"
click node_routepanel "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/routePanel.tsx"
click node_map "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/map/mapCanvas.tsx"
click node_overlay "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/map/RoomOverlay.tsx"
click node_pathrender "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/map/pathRenderer.tsx"
click node_astar "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/lib/astar.ts"
click node_walls "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/data/walls/t1.ts"
click node_store "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/store/mapStore.ts"
click node_adminpage "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/admin/page.tsx"
click node_adminsearch "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/admin/adminSearchModal.tsx"
click node_facilityapi "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/facilities/route.ts"
click node_facilityitemapi "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/facilities/%5Bid%5D/route.ts"
click node_hoursapi "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/facilities/%5Bid%5D/hours/route.ts"
click node_categoryapi "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/categories/route.ts"
click node_categoryitemapi "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/categories/%5Bid%5D/route.ts"
click node_floorapi "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/floors/route.ts"
click node_auth "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/lib/auth.ts"
click node_prisma "https://github.com/devarii/smart-airport-navigation-system/blob/main/src/lib/prisma.ts"

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_home,node_search,node_categories,node_terminal,node_details,node_routepanel toneBlue
class node_map,node_overlay,node_pathrender,node_astar,node_walls,node_store,node_database toneAmber
class node_adminpage,node_adminsearch toneMint
class node_facilityapi,node_facilityitemapi,node_hoursapi,node_categoryapi,node_categoryitemapi,node_floorapi,node_auth,node_prisma toneRose
class node_visitor toneIndigo
```

## Components

### Visitor Navigation

- [Navigation page](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/page.tsx): `src/app/page.tsx`
- [Facility search](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/searchModal.tsx): `src/components/ui/searchModal.tsx`
- [Category filters](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/categoryBar.tsx): `src/components/ui/categoryBar.tsx`
- [Terminal selector](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/terminalSelector.tsx): `src/components/ui/terminalSelector.tsx`
- [Facility details](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/POIDetailPopup.tsx): `src/components/ui/POIDetailPopup.tsx`
- [Route panel](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/ui/routePanel.tsx): `src/components/ui/routePanel.tsx`

### Map and Routing

- [Map canvas](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/map/mapCanvas.tsx): `src/components/map/mapCanvas.tsx`
- [Room overlay](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/map/RoomOverlay.tsx): `src/components/map/RoomOverlay.tsx`
- [Path renderer](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/map/pathRenderer.tsx): `src/components/map/pathRenderer.tsx`
- [A* pathfinding](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/lib/astar.ts): `src/lib/astar.ts`
- [Terminal wall grids](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/data/walls/t1.ts): `src/data/walls/t1.ts`
- [Map interaction state](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/store/mapStore.ts): `src/store/mapStore.ts`

### Administration

- [Admin dashboard](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/admin/page.tsx): `src/app/admin/page.tsx`
- [Admin facility search](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/components/admin/adminSearchModal.tsx): `src/components/admin/adminSearchModal.tsx`

### Data and Access

- [Facility API](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/facilities/route.ts): `src/app/api/facilities/route.ts`
- [Facility management API](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/facilities/%5Bid%5D/route.ts): `src/app/api/facilities/[id]/route.ts`
- [Operating-hours API](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/facilities/%5Bid%5D/hours/route.ts): `src/app/api/facilities/[id]/hours/route.ts`
- [Category API](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/categories/route.ts): `src/app/api/categories/route.ts`
- [Category management API](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/categories/%5Bid%5D/route.ts): `src/app/api/categories/[id]/route.ts`
- [Floor API](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/app/api/floors/route.ts): `src/app/api/floors/route.ts`
- [Session authentication](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/lib/auth.ts): `src/lib/auth.ts`
- [Prisma client](https://github.com/devarii/smart-airport-navigation-system/blob/main/src/lib/prisma.ts): `src/lib/prisma.ts`

### Other components

- **Airport visitor**
- **PostgreSQL database**

## Connections

- Airport visitor → Navigation page: opens
- Facility search → Facility API: fetches facilities
- Admin facility search → Facility API: fetches facilities
- Facility API → Prisma client: queries
- Facility management API → Prisma client: reads and writes
- Operating-hours API → Prisma client: reads and upserts
- Category API → Prisma client: reads and writes
- Category management API → Prisma client: reads and writes
- Floor API → Prisma client: queries
- Facility API → Session authentication: checks writes
- Facility management API → Session authentication: checks writes
- Operating-hours API → Session authentication: checks writes
- Category API → Session authentication: checks writes
- Category management API → Session authentication: checks writes
- Prisma client → PostgreSQL database: queries
