Portable Windows-Anwendung zur automatisierten Erstellung von Themenlisten (Word) und E-Mail-Entwürfen (Outlook) auf Basis einer Excel-Datei.
Das Projekt dient als Arbeitserleichterung für die Begleitung der kaufmännischen Qualifizierung von Personen im BFW Weser-Ems.
- Status: Fertig / abgeschlossen
- Das Projekt wird im Wartungsmodus geführt.
- Änderungswünsche und Erweiterungen bitte ausschließlich über GitHub formulieren:
- Fehler: GitHub Issue „Bug Report"
- Verbesserungen: GitHub Issue „Feature Request"
- Aktuelle Release-Version: siehe
src/version.txtund GitHub Releases. - Empfohlenes Artefakt für Tests und Verteilung: aktuelle Release-Artefakte gemäß Schema
Themenlisten-Helfer_v<version>.zipbzw. die EXE ausdist/. - Word-Vorlagen werden in den Formaten
.docxund.dotmunterstützt. - Onefile-Builds laden eingebettete Ressourcen robust aus dem Bundle und verwenden das EXE-Verzeichnis für laufzeitnahe Dateien.
- einfache Bedienung über GUI
- reproduzierbarer Build als EXE
- klare Trennung von Quellcode, Daten, Assets und Ausgabe
- wartbar und kollaborativ über GitHub
Themenlisten-Helfer/
├── .github/ # Workflows, Issue-/PR-Templates
├── assets/
│ ├── icons/ # ICO-Dateien
│ └── images/ # GUI-Bilder (PNG)
├── data/ # Eingabedateien und Vorlagen
│ ├── Auswahl Teilnehmende zu Lernbereichen.xlsx
│ └── Themenlisten-Vorlagen/
├── docs/ # fachliche Dokumentation und Standards
├── output/
│ └── Themenlisten/ # erzeugte Dateien
├── release/ # veröffentlichte EXE/ZIP-Artefakte
├── scripts/ # optionale Hilfsskripte
│ └── build_tlh.bat # Build-/Release-Skript
├── src/ # Anwendungsquellcode
│ ├── ThemenlistenHelfer_GUI.py # aktueller Einstiegspunkt
│ ├── ThemenlistenHelfer_GUI.spec # PyInstaller-Spec
│ ├── build.ps1 # Build-Entrypoint
│ ├── setup.ps1 # Setup-Entrypoint
│ ├── requirements.txt # Python-Abhängigkeiten
│ └── version.txt # semantische Version
├── build.ps1 # Kompatibilitäts-Entrypoint
├── setup.ps1 # Kompatibilitäts-Entrypoint
└── README.md
- Python-Umgebung einrichten.
- Abhängigkeiten installieren (
src/requirements.txt, empfohlen viasrc/setup.ps1). - Eingabedatei nach
data/Auswahl Teilnehmende zu Lernbereichen.xlsxlegen. - Vorlagen in
data/Themenlisten-Vorlagen/bereitstellen. - App starten über
src/ThemenlistenHelfer_GUI.pyoder EXE verwenden.
- Bevorzugtes Suchmuster:
Themenliste_<Lernbereich>* - Unterstützte Dateitypen:
.docx,.dotm - Bei mehreren passenden Vorlagen wird die erste gültige Datei verwendet.
Der Build läuft über scripts/build_tlh.bat und erzeugt:
- EXE in
dist/ - ZIP-Artefakte in
release/ - automatische Versionserhöhung in
src/version.txt
Historische versionsspezifische Änderungen sind im docs/CHANGELOG.md dokumentiert.
Optionaler Komfortaufruf aus src: src/build.bat (delegiert intern an scripts/build_tlh.bat).
PowerShell-Standardaufruf:
src/build.ps1(primär)build.ps1(Kompatibilitäts-Entrypoint)
- Workflow:
.github/workflows/release.yml - Trigger: Push eines Tags im Format
v*(z. B.v2.4.5) - Ergebnis: Build auf
windows-latest, automatische Release-Notes-Datei unterrelease/RELEASE_NOTES_v<version>.md, ergänzende GitHub Release Notes und Upload von EXE/ZIP/Release Notes als Release-Assets - Ergebnis: Build auf
windows-latest, automatische Release-Notes-Datei unterrelease/RELEASE_NOTES_v<version>.md, ergänzende GitHub Release Notes und Upload vondist-EXE/ZIP/Release Notes als Release-Assets - Release-Titel-Schema:
Themenlisten-Helfer v...(z. B.Themenlisten-Helfer vX.Y.Z) - Guard: Bei Tag-Builds muss
src/version.txtexakt zur Tag-Version passen (z. B.vX.Y.Z↔X.Y.Z), sonst bricht der Workflow mit Fehler ab - Guard: Tags müssen semantisch formatiert sein:
vMAJOR.MINOR.PATCH(z. B.vX.Y.Z) - Guardrail: Falls ein Release versehentlich mit Titelmuster
Release v...erstellt wurde, normalisiert der Workflow den Titel automatisch auf das Produktschema.
Für das aktuelle Release gilt daher: Git-Stand committen, sicherstellen, dass src/version.txt auf die gewünschte Version steht, dann den entsprechenden Tag pushen (z. B. vX.Y.Z).
src/version.txtauf eine Testversion setzen (z. B.X.Y.Z).- Test-Tag erstellen und pushen:
git tag vX.Y.Zgit push origin vX.Y.Z
- In GitHub prüfen:
- Workflow-Lauf unter Actions
- neues Release mit EXE/ZIP unter Releases
- Optional aufräumen (nur bei Test-Tag):
git tag -d vX.Y.Zgit push origin :refs/tags/vX.Y.Z
Folgende Altdateien wurden in die neue Struktur verschoben:
- Icons →
assets/icons/ - GUI-Bild →
assets/images/ - Eingabe-Excel →
data/ - veröffentlichte EXE/ZIP →
release/
Diese README.md im Projektwurzelverzeichnis ist die zentrale Einstiegsdokumentation.
- Benutzer:
docs/DOKUMENTATION_ANWENDER.md - Entwicklung:
docs/DOKUMENTATION_TECHNIK.md - Release:
docs/DOKUMENTATION_RELEASES.md - Diagramme:
docs/DOKUMENTATION_DIAGRAMME.md - Änderungen:
docs/CHANGELOG.md - Beitrag:
docs/CONTRIBUTING.md - Verhaltenskodex:
docs/CODE_OF_CONDUCT.md - Lizenz:
docs/LICENSE
Für Markdown-Dateien gelten projektweit die Regeln aus .markdownlint.json (aktuell MD022 und MD032).
MIT License – Copyright (c) 2026 GoroTech-Tools. Siehe LICENSE für den vollständigen Lizenztext.