No description
  • PHP 88.9%
  • Blade 9.8%
  • JavaScript 0.9%
  • Dockerfile 0.2%
  • Shell 0.2%
Find a file
Markus Thiel 1a51d9df52
All checks were successful
Tests / phpunit (push) Successful in 1m27s
Build & Push Docker Image / Trigger Portainer redeploy (push) Successful in 0s
Build & Push Docker Image / quality (push) Successful in 1m50s
Build & Push Docker Image / build (push) Successful in 1m44s
SVG-Erkennung: PNG mit SVG-Metadaten nicht mehr verwerfen (0.121.1)
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
2026-10-05 14:26:03 +02:00
.forgejo/workflows CI: Rollout einheitlich nur ueber Tags, Bedingung am Schritt 2026-09-29 20:31:12 +02:00
app SVG-Erkennung: PNG mit SVG-Metadaten nicht mehr verwerfen (0.121.1) 2026-10-05 14:26:03 +02:00
bootstrap v0.34.0: Eigener Dozent:innen-Login - Instructor.user_id Verknuepfung, zweites Filament-Panel /dozent (nur eigene Termine), strikte Panel-Trennung via canAccessPanel; Seite 'Meine Termine' (kommend/vergangen, Anmeldungen, Bewertung) 2026-06-20 00:27:39 +00:00
config SVG-Erkennung: PNG mit SVG-Metadaten nicht mehr verwerfen (0.121.1) 2026-10-05 14:26:03 +02:00
database Apply security audit fixes and update vulnerable dependencies 2026-09-14 18:45:42 +02:00
docker Fix concurrent key bootstrap output and release build triggers 2026-09-14 19:24:25 +02:00
docs fix: handle temporary Livewire connection errors (0.118.2) 2026-09-24 08:49:02 +02:00
lang fix: handle temporary Livewire connection errors (0.118.2) 2026-09-24 08:49:02 +02:00
public fix: handle temporary Livewire connection errors (0.118.2) 2026-09-24 08:49:02 +02:00
resources Benutzermenue: Zusatzpunkte wieder als Eintraege des Aufklappmenues 2026-09-29 19:52:15 +02:00
routes Apply security audit fixes and update vulnerable dependencies 2026-09-14 18:45:42 +02:00
storage v0.1.0: Projekt-Grundgeruest Kurea - Laravel 13 + Filament v5 (gleiche Basis wie Vereo); Domaenenmodell Course/Session/Registration/Attendance/Instructor; Integration-Abstraktion (Local/Vereo-Provider, Manager); CI 2026-06-19 16:41:53 +00:00
tests SVG-Erkennung: PNG mit SVG-Metadaten nicht mehr verwerfen (0.121.1) 2026-10-05 14:26:03 +02:00
.dockerignore Apply security audit fixes and update vulnerable dependencies 2026-09-14 18:45:42 +02:00
.editorconfig v0.1.0: Projekt-Grundgeruest Kurea - Laravel 13 + Filament v5 (gleiche Basis wie Vereo); Domaenenmodell Course/Session/Registration/Attendance/Instructor; Integration-Abstraktion (Local/Vereo-Provider, Manager); CI 2026-06-19 16:41:53 +00:00
.env.example v0.47.0: Feature-Flags / Module (Konfiguration -> Module) - Gutscheine und Kurs-Feedback optional schaltbar (Resource, RelationManager, oeffentliches Formular, Erinnerungsversand), applyFeatures; Doku/ENV ergaenzt 2026-06-20 15:13:11 +00:00
.gitattributes v0.1.0: Projekt-Grundgeruest Kurea - Laravel 13 + Filament v5 (gleiche Basis wie Vereo); Domaenenmodell Course/Session/Registration/Attendance/Instructor; Integration-Abstraktion (Local/Vereo-Provider, Manager); CI 2026-06-19 16:41:53 +00:00
.gitignore v0.1.0: Projekt-Grundgeruest Kurea - Laravel 13 + Filament v5 (gleiche Basis wie Vereo); Domaenenmodell Course/Session/Registration/Attendance/Instructor; Integration-Abstraktion (Local/Vereo-Provider, Manager); CI 2026-06-19 16:41:53 +00:00
.npmrc v0.1.0: Projekt-Grundgeruest Kurea - Laravel 13 + Filament v5 (gleiche Basis wie Vereo); Domaenenmodell Course/Session/Registration/Attendance/Instructor; Integration-Abstraktion (Local/Vereo-Provider, Manager); CI 2026-06-19 16:41:53 +00:00
artisan v0.1.0: Projekt-Grundgeruest Kurea - Laravel 13 + Filament v5 (gleiche Basis wie Vereo); Domaenenmodell Course/Session/Registration/Attendance/Instructor; Integration-Abstraktion (Local/Vereo-Provider, Manager); CI 2026-06-19 16:41:53 +00:00
CHANGELOG.md SVG-Erkennung: PNG mit SVG-Metadaten nicht mehr verwerfen (0.121.1) 2026-10-05 14:26:03 +02:00
composer.json feat: konfigurierbares Zusatzmenue im Benutzermenue (App-Wechsel) mit Icon-Picker + Import/Export 2026-06-24 06:33:48 +00:00
composer.lock Abhaengigkeiten mit Sicherheitshinweisen aktualisieren 2026-10-01 10:09:56 +02:00
docker-compose.build.yml v0.10.0: Deployment-Setup wie Vereo - Dockerfile (FrankenPHP, classic/octane), entrypoint (idempotente Migrations/Admin/APP-KEY-Persistenz), php.ini; docker-compose (App/Worker/Scheduler/Postgres, image-only fuer Portainer) + quickstart/build-Overlays; Forgejo-Workflow baut/pusht :latest und :vX.Y.Z; Commands kurea:version + kurea:ensure-admin; Doku 2026-06-19 22:21:12 +00:00
docker-compose.quickstart.yml v0.11.2: Fester Host-Port im Compose (KUREA_PORT, Default 8080) im app-Service; Quickstart-Overlay vereinfacht (Port jetzt im Haupt-Compose), QUICKSTART_PORT -> KUREA_PORT; Doku 2026-06-19 22:43:59 +00:00
docker-compose.yml Apply security audit fixes and update vulnerable dependencies 2026-09-14 18:45:42 +02:00
Dockerfile v0.46.0: Datensicherung (aus Vereo) - spatie/laravel-backup, Disk 'backups', Konfig-Seite (Zeitplan/Benachrichtigung/manuell/Liste), Scheduler gated, Dockerfile mit postgresql-client-16 2026-06-20 15:10:14 +00:00
package.json fix: handle temporary Livewire connection errors (0.118.2) 2026-09-24 08:49:02 +02:00
phpunit.xml test: APP_KEY in phpunit.xml setzen (hermetische Tests ohne .env) 2026-06-25 08:55:21 +00:00
README.md Apply security audit fixes and update vulnerable dependencies 2026-09-14 18:45:42 +02:00
vite.config.js v0.1.0: Projekt-Grundgeruest Kurea - Laravel 13 + Filament v5 (gleiche Basis wie Vereo); Domaenenmodell Course/Session/Registration/Attendance/Instructor; Integration-Abstraktion (Local/Vereo-Provider, Manager); CI 2026-06-19 16:41:53 +00:00

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
Kursliste Raeume & Ausstattung Kostenuebersicht

Screenshots noch nicht vorhanden? Lege die PNGs unter docs/screenshots/ ab (Dateinamen siehe docs/SCREENSHOTS.md). Bitte nur anonymisierte Demo-Daten verwenden.