48 lines
3.3 KiB
Markdown
48 lines
3.3 KiB
Markdown
# Papa-Kind-Treff – Projektkontext
|
||
|
||
Stand: 2026-08-04
|
||
|
||
## 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.
|
||
|
||
## Wichtige Produktentscheidungen
|
||
- Die Hauptnavigation ist bewusst knapp gehalten: `Home`, `Event Suche`, `Community`.
|
||
- `Events` ist der Primärbegriff im Produkt.
|
||
- `Termine` und `Treffen` werden ergänzend in SEO- und Erklärungstexten genutzt.
|
||
- Die Community ist hierarchisch aufgebaut: Kategorien -> Boards -> Threads -> Posts.
|
||
- Moderation ist vom normalen Community-Frontend getrennt.
|
||
- Standortfunktionen sind relevant für lokale Events, Termine und Treffen.
|
||
- Die bestehende `events`-Logik bleibt zunächst aktiv, wird aber künftig von einer allgemeineren Listing-/Ort-/Termin-Struktur abgelöst.
|
||
- Seiten-Admins erhalten eine eigene System-Sektion für globale Betriebs- und Diensteschalter.
|
||
|
||
## Konto / Mitgliederbereich
|
||
- Profil-Menü aktuell: `Profil`, `Kinder`, `Events`, `Community`, `Einstellungen`, `Abmelden`
|
||
- Kinder können angelegt, bearbeitet und gelöscht werden.
|
||
- Wenn ein Geburtsdatum gesetzt ist, wird das Alter automatisch berechnet und später bei Bedarf aktualisiert.
|
||
- Die Konto-E-Mail wird app-seitig verschlüsselt gespeichert und über einen separaten HMAC-Lookup-Hash adressiert.
|
||
- Profiladresse kann per Suche oder Browser-Standort übernommen werden.
|
||
- Im Bereich `Events` gibt es jetzt drei Eintragstypen: eigenes Event, Ort und sonstige Veranstaltung.
|
||
- Die Eingabe im Bereich `Events` soll so einfach wie möglich bleiben und zeigt deshalb zuerst nur Pflichtangaben.
|
||
- Kategorien werden im Mitgliederbereich nicht mehr per Select gewählt, sondern per Sucheingabe mit bestehenden Vorschlägen und automatischer Neuanlage gepflegt.
|
||
- Eigene Events unterstützen Kategorie, optionales Bild, Ja/Nein-Angabe `Mit Kindern`, optionale Platzzahl und Sichtbarkeit.
|
||
- `Ort` nutzt die gleiche Adresslogik wie das Profil, blendet den Event-Termin aus und erlaubt stattdessen flexible Öffnungs-/Zeitfenster, optionale Kontaktangaben und flexible Preisregeln.
|
||
- `Sonstige Veranstaltung` nutzt ebenfalls die Profil-Adresslogik, unterstützt Wiederholungen, ein Pflichtfeld `Gültig bis`, flexible Preisregeln, Bild-Upload und die Angabe `Mit Kindern`.
|
||
|
||
## Technischer Rahmen
|
||
- eigener Front-Controller in `public/index.php`
|
||
- Templates unter `partials/`
|
||
- Geschäftslogik unter `src/App/`
|
||
- Globales Frontend vor allem über `public/assets/js/app.js` und `public/assets/css/app.css`
|
||
|
||
## Neue Ausbaustufe: Termin-/Ort-System
|
||
- Neue Tabellenbasis: `listing_places`, `listings`, `listing_occurrences`, `listing_prices`, `listing_benefits`, `listing_categories`
|
||
- Ziel: spätere Unterscheidung zwischen eigenem Event, Partner-Angebot, allgemeinem Ort und redaktionellem Termin
|
||
- Google ist noch nicht aktiv integriert; das System wird nur vorbereitend über Settings und Datenfelder darauf ausgelegt
|
||
|
||
## Pflegehinweis
|
||
Bei Änderungen immer auch die parallelen Dateien in `Internal/en/` prüfen und inhaltlich gleichziehen.
|
||
|
||
## Dokumentationsprinzip
|
||
- `Internal/de/` und `Internal/en/` werden bewusst parallel gepflegt.
|
||
- Die Root-`README.md` dient als Start-Doku für neue Chats und muss bei grundlegenden Änderungen ebenfalls mitgeprüft werden.
|