# faroukbmiled/boiiiwd architecture

> Architecture diagram of the GitHub repository faroukbmiled/boiiiwd, 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/faroukbmiled/boiiiwd
- Repository: https://github.com/faroukbmiled/boiiiwd

## Overview

BOIIIWD is a desktop Steam Workshop downloader for Black Ops III. Users enter workshop items in the main window, then download them through SteamCMD and install them into the selected game folder; queued downloads use the same download entry point. The library supports browsing and update checks, while settings provide account, theme, and Workshop-to-game transfer options. The README documents capabilities not fully covered by the sampled excerpts; those branches are shown without assuming unverified internal call paths.

Main entry points: [`boiiiwd_package/src/main.py`](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/main.py) (Main window), [`boiiiwd_package/src/settings_tab.py`](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/settings_tab.py) (Settings tab), [`boiiiwd_package/src/library_tab.py`](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/library_tab.py) (Library tab), [`boiiiwd_package/boiiiwd.py`](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/boiiiwd.py) (App launcher)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Desktop interface"]
  node_app["Main window<br/>[main.py]"]
  node_entry["App launcher<br/>[boiiiwd.py]"]
  node_settings_ui["Settings tab<br/>[settings_tab.py]"]
  node_library_ui["Library tab<br/>[library_tab.py]"]
  node_shared["App state<br/>[shared_vars.py]"]
end

subgraph group_downloads["Workshop downloads"]
  node_helpers["Shared helpers<br/>[helpers.py]"]
  node_steamcmd["SteamCMD"]
end

subgraph group_library["Library and transfer"]
  node_library_store[("Library records")]
end

subgraph group_support["Settings and updates"]
  node_config[("User configuration")]
  node_updater["Update checker<br/>[update_window.py]"]
  node_themes["Theme files"]
end

node_user(("User"))
node_steam["Steam Workshop"]
node_game_folder[("Game folder")]
node_steam_folder[("Workshop folder")]
node_release_service["GitHub releases"]

node_user -->|"launches"| node_entry
node_entry -->|"starts app"| node_shared
node_user -->|"submits items"| node_app
node_app -->|"uses helpers"| node_helpers
node_app -->|"runs commands"| node_steamcmd
node_steamcmd -->|"downloads items"| node_steam
node_steamcmd -->|"installs items"| node_game_folder
node_app -->|"selects destination"| node_game_folder
node_user -->|"browses library"| node_library_ui
node_library_ui -->|"reads installed items"| node_game_folder
node_library_ui -->|"reads and writes"| node_library_store
node_library_ui -->|"requests item update"| node_app
node_user -->|"configures app"| node_settings_ui
node_settings_ui -->|"saves settings"| node_config
node_settings_ui -->|"copies or moves items"| node_steam_folder
node_settings_ui -->|"transfers items"| node_game_folder
node_settings_ui -->|"selects theme"| node_themes
node_app -->|"checks updates"| node_updater
node_updater -->|"checks and downloads"| node_release_service

click node_app "https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/main.py"
click node_entry "https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/boiiiwd.py"
click node_settings_ui "https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/settings_tab.py"
click node_library_ui "https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/library_tab.py"
click node_shared "https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/shared_vars.py"
click node_helpers "https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/helpers.py"
click node_updater "https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/update_window.py"
click node_themes "https://github.com/faroukbmiled/boiiiwd/tree/main/boiiiwd_package/resources"

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_app,node_entry,node_settings_ui,node_library_ui,node_shared,node_user toneBlue
class node_helpers,node_steamcmd,node_game_folder,node_steam_folder toneAmber
class node_library_store toneMint
class node_config,node_updater,node_themes toneRose
class node_steam,node_release_service toneIndigo
```

## Components

### Desktop interface

- [Main window](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/main.py): `boiiiwd_package/src/main.py`
- [App launcher](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/boiiiwd.py): `boiiiwd_package/boiiiwd.py`
- [Settings tab](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/settings_tab.py): `boiiiwd_package/src/settings_tab.py`
- [Library tab](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/library_tab.py): `boiiiwd_package/src/library_tab.py`
- [App state](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/shared_vars.py): `boiiiwd_package/src/shared_vars.py`

### Workshop downloads

- [Shared helpers](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/helpers.py): `boiiiwd_package/src/helpers.py`
- **SteamCMD**

### Library and transfer

- **Library records**

### Settings and updates

- **User configuration**
- [Update checker](https://github.com/faroukbmiled/boiiiwd/blob/main/boiiiwd_package/src/update_window.py): `boiiiwd_package/src/update_window.py`
- [Theme files](https://github.com/faroukbmiled/boiiiwd/tree/main/boiiiwd_package/resources): `boiiiwd_package/resources`

### Other components

- **User**
- **Steam Workshop**
- **Game folder**
- **Workshop folder**
- **GitHub releases**

## Connections

- User → App launcher: launches
- App launcher → App state: starts app
- User → Main window: submits items
- Main window → Shared helpers: uses helpers
- Main window → SteamCMD: runs commands
- SteamCMD → Steam Workshop: downloads items
- SteamCMD → Game folder: installs items
- Main window → Game folder: selects destination
- User → Library tab: browses library
- Library tab → Game folder: reads installed items
- Library tab → Library records: reads and writes
- Library tab → Main window: requests item update
- User → Settings tab: configures app
- Settings tab → User configuration: saves settings
- Settings tab → Workshop folder: copies or moves items
- Settings tab → Game folder: transfers items
- Settings tab → Theme files: selects theme
- Main window → Update checker: checks updates
- Update checker → GitHub releases: checks and downloads
