# alesha-pro/bench-portal architecture

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

- Interactive diagram: https://gitdiagram.com/alesha-pro/bench-portal
- Repository: https://github.com/alesha-pro/bench-portal

## Overview

Bench Portal is a static catalog for independently built games and visual projects. Visitors browse the collection, search, filter by category, builder model, or tag, and share filtered URLs. The visible runtime is compact: the catalog interface uses generated collection data, while the games are cataloged experiences rather than demonstrated internal services. The README documents the collection’s capabilities and project layout; source excerpts do not show the catalog implementation or how game entries are loaded, so those internal connections are left unasserted.

Main entry points: [`src/catalog.js`](https://github.com/alesha-pro/bench-portal/blob/main/src/catalog.js) (Catalog interface), [`src/catalog-data.js`](https://github.com/alesha-pro/bench-portal/blob/main/src/catalog-data.js) (Catalog data), [`games`](https://github.com/alesha-pro/bench-portal/tree/main/games) (Game projects)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Catalog experience"]
  node_catalog_ui["Catalog interface<br/>[catalog.js]"]
  node_catalog_data["Catalog data<br/>[catalog-data.js]"]
end

subgraph group_collection["Project collection"]
  node_projects["Game projects"]
end

node_visitor(("Visitor"))

node_visitor -->|"browses and filters"| node_catalog_ui
node_catalog_ui -->|"uses data"| node_catalog_data
node_projects -.->|"populates collection"| node_catalog_data

click node_catalog_ui "https://github.com/alesha-pro/bench-portal/blob/main/src/catalog.js"
click node_catalog_data "https://github.com/alesha-pro/bench-portal/blob/main/src/catalog-data.js"
click node_projects "https://github.com/alesha-pro/bench-portal/tree/main/games"

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_catalog_ui,node_catalog_data toneBlue
class node_projects toneAmber
class node_visitor toneIndigo
```

## Components

### Catalog experience

- [Catalog interface](https://github.com/alesha-pro/bench-portal/blob/main/src/catalog.js): `src/catalog.js`
- [Catalog data](https://github.com/alesha-pro/bench-portal/blob/main/src/catalog-data.js): `src/catalog-data.js`

### Project collection

- [Game projects](https://github.com/alesha-pro/bench-portal/tree/main/games): `games`

### Other components

- **Visitor**

## Connections

- Visitor → Catalog interface: browses and filters (evidence: `README.md`)
- Catalog interface → Catalog data: uses data (evidence: `src/catalog.js`)
- Game projects → Catalog data: populates collection (evidence: `README.md`)
