Lire dans une autre langue : English · Français (ce document).
La mémoire technique d'un atelier électronique : inventaire de composants, modules, outils et consommables ; stock et mouvements ; emplacements hiérarchiques ; documentation attachée ; projets et leur nomenclature.
Ce n'est pas un simple inventaire : l'objectif est de retrouver en un clic, pour n'importe quel composant, son stock, son emplacement, ses datasheets et les projets qui l'utilisent.
ComponentHub est une application de bureau Qt / C++17, native sur
Windows, Linux (x86_64) et Raspberry Pi (ARM64). C'est le projet maître,
détenteur de la base de données de référence de l'atelier - sur un stockage
fiable, sans les limites mémoire de l'ESP32. Un firmware ESP32, développé
désormais dans un dépôt séparé (ComponentHub-ESP32, voisin de celui-ci),
en devient un satellite : terminal mobile de consultation/modification du
stock (scan QR) qui, à terme, consulte la base de cette version bureau. Le
pourquoi de cette séparation est détaillé dans
docs/fr/ADR-0001.
Jamais compilé un programme ? C'est le bon endroit pour commencer - et c'est exactement aussi simple sous Linux/Raspberry Pi que sous Windows (souvent plus rapide). Suivez le guide pas à pas : docs/fr/GETTING_STARTED.md.
Une fois l'application lancée, le mode d'emploi débutant est là : docs/fr/USER_MANUAL.md.
Le cœur métier src/domain/ - entités, services (inventaire,
projets, documents, import/export), CSV - ne dépend ni de Qt ni d'Arduino. Le
firmware ESP32 en possède sa propre copie dans son dépôt : les deux projets,
autrefois issus d'un cœur commun, évoluent maintenant séparément. Cette
séparation en couches (domaine ⟷ stockage ⟷ interface) est décrite dans
docs/fr/ARCHITECTURE.md.
L'application bureau stocke chaque table dans un fichier JSON et sauvegarde tout
l'atelier dans une archive .tar unique.
ComponentHub annonce sa présence sur le réseau local et expose ses métriques
(module morfBeacon), pour être suivi depuis un tableau de bord central, et
vérifie les mises à jour depuis GitHub (module morfUpdate, menu Aide). Ces
modules communs sont inclus dans le projet (third_party/morf/) et compilés dans
l'exécutable - rien d'externe à installer. Voir
docs/fr/SUPERVISION_ET_MAJ.md.
Fiche composant - tout sur un composant (général, caractéristiques, achat/ stock, documents, notes) :
Projets - nomenclature (BOM) et calcul des composants manquants :
Import / Export - sauvegarde complète .tar et CSV par table :
Dépendances : CMake ≥ 3.21, un compilateur C++17, Ninja, Qt 6 (Widgets), nlohmann-json. Guide détaillé et pas à pas (débutant compris) : docs/fr/GETTING_STARTED.md ; référence multi-plateforme : docs/fr/BUILD_DESKTOP.md.
cmake --preset mingw
cmake --build --preset mingw
# -> build-mingw/ComponentHub.exe (DLL Qt + MinGW déployées automatiquement)Sous VS Code : les tâches CMake: Build (MinGW) et ComponentHub: Run
(.vscode/tasks.json) font la même chose en un raccourci.
cmake --preset linux # ou linux-arm64 sur Raspberry Pi
cmake --build --preset linuxLes scripts de packaging sont dans scripts/ :
# Windows : ZIP autonome (exe + DLL + plugins Qt)
powershell -ExecutionPolicy Bypass -File scripts\windows\package-win.ps1
# Linux : paquet Debian (.deb, lié au Qt du système)
scripts/linux/package-deb.sh
# Linux : AppImage autonome (Qt embarqué)
scripts/linux/package-appimage.sh
# Linux : intégration au menu du bureau (binaire déjà compilé)
scripts/linux/install.shLes artefacts sont produits dans dist/.
ComponentHub/
├── CMakeLists.txt application bureau (cible principale)
├── CMakePresets.json presets mingw / linux / linux-arm64 / cross
├── cmake/toolchains/ toolchain de cross-compilation ARM64
├── scripts/{windows,linux}/ compilation VS Code + packaging (zip, deb, AppImage)
├── resources/ app.qrc, thèmes (light/dark), icône (logo.png, app.ico)
├── src/
│ ├── domain/ cœur métier (aucune dépendance Qt/Arduino)
│ ├── ui/ interface Qt (Theme, Icons, pages, dialogues)
│ ├── storage/ dépôts fichier JSON (desktop)
│ ├── platform/ archive .tar, horloge
│ └── main.cpp
├── docs/
│ ├── fr/ documentation (français, langue de référence)
│ ├── en/ index anglais (renvoie vers fr/ pour l'instant)
│ └── pictures/ captures d'écran
├── CONTRIBUTING.md philosophie du projet et règles de contribution
├── VERSION version de l'application bureau
└── LICENSELe firmware ESP32 vit dans un dépôt distinct (
ComponentHub-ESP32) et n'est plus inclus ici.
| Document | Contenu |
|---|---|
| docs/fr/GETTING_STARTED.md | Cloner, installer les outils, compiler et lancer - pas à pas, tous OS, débutant compris |
| docs/fr/USER_MANUAL.md | Mode d'emploi de l'application, pour bien démarrer |
| docs/fr/BUILD_DESKTOP.md | Référence de compilation multi-plateforme |
| docs/fr/ARCHITECTURE.md | Architecture en couches (domaine / stockage / interface) |
| docs/fr/ADR-0001 | Décision : version bureau maître, ESP32 satellite |
| CONTRIBUTING.md | Comment contribuer, règles de portabilité |
| CHANGELOG.md | Historique des versions |
La documentation propre au firmware (architecture embarquée, API REST, WiFi, boot log) vit dans le dépôt
ComponentHub-ESP32.
Distribué sous licence GPL-3.0-only.



