This commit is contained in:
@@ -1,78 +1,8 @@
|
||||
# Papa-Kind-Treff – Chat-Kontext
|
||||
# Projektkontext – Verweis
|
||||
|
||||
Stand: 2026-07-31
|
||||
Die kanonische interne Kontextdokumentation wurde verschoben nach:
|
||||
|
||||
## Kurzbeschreibung
|
||||
Papa-Kind-Treff ist eine PHP-basierte Plattform für Väter. Kernbereiche sind lokale Events, Termine und Treffen, ein Community-Forum, Mitgliederprofile mit optionalen Kinderinfos und ein Moderations-/Adminbereich.
|
||||
- `Internal/de/PROJECT_CONTEXT.md`
|
||||
- `Internal/en/PROJECT_CONTEXT.md`
|
||||
|
||||
## 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.js` und `public/assets/css/app.css`
|
||||
- Avatar-Manager liegt zentral unter `src/App/Avatar/AvatarManager.php`
|
||||
- Die aktiven Styles `Lorelei` und `Croodles` liegen getrennt unter `src/App/Avatar/Lorelei.php` und `src/App/Avatar/Croodles.php`
|
||||
- Die Avatar-Konfiguration liegt in `config/avatar.php`
|
||||
- In `config/avatar.php` sind pro Style auch Beispielpaletten, Komponentenlisten und Beispielprofile dokumentiert
|
||||
- Der Avatar-Endpunkt ist als direkte Datei unter `public/api/avatar.php` angebunden 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`, `Event Suche`, `Community`.
|
||||
- `Events` sind aktuell kein eigener Hauptpunkt mehr; sie 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 Events, Termine und Treffen und werden künftig weiter ausgebaut.
|
||||
- Profilbilder werden aktuell über die Mehr-Style-Architektur serverseitig erzeugt; aktiv sind derzeit `lorelei` und `croodles`.
|
||||
- Beim Style `croodles` startet 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>.svg` abgelegt.
|
||||
- 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`, `Events`, `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 Event-, Termin- und Treff-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 Profilbild` setzt 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_admin` bei aktivem Debug-Modus.
|
||||
|
||||
## Community und Rechte
|
||||
- dekorative Ränge über Punkte
|
||||
- Moderationsrollen:
|
||||
- `forum_admin`
|
||||
- `site_admin`
|
||||
- `owner`
|
||||
- Bewerbungen für Moderation sind vorgesehen bzw. umgesetzt.
|
||||
|
||||
## Recht / Consent
|
||||
- Nicht notwendige Funktionen laufen nicht automatisch los.
|
||||
- Es gibt einen Consent-Manager mit Kategorien:
|
||||
- `analytics`
|
||||
- `external_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`:
|
||||
- `disabled`
|
||||
- `prompt`
|
||||
- `enabled`
|
||||
- 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 `/datenschutz` fü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.txt`
|
||||
- `PROJECT_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.
|
||||
Bitte diese Dateien als Referenz verwenden und bei Änderungen dort pflegen.
|
||||
|
||||
Reference in New Issue
Block a user