Files
papa-kind-treff.info/README.md
Lars Gebhardt-Kusche 92442a57c7
All checks were successful
Deploy / deploy (push) Successful in 53s
Dastenschutz
2026-07-31 21:10:17 +02:00

5.3 KiB

Papa-Kind-Treff

Stand: 2026-07-31

Papa-Kind-Treff ist eine PHP-basierte Plattform für Väter mit Fokus auf lokale Treffen, Community-Austausch und einen geschützten Mitgliederbereich.

Produktumfang

  • lokale Events und Treffen finden
  • Community/Forum mit Kategorien, Boards, Threads und Antworten
  • Mitgliederbereich für Profil, optionale Kinderinfos und eigene Termine
  • Community-Moderation mit Rollenmodell

Aktueller Stand

  • Startseite mit Hero, Suche, Event-Karussell, Community-Vorschau und Mitgliederbereichs-Block
  • Community mit Board-Navigation und separater Thread-Ansicht
  • Community-Admin-Bereich für Bewerbungen, Meldungen, Rollen und Migration
  • Impressum, Datenschutz-&-Cookies-Seite und Über-uns
  • standortbasierte Sortierung für die neuesten Treffen
  • eigener Einstellungsbereich für Standortfreigabe, Browser-Hinweise und Consent-Verwaltung
  • modernes Avatar-System mit zentraler Mehr-Style-Architektur auf Basis von DiceBear
  • aktive Avatar-Styles aktuell: lorelei und croodles; weitere Styles können über config/avatar.php freigeschaltet werden
  • Profilbild-Generator mit visueller Komponenten-Auswahl, generischem Style-/Seed-/Config-Speichermodell, Style-Wechsel und komponentenbezogenen Farbfeldern pro Style; im Modal bleiben Kopfbereich und Komponentenleiste fixiert, waehrend nur die Variantenliste scrollt
  • beim Style croodles startet die Basisfarbe standardmaessig weiss; der Hintergrund ist standardmaessig leer/ohne Vorgabe
  • jedes gespeicherte Profilbild wird als lokale Benutzer-SVG unter public/assets/avatars/users/ptk-<userId>.svg abgelegt
  • config/avatar.php enthaelt jetzt pro Style auch explizite Beispielpaletten, Farbgruppen pro Komponente und Beispielprofile als Einbindungsreferenz
  • Consent-Manager für Analyse und externe Dienste
  • Navigation aktuell mit Home, Suche, Community
  • eingeloggte Nutzer sehen rechts ein Profil-Menü mit Direktlinks zu Profil, Kinder, Termine, Community, Einstellungen
  • der Mitgliederbereich ist als Seitenlayout mit linker Bereichsnavigation aufgebaut
  • im Bereich Kinder koennen vorhandene Eintraege jetzt auch nachtraeglich bearbeitet und geloescht werden
  • bei Kindern mit Geburtsdatum wird das Alter automatisch berechnet und bei Aufruf des Mitgliederbereichs bei Bedarf jaehrlich nachgezogen; ohne Geburtsdatum gilt das manuell gepflegte Alter
  • sensible Profildaten werden im Mitgliederbereich jetzt konsequent app-seitig verschluesselt gespeichert; bestehende Klartextwerte werden beim Lesen schrittweise in den verschluesselten Zustand ueberfuehrt
  • der Hinweis auf die verschluesselte Speicherung personenbezogener Profilangaben ist jetzt auch auf der Datenschutz-Seite deutlich hervorgehoben
  • das Profil unterstuetzt jetzt eine vollstaendige Adresse mit verschluesselter Strasse/Hausnummer sowie optionaler Adress-Lokalisierung ueber die bereits vorhandenen Karten-/Geocoding-Dienste
  • bei der Profiladresse gibt es jetzt eine Trefferauswahl fuer Adresssuche, eine Uebernahme aus dem Browser-Standort sowie einen mobilen Hinweisdialog, warum die Adresse fuer lokale Termine relevant ist
  • Debug-Floating-Button nur für site_admin im Debug-Modus

Technik

  • Einstieg: public/index.php
  • Templates: partials/
  • App-Logik: src/App/
  • Assets: public/assets/
  • Datenbankschema: schema.sql

Rollen

  • forum_admin
  • site_admin
  • owner

Die Rechteverteilung und Community-Logik sind in src/App/CommunityAccess.php abgebildet. Die zentrale Avatar-Verwaltung liegt in src/App/Avatar/AvatarManager.php. Die aktuell aktiven Styles liegen in src/App/Avatar/Lorelei.php und src/App/Avatar/Croodles.php. Die Style-/Storage-Konfiguration liegt in config/avatar.php. Der direkte Avatar-Endpunkt liegt in public/api/avatar.php. Die visuelle Avatar-Auswahl sitzt im Dashboard-Modal in partials/landing/account/dashboard.php. Beim Oeffnen des Generators werden nur die Varianten des aktuell aktiven Styles und Tabs geladen; weitere Varianten werden erst beim Wechsel nachgeladen. Farbfelder werden pro Style direkt im Generator gepflegt und zusammen mit Stil und Seed im Profil gespeichert.

Der aktuelle Code nutzt oder kann nutzen:

  • notwendige Session-/Client-Cookies
  • Matomo (analytics)
  • Browser-Geolocation (external_services)
  • lokale Standortspeicherung via Cookie, localStorage, sessionStorage (external_services)
  • Leaflet von unpkg.com (external_services)
  • OpenStreetMap Nominatim (external_services)
  • DiceBear fuer serverseitig erzeugte Profilbilder; das Ergebnis wird lokal als Benutzer-SVG gespeichert

Wichtig:

  • Nicht notwendige Analyse- und Drittanbieterfunktionen dürfen erst nach Einwilligung aktiv werden.
  • Änderungen an Cookies, Tracking oder Drittanbietern müssen immer auch in Consent und rechtlichen Hinweisen nachgezogen werden.

Dokumentationspflicht bei Änderungen

Bei jeder Änderung im Projekt immer mitprüfen und bei Bedarf aktualisieren:

  • README.md
  • .projektstructure.txt
  • PROJECT_CONTEXT.md

Zusätzlich bei neuen Cookies, Tracking-Mechanismen oder Drittanbietern:

  • Consent-Manager anpassen
  • rechtliche Hinweise/Datenschutztexte ergänzen
  • technische Opt-in-/Opt-out-Logik prüfen

Dateien für neue Chats

Für spätere Chats als Einstieg besonders wichtig:

  • README.md
  • .projektstructure.txt
  • PROJECT_CONTEXT.md