# ayeldev/toolers architecture

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

- Interactive diagram: https://gitdiagram.com/ayeldev/toolers
- Repository: https://github.com/ayeldev/toolers

## Overview

Toolers is a Java Swing desktop tool for organizing Git repositories and task folders. Its visible workflow starts with directory/user setup, then the main window lists repositories and tasks; users can clone repositories or create task folders with selected screenshot/attachment subfolders, then browse or manage those entries. The graph reflects the supplied excerpts and tree; several UI actions and the broader directory service behavior are only partially sampled, so uncertain connections are omitted.

Main entry points: [`src/main/java/com/toolkit/toolers/Dialog/CreateRepoPanel.java`](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Dialog/CreateRepoPanel.java) (Clone form), [`src/main/java/com/toolkit/toolers/BaseFrame.java`](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/BaseFrame.java) (Main window), [`src/main/java/com/toolkit/toolers/Services/DirectoryServices.java`](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Services/DirectoryServices.java) (Directory services), [`src/main/java/com/toolkit/toolers/Services/ConfigService.java`](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Services/ConfigService.java) (Config service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Desktop UI"]
  node_setup["Setup window<br/>[Toolers.java]"]
  node_main["Main window<br/>[BaseFrame.java]"]
  node_repoform["Clone form"]
  node_taskform["Task form"]
  node_imageview["Image task view"]
  node_actions["Row action controls<br/>[PanelAction.java]"]
  node_taskactions["Task row controls"]
end

subgraph group_work["Repo and task work"]
  node_directories["Directory services"]
  node_gitclone["Git clone service<br/>[GitServices.java]"]
  node_progress["Clone progress data<br/>[RepoProgress.java]"]
end

subgraph group_state["Configuration and files"]
  node_config["Config service<br/>[ConfigService.java]"]
  node_properties[("User properties")]
end

node_user(("User"))
node_gitremote(("Git remote"))
node_filesystem[("Local directories")]
node_ssh[("SSH host keys")]

node_user -->|"starts setup"| node_setup
node_user -->|"uses"| node_main
node_setup -->|"loads and saves"| node_config
node_setup -->|"opens"| node_main
node_main -->|"reads settings"| node_config
node_main -->|"loads listings"| node_directories
node_main -->|"opens task form"| node_taskform
node_main -->|"opens clone form"| node_repoform
node_main -.->|"opens task view"| node_imageview
node_repoform -->|"reads repo root"| node_config
node_repoform -->|"starts clone"| node_gitclone
node_repoform -->|"clones from"| node_gitremote
node_repoform -->|"creates repo directory"| node_filesystem
node_repoform -->|"refreshes listing"| node_directories
node_repoform -.->|"reports progress as"| node_progress
node_taskform -->|"reads settings"| node_config
node_taskform -->|"creates task folders"| node_filesystem
node_taskform -->|"saves task root"| node_config
node_directories -->|"reads and manages"| node_filesystem
node_directories -->|"saves settings"| node_config
node_actions -->|"dispatches row actions"| node_directories
node_taskactions -.->|"dispatches task actions"| node_directories
node_directories -.->|"fetches repository"| node_gitremote
node_gitclone -->|"writes clone"| node_filesystem
node_config -->|"loads and saves"| node_properties
node_repoform -->|"checks host key"| node_ssh

click node_setup "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Toolers.java"
click node_main "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/BaseFrame.java"
click node_repoform "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Dialog/CreateRepoPanel.java"
click node_taskform "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Dialog/CreateTaskPanel.java"
click node_imageview "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Dialog/ImageTaskPanel.java"
click node_actions "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/cell/PanelAction.java"
click node_taskactions "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/cell/PanelTaskAction.java"
click node_directories "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Services/DirectoryServices.java"
click node_gitclone "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Services/GitServices.java"
click node_progress "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/pojo/RepoProgress.java"
click node_config "https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Services/ConfigService.java"

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_setup,node_main,node_repoform,node_taskform,node_imageview,node_actions,node_taskactions,node_user toneBlue
class node_directories,node_gitclone,node_progress,node_filesystem,node_ssh toneAmber
class node_config,node_properties toneMint
class node_gitremote toneIndigo
```

## Components

### Desktop UI

- [Setup window](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Toolers.java): `src/main/java/com/toolkit/toolers/Toolers.java`
- [Main window](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/BaseFrame.java): `src/main/java/com/toolkit/toolers/BaseFrame.java`
- [Clone form](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Dialog/CreateRepoPanel.java): `src/main/java/com/toolkit/toolers/Dialog/CreateRepoPanel.java`
- [Task form](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Dialog/CreateTaskPanel.java): `src/main/java/com/toolkit/toolers/Dialog/CreateTaskPanel.java`
- [Image task view](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Dialog/ImageTaskPanel.java): `src/main/java/com/toolkit/toolers/Dialog/ImageTaskPanel.java`
- [Row action controls](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/cell/PanelAction.java): `src/main/java/com/toolkit/toolers/cell/PanelAction.java`
- [Task row controls](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/cell/PanelTaskAction.java): `src/main/java/com/toolkit/toolers/cell/PanelTaskAction.java`

### Repo and task work

- [Directory services](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Services/DirectoryServices.java): `src/main/java/com/toolkit/toolers/Services/DirectoryServices.java`
- [Git clone service](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Services/GitServices.java): `src/main/java/com/toolkit/toolers/Services/GitServices.java`
- [Clone progress data](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/pojo/RepoProgress.java): `src/main/java/com/toolkit/toolers/pojo/RepoProgress.java`

### Configuration and files

- [Config service](https://github.com/ayeldev/toolers/blob/main/src/main/java/com/toolkit/toolers/Services/ConfigService.java): `src/main/java/com/toolkit/toolers/Services/ConfigService.java`
- **User properties**

### Other components

- **User**
- **Git remote**
- **Local directories**
- **SSH host keys**

## Connections

- User → Setup window: starts setup
- User → Main window: uses
- Setup window → Config service: loads and saves
- Setup window → Main window: opens
- Main window → Config service: reads settings
- Main window → Directory services: loads listings
- Main window → Task form: opens task form
- Main window → Clone form: opens clone form
- Main window → Image task view: opens task view
- Clone form → Config service: reads repo root
- Clone form → Git clone service: starts clone
- Clone form → Git remote: clones from
- Clone form → Local directories: creates repo directory
- Clone form → Directory services: refreshes listing
- Clone form → Clone progress data: reports progress as
- Task form → Config service: reads settings
- Task form → Local directories: creates task folders
- Task form → Config service: saves task root
- Directory services → Local directories: reads and manages
- Directory services → Config service: saves settings
- Row action controls → Directory services: dispatches row actions
- Task row controls → Directory services: dispatches task actions
- Directory services → Git remote: fetches repository
- Git clone service → Local directories: writes clone
- Config service → User properties: loads and saves
- Clone form → SSH host keys: checks host key
