No description
  • PHP 89%
  • JavaScript 8.5%
  • HTML 1.1%
  • Makefile 0.6%
  • CSS 0.6%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Stefan Lindecke 41be5f7387
Some checks failed
Thunderbird-Client Tests / Lint + Unit-Tests (make check) (push) Has been cancelled
Thunderbird-Client: Sidebar per Popup-Fenster, Forgejo-CI, v0.1.1
- manifest.json: sidebar_action (existiert in Thunderbird nicht, siehe
  IMPLEMENTIERUNGSPLAN.md) ersetzt durch action-Knopf + toggleSidebarWindow()
  in background/index.js, das ein eigenständiges Popup-Fenster öffnet/schließt.
- test/manifestKeys.test.mjs: neuer Regressionstest, der manifest.json gegen
  die WebExtension-Schemas einer lokal installierten Thunderbird-Version prüft
  (hätte den sidebar_action-Fehler automatisiert erkannt).
- .forgejo/workflows/thunderbird-client-tests.yml: Forgejo-Actions-Workflow,
  der make check (Lint + Unit-Tests) bei Änderungen in clients/thunderbird
  ausführt.
- Version auf 0.1.1 angehoben.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 12:32:10 +02:00
.forgejo/workflows Thunderbird-Client: Sidebar per Popup-Fenster, Forgejo-CI, v0.1.1 2026-09-25 12:32:10 +02:00
clients/thunderbird Thunderbird-Client: Sidebar per Popup-Fenster, Forgejo-CI, v0.1.1 2026-09-25 12:32:10 +02:00
docs Initial commit: symCRM server, Thunderbird client and docs 2026-09-25 11:52:04 +02:00
server Initial commit: symCRM server, Thunderbird client and docs 2026-09-25 11:52:04 +02:00
agents.md Initial commit: symCRM server, Thunderbird client and docs 2026-09-25 11:52:04 +02:00
README.md Initial commit: symCRM server, Thunderbird client and docs 2026-09-25 11:52:04 +02:00
TODO.md Initial commit: symCRM server, Thunderbird client and docs 2026-09-25 11:52:04 +02:00

symcrm

Arbeitstitel

symcrm – schlankes, Symfony-basiertes CRM mit Thunderbird-Integration.

Ziel

symcrm bildet Kunden, Kontakte, Vorgänge, Kommunikation, Aufgaben, Termine, Notizen und Dokumente ab. Thunderbird dient als tägliche Kommunikationsoberfläche. Eine Thunderbird-WebExtension verbindet E-Mails über eigene X-*-Header eindeutig mit CRM-Vorgängen.

Primärer Anwendungsfall: beisetzung.digital und die Begleitung von Angehörigen bei Themen rund um digitale Nachlassangelegenheiten.

Dokumentation

  1. docs/01-Lastenheft.md – fachliche Anforderungen
  2. docs/02-Technische-Architektur.md – Systemarchitektur und Komponenten
  3. docs/03-Datenmodell.md – Entities und Beziehungen
  4. docs/04-API-Spezifikation.md – REST API
  5. docs/05-X-Header-Konzept.md – E-Mail-Korrelation
  6. docs/06-Zuordnungsalgorithmus.md – Erkennung und Zuordnung eingehender Nachrichten
  7. docs/07-Umsetzungsplan.md – Phasenplan
  8. TODO.md – abhakbare Aufgabenliste zum aktuellen Stand

Server

Der REST-API-Server liegt in server/ (Symfony 7.4, PHP 8.5, MariaDB 11.8, DDEV).

cd server
ddev start
ddev composer install
ddev exec php bin/console doctrine:migrations:migrate --no-interaction
ddev exec php bin/console symcrm:user:create admin@example.test "Admin" --admin
ddev exec php bin/console symcrm:token:create admin@example.test "Erster Token"

Der ausgegebene Token wird als Authorization: Bearer <token> an /api/v1/... gesendet. API-Dokumentation unter /api/doc (Swagger UI) bzw. /api/doc.json. Alle Qualitätsprüfungen zusammen: ddev composer qa (Code-Style, PHPStan Level max, PHPUnit).

Thunderbird-Client

Die WebExtension liegt in clients/thunderbird/ (siehe IMPLEMENTIERUNGSPLAN.md für Architektur und Umsetzungsstatus).

cd clients/thunderbird
make check    # Syntax-/Manifest-Lint + Unit-Tests
make package  # erzeugt dist/symcrm-thunderbird-<version>.zip

Zum manuellen Testen in Thunderbird: about:debugging → Dieses Thunderbird → Temporäres Add-on laden → manifest.json wählen. Server-URL und API-Token werden anschließend über die Add-on-Einstellungen (options_ui) gesetzt.

Empfohlene Reihenfolge

  1. Symfony-Projekt und Security
  2. Datenmodell und Migrationen
  3. REST API
  4. Thunderbird Extension mit Sidebar
  5. X-Header und Mail-Zuordnung
  6. Kommunikationshistorie
  7. Aufgaben/Termine
  8. Dokumente
  9. Audit, Datenschutz und Backup
  10. Tests und produktiver Rollout

Grundprinzipien

  • Symfony als fachlicher Kern
  • API-first
  • Thunderbird als Kommunikationsclient
  • E-Mail-Adressen sind nicht die primäre Identität eines Vorgangs
  • UUID/ULID statt fortlaufender interner IDs
  • X-Header als Korrelation, nicht als alleinige Wahrheit
  • nachvollziehbare Zuordnungsentscheidungen
  • Datenschutz und Datenminimierung
  • keine Abhängigkeit von einem einzelnen Mailclient