76 lines
5.1 KiB
Markdown
76 lines
5.1 KiB
Markdown
# Papa-Kind-Treff
|
|
|
|
Stand: 2026-08-10
|
|
|
|
Papa-Kind-Treff ist eine PHP-basierte Plattform für Väter mit Fokus auf lokale Events, Termine und Treffen, Community-Austausch und einen geschützten Mitgliederbereich.
|
|
|
|
## Produktumfang
|
|
- lokale Events, Termine und Treffen finden
|
|
- Community/Forum mit Kategorien, Boards, Threads und Antworten
|
|
- Mitgliederbereich für Profil, optionale Kinderinfos und eigene Events
|
|
- Community-Moderation mit Rollenmodell
|
|
|
|
## Aktueller Stand
|
|
- Startseite mit Hero, Event-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
|
|
- standortbasierte Sortierung für die neuesten Events
|
|
- Mitgliederbereich mit linker Bereichsnavigation
|
|
- Profilmenü oben rechts mit `Profil` sowie für Berechtigte `Admin-Einstellungen`
|
|
- Profilbereich für persönliche Angaben, Kinder, eigene Events, eigene Orte und Veranstaltungen, Einstellungen und Community-Informationen
|
|
- Separater Admin-Bereich für Profil-Levels, Kategorien, System-Einstellungen sowie Moderation und Freigaben von Orten und Veranstaltungen
|
|
- Admin-Unterbereiche bleiben im selben Dashboard-Layout getrennt: Freigaben zeigen nur noch nicht veröffentlichte Orte und Veranstaltungen, Community-Moderation nur offene Bewerbungen und Meldungen, User Management enthält Rollen und System-Levels, System enthält die Community-Migration.
|
|
- Konto-E-Mails sowie sensible Profilfelder werden app-seitig verschlüsselt gespeichert
|
|
- Kinder können angelegt, bearbeitet und gelöscht werden
|
|
- Profiladresse mit verschlüsselter Straße/Hausnummer, Adresssuche, Browser-Übernahme und Validierung
|
|
- System-Sektion für Seiten-Admins mit Wartungs- und Diensteschaltern
|
|
- neue Datenbasis für ein späteres Termin-, Ort- und Veranstaltungssystem angelegt
|
|
- Mitgliederbereich `Events` ist wieder auf echte eigene Events und Event-Teilnahmen fokussiert
|
|
- Eigene Events haben jetzt optionalen Beschreibungstext, klare Kinderangabe, optionale Platzzahl, optionales Bild sowie eine Location aus Datenbank oder benutzerdefinierte Adresse
|
|
- Bei eigener Event-Location aus der Datenbank werden Adresse und Kategorie nur informativ übernommen und nicht direkt im Event geändert
|
|
- Der Zwischenschritt vom eigenen Event zum Anlegen eines neuen Orts oder einer neuen Veranstaltung springt danach wieder in das Event zurück und wählt den neuen Eintrag direkt aus
|
|
- Orte und sonstige Veranstaltungen wurden vorerst in einen separaten Bereich `Orte & Veranstaltungen` verschoben
|
|
- Neue Orte und Veranstaltungen müssen vor Veröffentlichung erst durch einen Admin freigegeben werden; Änderungs- und Löschwünsche laufen ebenfalls nur als begründete Anfrage
|
|
- Noch nicht veröffentlichte Orts- und Veranstaltungsvorschläge können im Mitgliederbereich direkt weiterbearbeitet werden
|
|
- `SiteOwner` übernimmt bei Orts- und Veranstaltungsanfragen vollständig die Freigaberechte von `Forum-Admin`
|
|
- Die Eingabemasken sind jetzt progressiv aufgebaut: erst Pflichtangaben, optionale Daten in einklappbaren Bereichen
|
|
- Kategorien laufen jetzt über eine Sucheingabe mit bestehenden Vorschlägen; neue Kategorien werden automatisch angelegt und können im Systembereich von Seiten-Admins zusammengeführt werden
|
|
- Im Bereich `Events` gibt es jetzt zusätzlich einen ICS-Download und einen persönlichen abonnierbaren Kalender-Feed für alle eigenen Events und Event-Teilnahmen
|
|
|
|
## Wording-Regel
|
|
- Primärbegriff im Produkt: `Events`
|
|
- Ergänzende SEO-/Erklärbegriffe: `Termine`, `Treffen`
|
|
- Navigation, Buttons und Kern-UI verwenden konsequent `Events`
|
|
|
|
## Technik
|
|
- Einstieg: `public/index.php`
|
|
- Templates: `partials/`
|
|
- App-Logik: `src/App/`
|
|
- Assets: `public/assets/`
|
|
- Datenbankschema: `Internal/db/schema.sql`
|
|
- neue Basisklassen: `src/App/SystemSettings.php`, `src/App/ListingCatalog.php`
|
|
|
|
## Datenschutz und Sicherheit
|
|
- Passwort-Hashes über Argon2id
|
|
- Konto-E-Mails verschlüsselt plus separater HMAC-Lookup-Hash
|
|
- persönliche Kalender-Feed-Tokens verschlüsselt plus separater SHA-256-Lookup-Hash
|
|
- Profilfelder wie Vorname, Nachname, Straße/Hausnummer, Telefonnummer, Beruf, Sprachen und Kurzvorstellung verschlüsselt
|
|
- Standortkoordinaten (`lat`, `lng`) bleiben für Distanz- und Umkreissuchen technisch im Klartext
|
|
- nicht notwendige Analyse- und Drittanbieterfunktionen erst nach Einwilligung aktiv
|
|
|
|
## Dokumentationspflicht bei Änderungen
|
|
Bei jeder Änderung im Projekt mitprüfen und bei Bedarf aktualisieren:
|
|
- `Internal/de/README.md`
|
|
- `Internal/de/PROJECT_CONTEXT.md`
|
|
- `Internal/de/PROJECT_STRUCTURE.md`
|
|
- die parallelen englischen Dateien unter `Internal/en/`
|
|
|
|
## Parallelpflege DE / EN
|
|
- Die Dokumentation in `Internal/de/` und `Internal/en/` ist inhaltlich vollständig parallel zu halten.
|
|
- Deutsch und Englisch sind beide verbindliche interne Referenzen.
|
|
- Die Root-`README.md` im Hauptordner bleibt der feste Einstieg für neue Chats und verweist auf diese Struktur.
|
|
|
|
## Root-Regel
|
|
- Im Root liegt für neue Chats inhaltlich nur noch die `README.md` als Einstieg.
|
|
- Frühere Root-Dokumente wurden nach `Internal/archive/legacy-root-files/` verschoben.
|