5.9 KiB
5.9 KiB
Papa-Kind-Treff – Chat-Kontext
Stand: 2026-07-31
Kurzbeschreibung
Papa-Kind-Treff ist eine PHP-basierte Plattform für Väter. Kernbereiche sind lokale Treffen/Events, ein Community-Forum, Mitgliederprofile mit optionalen Kinderinfos und ein Moderations-/Adminbereich.
Technischer Rahmen
- Kein großes Framework, sondern eigener Front-Controller in
public/index.php - Templates unter
partials/ - Geschäftslogik unter
src/App/ - MySQL/MariaDB-Schema in
schema.sql - Globales Frontend vor allem über
public/assets/js/app.jsundpublic/assets/css/app.css - Avatar-Manager liegt zentral unter
src/App/Avatar/AvatarManager.php - Die aktiven Styles
LoreleiundCroodlesliegen getrennt untersrc/App/Avatar/Lorelei.phpundsrc/App/Avatar/Croodles.php - Die Avatar-Konfiguration liegt in
config/avatar.php - In
config/avatar.phpsind pro Style auch Beispielpaletten, Komponentenlisten und Beispielprofile dokumentiert - Der Avatar-Endpunkt ist als direkte Datei unter
public/api/avatar.phpangebunden und laeuft bewusst ohne vollen App-Bootstrap.
Wichtige Produktentscheidungen
- Die Ansprache im Frontend soll immer den aktuellen Nutzer direkt ansprechen.
- Die Hauptnavigation ist bewusst knapp gehalten:
Home,Suche,Community. Termineist aktuell kein eigener Hauptpunkt mehr; Events werden über Startseite und Suche erschlossen.- Die Community ist hierarchisch aufgebaut: Kategorien -> Boards -> Threads -> Posts.
- Moderation ist getrennt vom normalen Community-Frontend in einem eigenen Adminbereich.
- Standortfunktionen sind relevant für lokale Treffen und werden künftig weiter ausgebaut.
- Profilbilder werden aktuell über die Mehr-Style-Architektur serverseitig erzeugt; aktiv sind derzeit
loreleiundcroodles. - Beim Style
croodlesstartet die Basisfarbe standardmaessig weiss; der Hintergrund ist standardmaessig nicht vorbelegt. - Stil, Seed und Varianten werden generisch im Profil gespeichert; das fertige SVG wird lokal pro Benutzer unter
ptk-<userId>.svgabgelegt. - Der Avatar-Editor bietet visuelle Komponenten-Vorschauen statt reiner Text-Dropdowns, laedt nur den aktiven Style/Tab nach, zeigt die Farbfelder direkt im passenden Komponentenabschnitt an und haelt Kopfbereich sowie Komponentenleiste im Modal fixiert.
Navigation / Konto
- Eingeloggte Nutzer sehen rechts ein Profil-Menü statt einzelner
Dashboard-/Logout-Buttons. - Das Profil-Menü enthält aktuell
Profil,Kinder,Termine,Community,Einstellungen,Abmelden. - Der Mitgliederbereich selbst ist als Layout mit linker Bereichsnavigation aufgebaut.
- Kinder koennen im Mitgliederbereich angelegt, nachtraeglich bearbeitet und wieder geloescht werden.
- Wenn ein Geburtsdatum gesetzt ist, wird das Alter im Mitgliederbereich automatisch berechnet und spaeter bei Bedarf anhand des Datums aktualisiert; ohne Geburtsdatum gilt der manuelle Alterswert.
- Sensible Profildaten wie Vorname, Nachname, Telefonnummer, Beruf, Sprachen und Kurzvorstellung werden app-seitig verschluesselt gespeichert; bestehende Klartextwerte werden bei Nutzung schrittweise in den verschluesselten Zustand ueberfuehrt.
- Die Konto-E-Mail wird ebenfalls app-seitig verschluesselt gespeichert; fuer Login, Verifizierung, Passwort-Reset und Dublettenpruefung existiert nur ein separater HMAC-Lookup-Hash.
- Der Hinweis auf die verschluesselte Speicherung personenbezogener Profilangaben ist auf der Datenschutz-Seite jetzt zusaetzlich deutlich hervorgehoben.
- Im Profil koennen jetzt auch Strasse/Hausnummer, PLZ, Ort und Region gepflegt werden; fuer die Adress-Lokalisierung werden die bereits vorhandenen externen Karten-/Geocoding-Dienste wiederverwendet.
- Die Profiladresse bietet jetzt zusaetzlich eine Trefferauswahl fuer die Suche, eine Uebernahme aus dem Browser-Standort und einen kurzen Hinweisdialog zur Relevanz fuer lokale Termin-Hinweise.
- Der Profil-Editor ist jetzt kompakter gegliedert, nutzt ausklappbare Bereiche fuer Basisdaten, Adresse, Sprache/Beruf und Kurzvorstellung und enthaelt die bearbeitbare Konto-E-Mail direkt im Formular.
- Im Profil kann der Nutzer aktuell Komponenten wie Augen, Augenbrauen, Mund, Brille, Haare, Bart und Ohrringe direkt per Vorschaubild auswählen.
- Der Button
Random Profilbildsetzt Seed und Varianten des aktiven Styles zufaellig neu und aktualisiert die Vorschau sofort. - Beim Oeffnen des Avatar-Generators wird nur der aktive Style-/Komponenten-Tab geladen; weitere Varianten werden erst beim Wechsel nachgeladen.
- Debug ist kein Menüpunkt und erscheint nur als Floating-Käfer für
site_adminbei aktivem Debug-Modus.
Community und Rechte
- dekorative Ränge über Punkte
- Moderationsrollen:
forum_adminsite_adminowner
- Bewerbungen für Moderation sind vorgesehen bzw. umgesetzt.
Recht / Consent
- Nicht notwendige Funktionen laufen nicht automatisch los.
- Es gibt einen Consent-Manager mit Kategorien:
analyticsexternal_services
- Matomo wird nur nach Analyse-Einwilligung geladen.
- Externe Karten-/Standortdienste und lokale Standortspeicherung hängen an
external_services. - Zusätzlich gibt es eine Standortpräferenz im Bereich
Einstellungen:disabledpromptenabled
- Im Einstellungsbereich werden außerdem Browser-Grenzen erklärt: Die Browser-Freigabe selbst kann nicht von der Website gesetzt oder aufgehoben werden.
- Es gibt eine eigene Seite
/datenschutzfür Datenschutz- und Cookie-Hinweise sowie einen Footer-Link auf die Consent-Einstellungen. - Fuer Distanz- und Umkreissuchen bleiben nur die erforderlichen Standortkoordinaten im Klartext gespeichert; die eigentliche Strasse/Hausnummer ist verschluesselt.
Doku-Regel
Bei jeder künftigen Änderung müssen mindestens diese Dateien mitgeprüft werden:
README.md.projektstructure.txtPROJECT_CONTEXT.md
Wenn Cookies, LocalStorage, SessionStorage, Tracking, Geolocation oder Drittanbieter neu hinzukommen oder geändert werden, müssen zusätzlich Consent und rechtliche Hinweise angepasst werden.