# dailybarid/hwcheck architecture

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

## Overview

HWCheck is a bootable USB toolkit for interactively inspecting a used laptop, recording hardware-check results, and producing a purchase verdict and report. The principal workflow is user → launcher/checker → hardware checks → verdict and report saved to the stick. Most inspection domains and report handling live in one sampled Python module, so they share its path. The README documents the wider check coverage; sampled source excerpts do not expose every check’s call wiring, so the domain links below reflect the documented checker workflow rather than internal function-level calls.

Main entry points: [`hwcheck/hwcheck.py`](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py) (HWCheck runner), [`hwcheck/RUN-HWCHECK.sh`](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/RUN-HWCHECK.sh) (Run launcher), [`hwcheck/i18n.py`](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/i18n.py) (Translation layer), [`hwcheck/lang`](https://github.com/dailybarid/hwcheck/tree/main/hwcheck/lang) (EN FR AR catalogs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Run entry"]
  node_launcher["Run launcher<br/>[RUN-HWCHECK.sh]"]
  node_checker["HWCheck runner<br/>[hwcheck.py]"]
end

subgraph group_checks["Hardware checks"]
  node_identity["Identity checks<br/>[hwcheck.py]"]
  node_cpu["CPU and thermals<br/>[hwcheck.py]"]
  node_memory["Memory checks<br/>[hwcheck.py]"]
  node_storage["Storage checks<br/>[hwcheck.py]"]
  node_battery["Battery checks<br/>[hwcheck.py]"]
  node_display["Display checks<br/>[hwcheck.py]"]
  node_audio["Audio checks<br/>[hwcheck.py]"]
  node_keyboard["Keyboard checks<br/>[hwcheck.py]"]
  node_touchpad["Touchpad checks<br/>[hwcheck.py]"]
  node_camera["Camera checks<br/>[hwcheck.py]"]
  node_network["Network checks<br/>[hwcheck.py]"]
  node_usb["USB checks<br/>[hwcheck.py]"]
  node_sensors["Sensor checks<br/>[hwcheck.py]"]
  node_chassis["Chassis checks<br/>[hwcheck.py]"]
  node_extras["Peripheral checks<br/>[hwcheck.py]"]
end

subgraph group_results["Assessment and reports"]
  node_verdict["Purchase verdict<br/>[hwcheck.py]"]
  node_report["HTML text JSON reports<br/>[hwcheck.py]"]
  node_usb_reports["USB report files"]
end

subgraph group_language["Localization"]
  node_i18n["Translation layer<br/>[i18n.py]"]
  node_catalogs["EN FR AR catalogs"]
end

node_buyer(("Laptop buyer"))
node_laptop["Target laptop"]

node_buyer -->|"starts"| node_launcher
node_launcher -->|"runs"| node_checker
node_buyer -->|"answers prompts"| node_checker
node_checker -->|"runs checks"| node_identity
node_checker -->|"runs checks"| node_cpu
node_checker -->|"runs checks"| node_memory
node_checker -->|"runs checks"| node_storage
node_checker -->|"runs checks"| node_battery
node_checker -->|"runs checks"| node_display
node_checker -->|"runs checks"| node_audio
node_checker -->|"runs checks"| node_keyboard
node_checker -->|"runs checks"| node_touchpad
node_checker -->|"runs checks"| node_camera
node_checker -->|"runs checks"| node_network
node_checker -->|"runs checks"| node_usb
node_checker -->|"runs checks"| node_sensors
node_checker -->|"runs checks"| node_chassis
node_checker -->|"runs checks"| node_extras
node_identity -->|"reads hardware"| node_laptop
node_cpu -->|"reads hardware"| node_laptop
node_memory -->|"reads hardware"| node_laptop
node_storage -->|"reads hardware"| node_laptop
node_battery -->|"reads hardware"| node_laptop
node_display -->|"tests hardware"| node_laptop
node_audio -->|"tests hardware"| node_laptop
node_keyboard -->|"tests hardware"| node_laptop
node_touchpad -->|"tests hardware"| node_laptop
node_camera -->|"tests hardware"| node_laptop
node_network -->|"reads hardware"| node_laptop
node_usb -->|"tests hardware"| node_laptop
node_sensors -->|"reads hardware"| node_laptop
node_chassis -->|"inspects hardware"| node_laptop
node_extras -->|"reads hardware"| node_laptop
node_checker -->|"assesses results"| node_verdict
node_verdict -->|"sets report outcome"| node_report
node_checker -->|"renders reports"| node_report
node_report -->|"writes files"| node_usb_reports
node_checker -->|"translates interface"| node_i18n
node_i18n -->|"loads messages"| node_catalogs

click node_launcher "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/RUN-HWCHECK.sh"
click node_checker "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_identity "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_cpu "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_memory "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_storage "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_battery "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_display "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_audio "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_keyboard "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_touchpad "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_camera "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_network "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_usb "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_sensors "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_chassis "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_extras "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_verdict "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_report "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py"
click node_i18n "https://github.com/dailybarid/hwcheck/blob/main/hwcheck/i18n.py"
click node_catalogs "https://github.com/dailybarid/hwcheck/tree/main/hwcheck/lang"

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_launcher,node_checker toneBlue
class node_identity,node_cpu,node_memory,node_storage,node_battery,node_display,node_audio,node_keyboard,node_touchpad,node_camera,node_network,node_usb,node_sensors,node_chassis,node_extras toneAmber
class node_verdict,node_report,node_usb_reports toneMint
class node_i18n,node_catalogs toneRose
class node_buyer,node_laptop toneIndigo
```

## Components

### Run entry

- [Run launcher](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/RUN-HWCHECK.sh): `hwcheck/RUN-HWCHECK.sh`
- [HWCheck runner](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`

### Hardware checks

- [Identity checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [CPU and thermals](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Memory checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Storage checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Battery checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Display checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Audio checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Keyboard checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Touchpad checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Camera checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Network checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [USB checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Sensor checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Chassis checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [Peripheral checks](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`

### Assessment and reports

- [Purchase verdict](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- [HTML text JSON reports](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/hwcheck.py): `hwcheck/hwcheck.py`
- **USB report files**

### Localization

- [Translation layer](https://github.com/dailybarid/hwcheck/blob/main/hwcheck/i18n.py): `hwcheck/i18n.py`
- [EN FR AR catalogs](https://github.com/dailybarid/hwcheck/tree/main/hwcheck/lang): `hwcheck/lang`

### Other components

- **Laptop buyer**
- **Target laptop**

## Connections

- Laptop buyer → Run launcher: starts
- Run launcher → HWCheck runner: runs
- Laptop buyer → HWCheck runner: answers prompts
- HWCheck runner → Identity checks: runs checks
- HWCheck runner → CPU and thermals: runs checks
- HWCheck runner → Memory checks: runs checks
- HWCheck runner → Storage checks: runs checks
- HWCheck runner → Battery checks: runs checks
- HWCheck runner → Display checks: runs checks
- HWCheck runner → Audio checks: runs checks
- HWCheck runner → Keyboard checks: runs checks
- HWCheck runner → Touchpad checks: runs checks
- HWCheck runner → Camera checks: runs checks
- HWCheck runner → Network checks: runs checks
- HWCheck runner → USB checks: runs checks
- HWCheck runner → Sensor checks: runs checks
- HWCheck runner → Chassis checks: runs checks
- HWCheck runner → Peripheral checks: runs checks
- Identity checks → Target laptop: reads hardware
- CPU and thermals → Target laptop: reads hardware
- Memory checks → Target laptop: reads hardware
- Storage checks → Target laptop: reads hardware
- Battery checks → Target laptop: reads hardware
- Display checks → Target laptop: tests hardware
- Audio checks → Target laptop: tests hardware
- Keyboard checks → Target laptop: tests hardware
- Touchpad checks → Target laptop: tests hardware
- Camera checks → Target laptop: tests hardware
- Network checks → Target laptop: reads hardware
- USB checks → Target laptop: tests hardware
- Sensor checks → Target laptop: reads hardware
- Chassis checks → Target laptop: inspects hardware
- Peripheral checks → Target laptop: reads hardware
- HWCheck runner → Purchase verdict: assesses results
- Purchase verdict → HTML text JSON reports: sets report outcome
- HWCheck runner → HTML text JSON reports: renders reports
- HTML text JSON reports → USB report files: writes files
- HWCheck runner → Translation layer: translates interface
- Translation layer → EN FR AR catalogs: loads messages
