# huagoufdog/fdog-kit architecture

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

## Overview

Fdog-Kit is a Windows Qt desktop toolkit. Its main startup reads configuration, presents first-run activation when needed, then opens the main window; users select among connection, database, ZooKeeper, Thrift, SSH-terminal, utility, and appearance features. The README documents the product capabilities, while sampled source confirms startup and portions of the database, Thrift, and SSH implementations. Several feature modules were not sampled, so their internal call relationships are omitted rather than inferred.

Main entry points: [`Fdog-Kit/main.cpp`](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/main.cpp) (Application startup), [`Fdog-Kit/module_zookeeper/zookeeperhandle.cpp`](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_zookeeper/zookeeperhandle.cpp) (ZooKeeper client), [`Fdog-Kit/module_thrift/thriftwidget.cpp`](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_thrift/thriftwidget.cpp) (Thrift interface tool), [`Fdog-Kit/module_ssh/sshwidget.cpp`](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_ssh/sshwidget.cpp) (SSH terminal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application Shell"]
  node_startup["Application startup<br/>[main.cpp]"]
  node_activation["First-run activation<br/>[activate.cpp]"]
  node_config["Configuration<br/>[config.h]"]
  node_mainwindow["Main window<br/>[mainwindow.cpp]"]
end

subgraph group_connections["Connections and Data"]
  node_connect["Connection manager<br/>[createconnect.cpp]"]
  node_database["Database browser<br/>[databasewidget.cpp]"]
  node_dbservice[("Database server")]
end

subgraph group_remote["Remote Tools"]
  node_ssh["SSH terminal<br/>[sshwidget.cpp]"]
  node_sshlib["libssh2 interface<br/>[libssh2.h]"]
  node_sshtransfer["File transfer<br/>[downloadwidget.h]"]
  node_zkui["ZooKeeper browser"]
  node_zkmanage["Connection management"]
  node_zkhandle["ZooKeeper client"]
  node_zkservice[("ZooKeeper service")]
  node_zkapi["ZooKeeper client API<br/>[zookeeper.h]"]
end

subgraph group_protocol["Protocol Tools"]
  node_thrift["Thrift interface tool<br/>[thriftwidget.cpp]"]
  node_thriftitems["Interface and parameters<br/>[itemwidget.cpp]"]
  node_thriftdata["Preset data"]
  node_thriftservice(("Thrift service"))
end

subgraph group_presentation["Appearance and Utilities"]
  node_settings["Settings<br/>[settingwidget.cpp]"]
  node_themes["Theme styling<br/>[qss.cpp]"]
  node_tools["Small utilities<br/>[toolswidget.cpp]"]
end

node_user(("Desktop user"))

node_user -->|"launches"| node_startup
node_startup -->|"reads settings"| node_config
node_startup -->|"shows if first run"| node_activation
node_startup -->|"opens"| node_mainwindow
node_ssh -->|"uses API"| node_sshlib
node_ssh -.->|"supports transfer"| node_sshtransfer
node_zkui -->|"uses client"| node_zkhandle
node_zkmanage -.->|"manages connections"| node_zkhandle
node_zkhandle -->|"uses API"| node_zkapi
node_zkhandle -.->|"connects to"| node_zkservice
node_thrift -.->|"invokes interfaces"| node_thriftservice
node_thrift -.->|"edits interface data"| node_thriftitems
node_thrift -.->|"loads presets"| node_thriftdata
node_database -.->|"queries"| node_dbservice

click node_startup "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/main.cpp"
click node_activation "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_activate/activate.cpp"
click node_config "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_utils/config.h"
click node_mainwindow "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_mainwindow/mainwindow.cpp"
click node_connect "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_connect/createconnect.cpp"
click node_database "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_database/databasewidget.cpp"
click node_ssh "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_ssh/sshwidget.cpp"
click node_sshlib "https://github.com/huagoufdog/fdog-kit/blob/main/libssh2.11.0/include/libssh2.h"
click node_sshtransfer "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_ssh/downloadwidget.h"
click node_zkui "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_zookeeper/zookeeperwidget.cpp"
click node_zkmanage "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_zookeeper/zookeepermanagewidget.cpp"
click node_zkhandle "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_zookeeper/zookeeperhandle.cpp"
click node_zkapi "https://github.com/huagoufdog/fdog-kit/blob/main/zookeeper/include/zookeeper.h"
click node_thrift "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_thrift/thriftwidget.cpp"
click node_thriftitems "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_thrift/itemwidget.cpp"
click node_thriftdata "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_thrift/prefabricatedata.cpp"
click node_settings "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_setting/settingwidget.cpp"
click node_themes "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_qss/qss.cpp"
click node_tools "https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_tool/toolswidget.cpp"

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_startup,node_activation,node_config,node_mainwindow,node_user toneBlue
class node_connect,node_database,node_dbservice toneAmber
class node_ssh,node_sshlib,node_sshtransfer,node_zkui,node_zkmanage,node_zkhandle,node_zkservice,node_zkapi toneMint
class node_thrift,node_thriftitems,node_thriftdata,node_thriftservice toneRose
class node_settings,node_themes,node_tools toneIndigo
```

## Components

### Application Shell

- [Application startup](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/main.cpp): `Fdog-Kit/main.cpp`
- [First-run activation](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_activate/activate.cpp): `Fdog-Kit/module_activate/activate.cpp`
- [Configuration](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_utils/config.h): `Fdog-Kit/module_utils/config.h`
- [Main window](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_mainwindow/mainwindow.cpp): `Fdog-Kit/module_mainwindow/mainwindow.cpp`

### Connections and Data

- [Connection manager](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_connect/createconnect.cpp): `Fdog-Kit/module_connect/createconnect.cpp`
- [Database browser](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_database/databasewidget.cpp): `Fdog-Kit/module_database/databasewidget.cpp`
- **Database server**

### Remote Tools

- [SSH terminal](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_ssh/sshwidget.cpp): `Fdog-Kit/module_ssh/sshwidget.cpp`
- [libssh2 interface](https://github.com/huagoufdog/fdog-kit/blob/main/libssh2.11.0/include/libssh2.h): `libssh2.11.0/include/libssh2.h`
- [File transfer](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_ssh/downloadwidget.h): `Fdog-Kit/module_ssh/downloadwidget.h`
- [ZooKeeper browser](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_zookeeper/zookeeperwidget.cpp): `Fdog-Kit/module_zookeeper/zookeeperwidget.cpp`
- [Connection management](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_zookeeper/zookeepermanagewidget.cpp): `Fdog-Kit/module_zookeeper/zookeepermanagewidget.cpp`
- [ZooKeeper client](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_zookeeper/zookeeperhandle.cpp): `Fdog-Kit/module_zookeeper/zookeeperhandle.cpp`
- **ZooKeeper service**
- [ZooKeeper client API](https://github.com/huagoufdog/fdog-kit/blob/main/zookeeper/include/zookeeper.h): `zookeeper/include/zookeeper.h`

### Protocol Tools

- [Thrift interface tool](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_thrift/thriftwidget.cpp): `Fdog-Kit/module_thrift/thriftwidget.cpp`
- [Interface and parameters](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_thrift/itemwidget.cpp): `Fdog-Kit/module_thrift/itemwidget.cpp`
- [Preset data](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_thrift/prefabricatedata.cpp): `Fdog-Kit/module_thrift/prefabricatedata.cpp`
- **Thrift service**

### Appearance and Utilities

- [Settings](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_setting/settingwidget.cpp): `Fdog-Kit/module_setting/settingwidget.cpp`
- [Theme styling](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_qss/qss.cpp): `Fdog-Kit/module_qss/qss.cpp`
- [Small utilities](https://github.com/huagoufdog/fdog-kit/blob/main/Fdog-Kit/module_tool/toolswidget.cpp): `Fdog-Kit/module_tool/toolswidget.cpp`

### Other components

- **Desktop user**

## Connections

- Desktop user → Application startup: launches (evidence: `Fdog-Kit/main.cpp`)
- Application startup → Configuration: reads settings (evidence: `Fdog-Kit/main.cpp`)
- Application startup → First-run activation: shows if first run (evidence: `Fdog-Kit/main.cpp`)
- Application startup → Main window: opens (evidence: `Fdog-Kit/main.cpp`)
- SSH terminal → libssh2 interface: uses API (evidence: `Fdog-Kit/module_ssh/sshwidget.cpp`)
- SSH terminal → File transfer: supports transfer (evidence: `Fdog-Kit/module_ssh/sshwidget.cpp`)
- ZooKeeper browser → ZooKeeper client: uses client (evidence: `Fdog-Kit/module_zookeeper/zookeeperwidget.cpp`)
- Connection management → ZooKeeper client: manages connections
- ZooKeeper client → ZooKeeper client API: uses API
- ZooKeeper client → ZooKeeper service: connects to (evidence: `README.md`)
- Thrift interface tool → Thrift service: invokes interfaces (evidence: `README.md`)
- Thrift interface tool → Interface and parameters: edits interface data
- Thrift interface tool → Preset data: loads presets
- Database browser → Database server: queries (evidence: `Fdog-Kit/module_database/databasewidget.cpp`)
