# abraham-ny/feedbacktool architecture

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

- Interactive diagram: https://gitdiagram.com/abraham-ny/feedbacktool
- Repository: https://github.com/abraham-ny/feedbacktool

## Overview

FeedbackTooll is a portable desktop companion for collecting feedback and checking application updates, callable by another application in GUI or headless mode. Its main workflow parses command-line options, dispatches to feedback submission or update checking, and reports results in the interface or console. The README also describes optional update download/install, but the sampled updater only reports that an update was downloaded; it does not show download or installation logic. The graph follows sampled call paths; unsampled XAML details are not inferred.

Main entry points: [`FeedbackTooll/App.xaml.cs`](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/App.xaml.cs) (Startup and CLI), [`FeedbackTooll/MainWindow.xaml.cs`](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/MainWindow.xaml.cs) (Main window), [`FeedbackTooll/Updater.cs`](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/Updater.cs) (Update checker), [`FeedbackTooll/Feedback.cs`](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/Feedback.cs) (Feedback sender)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_app["Startup and CLI<br/>[App.xaml.cs]"]
end

subgraph group_experience["User experience"]
  node_window["Main window<br/>[MainWindow.xaml.cs]"]
  node_devtool["Developer tool<br/>[Devtool.xaml.cs]"]
end

subgraph group_operations["Feedback and updates"]
  node_updater["Update checker<br/>[Updater.cs]"]
  node_feedback["Feedback sender<br/>[Feedback.cs]"]
end

subgraph group_services["External services"]
  node_updateapi(("Update API"))
  node_feedbackapi(("Feedback API"))
  node_connectivity(("Connectivity probe"))
  node_console(("Console output"))
end

node_integrator(("Calling application"))

node_integrator -->|"launches with arguments"| node_app
node_app -->|"opens GUI"| node_window
node_app -->|"dispatches update"| node_updater
node_app -->|"dispatches feedback"| node_feedback
node_app -->|"probes internet"| node_connectivity
node_app -->|"writes status"| node_console
node_window -->|"dispatches update"| node_updater
node_window -->|"dispatches feedback"| node_feedback
node_window -->|"opens on F12"| node_devtool
node_window -->|"probes internet"| node_connectivity
node_updater -->|"requests release data"| node_updateapi
node_updater -->|"writes status"| node_console
node_feedback -->|"POSTs feedback"| node_feedbackapi
node_feedback -->|"writes status"| node_console

click node_app "https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/App.xaml.cs"
click node_window "https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/MainWindow.xaml.cs"
click node_devtool "https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/Devtool.xaml.cs"
click node_updater "https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/Updater.cs"
click node_feedback "https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/Feedback.cs"

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 toneBlue
class node_window,node_devtool toneAmber
class node_updater,node_feedback toneMint
class node_updateapi,node_feedbackapi,node_connectivity,node_console toneRose
class node_integrator toneIndigo
```

## Components

### Application entry

- [Startup and CLI](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/App.xaml.cs): `FeedbackTooll/App.xaml.cs`

### User experience

- [Main window](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/MainWindow.xaml.cs): `FeedbackTooll/MainWindow.xaml.cs`
- [Developer tool](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/Devtool.xaml.cs): `FeedbackTooll/Devtool.xaml.cs`

### Feedback and updates

- [Update checker](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/Updater.cs): `FeedbackTooll/Updater.cs`
- [Feedback sender](https://github.com/abraham-ny/feedbacktool/blob/main/FeedbackTooll/Feedback.cs): `FeedbackTooll/Feedback.cs`

### External services

- **Update API**
- **Feedback API**
- **Connectivity probe**
- **Console output**

### Other components

- **Calling application**

## Connections

- Calling application → Startup and CLI: launches with arguments
- Startup and CLI → Main window: opens GUI
- Startup and CLI → Update checker: dispatches update
- Startup and CLI → Feedback sender: dispatches feedback
- Startup and CLI → Connectivity probe: probes internet
- Startup and CLI → Console output: writes status
- Main window → Update checker: dispatches update
- Main window → Feedback sender: dispatches feedback
- Main window → Developer tool: opens on F12
- Main window → Connectivity probe: probes internet
- Update checker → Update API: requests release data
- Update checker → Console output: writes status
- Feedback sender → Feedback API: POSTs feedback
- Feedback sender → Console output: writes status
