# young-smart-ang/xiongan-digital-practice architecture

> Architecture diagram of the GitHub repository young-smart-ang/xiongan-digital-practice, 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/young-smart-ang/xiongan-digital-practice
- Repository: https://github.com/young-smart-ang/xiongan-digital-practice

## Overview

This repository is a static digital archive presenting Beijing Jiaotong University’s Xiong’an field practice. The visitor workflow is to enter the homepage, explore the five-stop route and individual stop records, then browse interview voices, research findings, and media coverage. The graph preserves those documented capabilities; implementation excerpts chiefly cover the route, curated stop content, image assets, and media data. Other page implementations are not sampled, so their links are included only where the README documents the capability.

Main entry points: [`site/src/layouts/BaseLayout.astro`](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/layouts/BaseLayout.astro) (Base layout), [`site/src/pages/route/[slug].astro`](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/route/%5Bslug%5D.astro) (Stop details), [`site/src/pages/voices.astro`](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/voices.astro) (Interview voices), [`site/src/pages/index.astro`](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/index.astro) (Homepage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_visitor["Visitor pages"]
  node_home["Homepage<br/>[index.astro]"]
  node_route["Practice route<br/>[route.astro]"]
  node_stop_detail["Stop details<br/>[&#91;slug&#93;.astro]"]
  node_voices["Interview voices<br/>[voices.astro]"]
  node_findings["Research findings<br/>[findings.astro]"]
  node_about["About project<br/>[about.astro]"]
end

subgraph group_content["Practice content"]
  node_stops["Five stop records"]
  node_content_schema["Stop content schema<br/>[content.config.ts]"]
  node_route_data["Route dimensions<br/>[route.ts]"]
  node_interviews["Interview records<br/>[media.ts]"]
  node_media["Media platforms<br/>[media.ts]"]
  node_site_metadata["Site metadata<br/>[site.ts]"]
end

subgraph group_shared["Shared presentation"]
  node_images["Curated image map<br/>[images.ts]"]
  node_layout["Base layout<br/>[BaseLayout.astro]"]
  node_header["Header<br/>[Header.astro]"]
  node_footer["Footer<br/>[Footer.astro]"]
end

node_visitor(("Site visitor"))
node_external_media(("Media platforms"))

node_visitor -->|"opens"| node_home
node_visitor -->|"explores"| node_route
node_visitor -->|"browses"| node_stop_detail
node_visitor -->|"views"| node_voices
node_visitor -->|"reads"| node_findings
node_visitor -->|"learns about"| node_about
node_route -->|"displays"| node_route_data
node_stop_detail -->|"presents"| node_stops
node_stop_detail -->|"uses"| node_route_data
node_content_schema -->|"validates"| node_stops
node_stop_detail -->|"illustrates"| node_images
node_home -->|"presents"| node_site_metadata
node_voices -->|"presents"| node_interviews
node_voices -->|"links to"| node_external_media
node_findings -->|"illustrates"| node_images
node_about -.->|"summarizes"| node_media
node_media -->|"references"| node_external_media
node_home -.->|"uses"| node_layout
node_route -.->|"uses"| node_layout
node_stop_detail -.->|"uses"| node_layout
node_voices -.->|"uses"| node_layout
node_findings -.->|"uses"| node_layout
node_about -.->|"uses"| node_layout
node_layout -.->|"renders"| node_header
node_layout -.->|"renders"| node_footer

click node_home "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/index.astro"
click node_route "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/route.astro"
click node_stop_detail "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/route/%5Bslug%5D.astro"
click node_voices "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/voices.astro"
click node_findings "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/findings.astro"
click node_about "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/about.astro"
click node_stops "https://github.com/young-smart-ang/xiongan-digital-practice/tree/master/site/src/content/stops"
click node_content_schema "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/content.config.ts"
click node_route_data "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/route.ts"
click node_interviews "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/media.ts"
click node_media "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/media.ts"
click node_site_metadata "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/site.ts"
click node_images "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/images.ts"
click node_layout "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/layouts/BaseLayout.astro"
click node_header "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/components/Header.astro"
click node_footer "https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/components/Footer.astro"

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_route,node_stop_detail,node_voices,node_findings,node_about toneBlue
class node_stops,node_content_schema,node_route_data,node_interviews,node_media,node_site_metadata toneAmber
class node_images,node_layout,node_header,node_footer toneMint
class node_visitor,node_external_media toneIndigo
```

## Components

### Visitor pages

- [Homepage](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/index.astro): `site/src/pages/index.astro`
- [Practice route](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/route.astro): `site/src/pages/route.astro`
- [Stop details](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/route/%5Bslug%5D.astro): `site/src/pages/route/[slug].astro`
- [Interview voices](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/voices.astro): `site/src/pages/voices.astro`
- [Research findings](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/findings.astro): `site/src/pages/findings.astro`
- [About project](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/pages/about.astro): `site/src/pages/about.astro`

### Practice content

- [Five stop records](https://github.com/young-smart-ang/xiongan-digital-practice/tree/master/site/src/content/stops): `site/src/content/stops`
- [Stop content schema](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/content.config.ts): `site/src/content.config.ts`
- [Route dimensions](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/route.ts): `site/src/data/route.ts`
- [Interview records](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/media.ts): `site/src/data/media.ts`
- [Media platforms](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/media.ts): `site/src/data/media.ts`
- [Site metadata](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/site.ts): `site/src/data/site.ts`

### Shared presentation

- [Curated image map](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/data/images.ts): `site/src/data/images.ts`
- [Base layout](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/layouts/BaseLayout.astro): `site/src/layouts/BaseLayout.astro`
- [Header](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/components/Header.astro): `site/src/components/Header.astro`
- [Footer](https://github.com/young-smart-ang/xiongan-digital-practice/blob/master/site/src/components/Footer.astro): `site/src/components/Footer.astro`

### Other components

- **Site visitor**
- **Media platforms**

## Connections

- Site visitor → Homepage: opens (evidence: `README.md`)
- Site visitor → Practice route: explores (evidence: `README.md`)
- Site visitor → Stop details: browses (evidence: `README.md`)
- Site visitor → Interview voices: views (evidence: `README.md`)
- Site visitor → Research findings: reads (evidence: `README.md`)
- Site visitor → About project: learns about
- Practice route → Route dimensions: displays (evidence: `README.md`)
- Stop details → Five stop records: presents (evidence: `README.md`)
- Stop details → Route dimensions: uses (evidence: `site/src/data/route.ts`)
- Stop content schema → Five stop records: validates (evidence: `site/src/content.config.ts`)
- Stop details → Curated image map: illustrates (evidence: `site/src/data/images.ts`)
- Homepage → Site metadata: presents (evidence: `README.md`)
- Interview voices → Interview records: presents (evidence: `README.md`)
- Interview voices → Media platforms: links to
- Research findings → Curated image map: illustrates (evidence: `site/src/data/images.ts`)
- About project → Media platforms: summarizes
- Media platforms → Media platforms: references (evidence: `site/src/data/media.ts`)
- Homepage → Base layout: uses
- Practice route → Base layout: uses
- Stop details → Base layout: uses
- Interview voices → Base layout: uses
- Research findings → Base layout: uses
- About project → Base layout: uses
- Base layout → Header: renders
- Base layout → Footer: renders
