- PHP 78.9%
- Blade 20.6%
- Dockerfile 0.2%
- Shell 0.2%
- BoardPost::bodyHtml(): renders content blocks; legacy plaintext stays safe (escaped + nl2br) - SchwarzesBrett page: body input switched to Filament RichEditor with ContentBlocks::editor() (title/category/expiry stay lightweight inline) - View renders bodyHtml() instead of raw text - Tests: post with block, legacy plaintext still renders (6 total) |
||
|---|---|---|
| .forgejo/workflows | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| docker | ||
| docs | ||
| lang/vendor/backup | ||
| public | ||
| resources | ||
| routes | ||
| storage | ||
| tests | ||
| .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 | ||
Entra
Intranet fuer Mitglieder von Vereinen und Verbaenden. Entra buendelt interne Inhalte (Beitraege/News, spaeter Dokumente, Kalender und Gruppenbereiche) in einer eigenstaendigen Anwendung und ergaenzt damit die natec-Suite (Vereo, Eveni, Kurea, Persona). Mitgliederdaten bleiben in Vereo; Entra konsumiert sie perspektivisch per API und teilt sich die Identitaet ueber Keycloak (SSO).
Module (Stand 0.x)
- Mitglieder-Intranet (
/intranet) — eigenes Filament-Panel fuer alle angemeldeten Benutzer: Start (angeheftete + aktuelle Beitraege), Beitraege mit Detailseite, Kalender, Dokumente, Profilseite; Anmeldung per E-Mail/Passwort oder Keycloak (optional mit Auto-Provisionierung). Benutzermenue mit "Meine Daten" (Link ins Vereo-Portal, konfigurierbar) und "Verwaltung" (nur fuer Benutzer mit Rollen). - Beitraege — interne News/Ankuendigungen mit Entwurf/Veroeffentlichung, Anriss, Rich-Text-Inhalt und Anheften.
- Dokumente — Ordner-basierte Ablage mit Karten-Ansicht, Thumbnails und Inline-Vorschau (Bild/Video/Audio/PDF). Sichtbarkeits-Schalter; Dateien liegen auf der Files-Disk (lokal/S3).
- Kalender — Termine mit Ort, Beginn/Ende oder ganztaegig; im Intranet nach Tagen gruppiert mit deutschen Wochentagen.
- Gruppen — Gremien/AGs mit Mitglieder-Zuordnung; Beitraege, Termine und Dokument-Ordner lassen sich auf eine Gruppe einschraenken ("Sichtbar fuer").
- Meine Dateien — persoenliche Dokumente je Mitglied (Bescheinigungen, Zertifikate); nur die Empfaengerin/der Empfaenger sieht sie im Intranet.
- Globale Suche — ein Suchfeld ueber Beitraege, Termine, Dokumente und Meine Dateien; respektiert Sichtbarkeit und Gruppen.
- Benachrichtigungen — Glocke (und optional E-Mail) bei neuen Beitraegen, respektiert Gruppen-Sichtbarkeit; Opt-out je Mitglied im Profil.
- Reaktionen & Kommentare — Daumen/Herz und Kommentare auf Beitraegen; je Beitrag abschaltbar, Kommentare in der Verwaltung moderierbar.
- Umfragen — optionale informelle Umfrage je Beitrag; Ergebnis als Balken nach der eigenen Stimme (rechtsverbindliche Abstimmungen bleiben in Vereo).
- Gruppen-Raeume — je Gremium eine Seite mit dessen Beitraegen, Terminen, Dokumenten und Mitgliedern; erreichbar ueber "Meine Gruppen".
- Mitgliederverzeichnis — freiwilliges Opt-in mit feldweiser Freigabe (E-Mail/Telefon/Kurzbeschreibung); nur zugestimmte Mitglieder sind sichtbar.
- Wissensdatenbank — Artikel in Kategorien (Rich-Text), gruppen-sichtbar und in die globale Suche eingebunden.
- Onboarding — Willkommens-Checkliste fuer neue Mitglieder auf der Startseite; abhakbar, ausblendbar und selbst-erledigend.
- Beitragsstatistik — anonymer Aufrufzaehler je Beitrag (einmal pro Sitzung), sichtbar in der Verwaltung.
- PWA — installierbar auf Homescreen/Desktop, gebrandete App-Icons, eigenes App-Fenster und Offline-Grundgeruest.
- Konfiguration — Branding, Allgemein, E-Mail, SSO (Keycloak), Dateispeicher (lokal/S3), Datensicherung, Benutzermenue, Audit- und Mail-Log.
- Benutzer & Rollen — RBAC (spatie/laravel-permission), Rollen
super_adminundredaktion;entra:ensure-rbaclegt Rollen/Berechtigungen idempotent an.
Geplant
- Siehe docs/ROADMAP.md
- Mitgliederverzeichnis (Opt-in) mit Live-Daten aus Vereo
Stack
Laravel 13, Filament v5, PostgreSQL 16, FrankenPHP, Docker Compose (Portainer).
Details zum Betrieb: docker-compose.yml (Registry-Image) bzw.
docker-compose.build.yml (lokaler Build). Der Entrypoint erzeugt beim ersten
Start APP_KEY und optional den initialen Admin (ADMIN_EMAIL/ADMIN_PASSWORD).
Entwicklung
composer install
cp .env.example .env && php artisan key:generate
php artisan migrate --seed
php artisan serve
Tests: php artisan test (SQLite in-memory). Code-Stil: vendor/bin/pint --dirty.