- PHP 88.9%
- Blade 9.8%
- JavaScript 0.9%
- Dockerfile 0.2%
- Shell 0.2%
|
All checks were successful
Ein PNG aus einem Vektorprogramm traegt "<svg" in seinem XMP-Metadatenblock. Svg::looksLikeSvg() suchte die Zeichenfolge irgendwo in den ersten 4 KB, hielt die Datei fuer ein SVG und schickte sie durch den Sanitizer - der bei einem Rasterbild null liefert. Das Bild fehlte danach ohne Fehlermeldung. Die Erkennung wertet jetzt nur noch den Dateianfang. Magic Bytes von PNG, JPEG, GIF, WebP, BMP, TIFF und PDF schliessen SVG aus; vor einem <svg> duerfen nur XML-Deklaration, Kommentare und DOCTYPE stehen. Svg::istSvg() bewertet Inhalt und Content-Type zusammen. Derselbe Fehler trat in Eveni auf (0.378.1): Dort fehlten Event-Logo und Hintergrundgrafik auf gedruckten Namensschildern. Der Baustein ist in allen Werkzeugen derselbe. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GH42FE3UD2ht9qvNWRReDK |
||
|---|---|---|
| .forgejo/workflows | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| docker | ||
| docs | ||
| lang | ||
| public | ||
| resources | ||
| routes | ||
| storage | ||
| tests | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| artisan | ||
| CHANGELOG.md | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.build.yml | ||
| docker-compose.quickstart.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| package.json | ||
| phpunit.xml | ||
| README.md | ||
| vite.config.js | ||
Kurea
Kurs- und Eventverwaltung für Vereine und Einrichtungen — Anmeldung, Termine, Kapazität/Warteliste, Teilnahme, Dozenten und Zertifikate. Kurea läuft eigenständig; eine Vereo-Instanz kann optional angebunden werden, um Kontakte und Abrechnung (Konto/Sphäre → DATEV/EÜR) zu delegieren.
Betriebsmodi
- Standalone (
KUREA_INTEGRATION=local): voller Betrieb, eigene Preise, eigene Zahlung über Stripe und einfache Belege — ohne Buchhaltungstiefe. - Verknüpft (
KUREA_INTEGRATION=vereo): Angebote binden an eine Vereo-Katalog-Leistung; Teilnehmer werden zu Vereo-Kontakten (mit Herkunftskennzeichnung), Abrechnung erzeugt Vereo-Rechnungen/Buchungen. Lokal erfasste Zahlungen werden abgeglichen.
Stack
Laravel 13, Filament v5, PostgreSQL 16, FrankenPHP/Octane — gleiche Basis und Release-/CI-Konventionen wie Vereo.
Integration-Abstraktion
App\Integration\Contracts\IntegrationProvider mit LocalProvider (Standalone) und
VereoProvider (Vereo-API für Kontakte, Rechnungen und Zahlungen). Der IntegrationManager
wählt den Provider anhand config('kurea.integration.driver').
Stand
Kurse und Termine, Einzel-/Gruppenbuchung, Warteliste, Teilnehmerportal, Anwesenheit, Mehrfachkarten, Gutscheine, Zahlungen und Zertifikate sind implementiert. Neue Buchungen speichern ihren vereinbarten Gesamtpreis. Bei Vereo-Anbindung liegt die Rechnungshoheit bei Vereo; Rechnung und Zahlungsledger vor Korrekturen abgleichen. Storno einer Anmeldung ist keine automatische Erstattung. Überzahlungen vollständig prüfen und Rückzahlungen im tatsächlich verwendeten Zahlungssystem ausführen.
Die lokale Audit-Überarbeitung ist noch nicht veröffentlicht. Vor einem gemeinsamen Update Vereo zuerst aktualisieren; Details und Testgrenzen stehen im Umsetzungsbericht.
Screenshots
Ein visueller Überblick. Die vollständige Galerie findest du in docs/SCREENSHOTS.md.
| Kursliste | Raeume & Ausstattung | Kostenuebersicht |
|---|---|---|
![]() |
![]() |
![]() |
Screenshots noch nicht vorhanden? Lege die PNGs unter
docs/screenshots/ab (Dateinamen siehedocs/SCREENSHOTS.md). Bitte nur anonymisierte Demo-Daten verwenden.


