# viengthong2015/myui architecture

> Architecture diagram of the GitHub repository viengthong2015/myui, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/viengthong2015/myui
- Repository: https://github.com/viengthong2015/myui

## Overview

This repository is a browser-based research presentation, not an implementation of the runtime language-management system described in its abstract. The visible workflow is navigating slides, optionally browsing an overview or using presentation controls, with an offline shell registered by the page. The sampled JavaScript also implements a presentation timer. The HTML and styling files are present in the tree but were not excerpted, so their detailed structure and wiring cannot be established here.

Main entry points: [`lib/js.js`](https://github.com/viengthong2015/myui/blob/main/lib/js.js) (Slide Controls), [`sw.js`](https://github.com/viengthong2015/myui/blob/main/sw.js) (Service Worker), [`index.html`](https://github.com/viengthong2015/myui/blob/main/index.html) (Slide Deck)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_presentation["Presentation"]
  node_deck["Slide Deck<br/>[index.html]"]
  node_controls["Slide Controls<br/>[js.js]"]
  node_overview["Slide Overview<br/>[js.js]"]
  node_timer["Presentation Timer<br/>[js.js]"]
end

subgraph group_offline["Offline Support"]
  node_worker["Service Worker<br/>[sw.js]"]
  node_cache[("Browser Cache")]
end

node_audience(("Audience"))

node_audience -->|"navigates slides"| node_controls
node_audience -->|"selects slides"| node_overview
node_audience -->|"starts or stops"| node_timer
node_controls -->|"updates slide state"| node_deck
node_overview -->|"clones and selects"| node_deck
node_controls -->|"registers on load"| node_worker
node_worker -->|"stores and retrieves"| node_cache

click node_deck "https://github.com/viengthong2015/myui/blob/main/index.html"
click node_controls "https://github.com/viengthong2015/myui/blob/main/lib/js.js"
click node_overview "https://github.com/viengthong2015/myui/blob/main/lib/js.js"
click node_timer "https://github.com/viengthong2015/myui/blob/main/lib/js.js"
click node_worker "https://github.com/viengthong2015/myui/blob/main/sw.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_deck,node_controls,node_overview,node_timer toneBlue
class node_worker,node_cache toneAmber
class node_audience toneIndigo
```

## Components

### Presentation

- [Slide Deck](https://github.com/viengthong2015/myui/blob/main/index.html): `index.html`
- [Slide Controls](https://github.com/viengthong2015/myui/blob/main/lib/js.js): `lib/js.js`
- [Slide Overview](https://github.com/viengthong2015/myui/blob/main/lib/js.js): `lib/js.js`
- [Presentation Timer](https://github.com/viengthong2015/myui/blob/main/lib/js.js): `lib/js.js`

### Offline Support

- [Service Worker](https://github.com/viengthong2015/myui/blob/main/sw.js): `sw.js`
- **Browser Cache**

### Other components

- **Audience**

## Connections

- Audience → Slide Controls: navigates slides (evidence: `lib/js.js`)
- Audience → Slide Overview: selects slides (evidence: `lib/js.js`)
- Audience → Presentation Timer: starts or stops (evidence: `lib/js.js`)
- Slide Controls → Slide Deck: updates slide state (evidence: `lib/js.js`)
- Slide Overview → Slide Deck: clones and selects (evidence: `lib/js.js`)
- Slide Controls → Service Worker: registers on load (evidence: `lib/js.js`)
- Service Worker → Browser Cache: stores and retrieves (evidence: `sw.js`)
