- PHP 89%
- JavaScript 8.5%
- HTML 1.1%
- Makefile 0.6%
- CSS 0.6%
- Other 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
Thunderbird-Client Tests / Lint + Unit-Tests (make check) (push) Has been cancelled
- 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> |
||
| .forgejo/workflows | ||
| clients/thunderbird | ||
| docs | ||
| server | ||
| agents.md | ||
| README.md | ||
| TODO.md | ||
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
docs/01-Lastenheft.md– fachliche Anforderungendocs/02-Technische-Architektur.md– Systemarchitektur und Komponentendocs/03-Datenmodell.md– Entities und Beziehungendocs/04-API-Spezifikation.md– REST APIdocs/05-X-Header-Konzept.md– E-Mail-Korrelationdocs/06-Zuordnungsalgorithmus.md– Erkennung und Zuordnung eingehender Nachrichtendocs/07-Umsetzungsplan.md– PhasenplanTODO.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
- Symfony-Projekt und Security
- Datenmodell und Migrationen
- REST API
- Thunderbird Extension mit Sidebar
- X-Header und Mail-Zuordnung
- Kommunikationshistorie
- Aufgaben/Termine
- Dokumente
- Audit, Datenschutz und Backup
- 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