# blazertweaks/buzzheavier-manager architecture

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

- Interactive diagram: https://gitdiagram.com/blazertweaks/buzzheavier-manager
- Repository: https://github.com/blazertweaks/buzzheavier-manager

## Overview

BuzzHeavier Manager is a React file-management interface for a user’s BuzzHeavier account. The workflow is: enter an account key, load the root or a folder, browse/filter/sort and inspect file metadata, then perform file or folder actions and refresh the listing. The README also documents uploads, notes, direct links, and expiry/stat displays. The sampled App excerpt shows API-driven folder loading and rename/create/move operations; other actions are documented but their handlers are not fully visible. The Worker is a configurable proxy to BuzzHeavier endpoints.

Main entry points: [`src/App.jsx`](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/App.jsx) (App controller), [`worker.js`](https://github.com/blazertweaks/buzzheavier-manager/blob/main/worker.js) (Proxy worker), [`src/components/LoginScreen.jsx`](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/LoginScreen.jsx) (Account login), [`src/components/FileRow.jsx`](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/FileRow.jsx) (File row)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_account["Account access"]
  node_login["Account login<br/>[LoginScreen.jsx]"]
  node_app["App controller<br/>[App.jsx]"]
  node_local[("Local credentials<br/>[useLocalStorage.js]")]
  node_header["Account header<br/>[Header.jsx]"]
end

subgraph group_browse["File browsing"]
  node_breadcrumb["Folder breadcrumb<br/>[Breadcrumb.jsx]"]
  node_toolbar["Search and upload<br/>[Toolbar.jsx]"]
  node_stats["Folder stats<br/>[StatsBar.jsx]"]
  node_table["Sort controls<br/>[TableHeader.jsx]"]
  node_row["File row<br/>[FileRow.jsx]"]
  node_format["Display formatting<br/>[format.js]"]
end

subgraph group_actions["File operations"]
  node_modal["Action dialogs<br/>[Modal.jsx]"]
end

subgraph group_services["API and proxy"]
  node_api["BuzzHeavier API client<br/>[api.js]"]
  node_worker["Proxy worker<br/>[worker.js]"]
  node_bhapi{{"BuzzHeavier API"}}
  node_uploadhost{{"Upload service"}}
end

node_user(("User"))

node_user -->|"enters key"| node_login
node_login -->|"validates account"| node_bhapi
node_login -->|"submits account"| node_app
node_app -->|"saves credentials"| node_local
node_local -->|"restores credentials"| node_app
node_app -->|"loads and mutates files"| node_api
node_api -.->|"sends API requests"| node_worker
node_worker -->|"forwards API calls"| node_bhapi
node_app -.->|"sends uploads"| node_worker
node_worker -->|"forwards uploads"| node_uploadhost
node_app -->|"renders account"| node_header
node_app -->|"renders path"| node_breadcrumb
node_app -->|"renders controls"| node_toolbar
node_app -->|"passes folder items"| node_stats
node_app -->|"passes sort state"| node_table
node_app -->|"renders filtered items"| node_row
node_row -->|"formats metadata"| node_format
node_app -->|"renders action dialogs"| node_modal
node_user -->|"navigates folders"| node_breadcrumb
node_user -->|"searches and uploads"| node_toolbar
node_user -->|"chooses sort"| node_table
node_user -->|"selects file actions"| node_row
node_user -->|"confirms changes"| node_modal

click node_login "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/LoginScreen.jsx"
click node_app "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/App.jsx"
click node_local "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/hooks/useLocalStorage.js"
click node_header "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/Header.jsx"
click node_breadcrumb "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/Breadcrumb.jsx"
click node_toolbar "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/Toolbar.jsx"
click node_stats "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/StatsBar.jsx"
click node_table "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/TableHeader.jsx"
click node_row "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/FileRow.jsx"
click node_format "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/utils/format.js"
click node_modal "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/Modal.jsx"
click node_api "https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/utils/api.js"
click node_worker "https://github.com/blazertweaks/buzzheavier-manager/blob/main/worker.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_login,node_app,node_local,node_header,node_user toneBlue
class node_breadcrumb,node_toolbar,node_stats,node_table,node_row,node_format toneAmber
class node_modal toneMint
class node_api,node_worker,node_bhapi,node_uploadhost toneRose
```

## Components

### Account access

- [Account login](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/LoginScreen.jsx): `src/components/LoginScreen.jsx`
- [App controller](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/App.jsx): `src/App.jsx`
- [Local credentials](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/hooks/useLocalStorage.js): `src/hooks/useLocalStorage.js`
- [Account header](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/Header.jsx): `src/components/Header.jsx`

### File browsing

- [Folder breadcrumb](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/Breadcrumb.jsx): `src/components/Breadcrumb.jsx`
- [Search and upload](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/Toolbar.jsx): `src/components/Toolbar.jsx`
- [Folder stats](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/StatsBar.jsx): `src/components/StatsBar.jsx`
- [Sort controls](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/TableHeader.jsx): `src/components/TableHeader.jsx`
- [File row](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/FileRow.jsx): `src/components/FileRow.jsx`
- [Display formatting](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/utils/format.js): `src/utils/format.js`

### File operations

- [Action dialogs](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/components/Modal.jsx): `src/components/Modal.jsx`

### API and proxy

- [BuzzHeavier API client](https://github.com/blazertweaks/buzzheavier-manager/blob/main/src/utils/api.js): `src/utils/api.js`
- [Proxy worker](https://github.com/blazertweaks/buzzheavier-manager/blob/main/worker.js): `worker.js`
- **BuzzHeavier API**
- **Upload service**

### Other components

- **User**

## Connections

- User → Account login: enters key
- Account login → BuzzHeavier API: validates account
- Account login → App controller: submits account
- App controller → Local credentials: saves credentials
- Local credentials → App controller: restores credentials
- App controller → BuzzHeavier API client: loads and mutates files
- BuzzHeavier API client → Proxy worker: sends API requests
- Proxy worker → BuzzHeavier API: forwards API calls
- App controller → Proxy worker: sends uploads
- Proxy worker → Upload service: forwards uploads
- App controller → Account header: renders account
- App controller → Folder breadcrumb: renders path
- App controller → Search and upload: renders controls
- App controller → Folder stats: passes folder items
- App controller → Sort controls: passes sort state
- App controller → File row: renders filtered items
- File row → Display formatting: formats metadata
- App controller → Action dialogs: renders action dialogs
- User → Folder breadcrumb: navigates folders
- User → Search and upload: searches and uploads
- User → Sort controls: chooses sort
- User → File row: selects file actions
- User → Action dialogs: confirms changes
