70 lines
4.1 KiB
Markdown
70 lines
4.1 KiB
Markdown
# Papa-Kind-Treff
|
|
|
|
Updated: 2026-08-10
|
|
|
|
Papa-Kind-Treff is a PHP-based platform for fathers focused on local events, appointments, and meetups, community exchange, and a protected member area.
|
|
|
|
## Scope
|
|
- discover local events, appointments, and meetups
|
|
- community/forum with categories, boards, threads, and replies
|
|
- member area for profile, optional child information, and own events
|
|
- community moderation with a role model
|
|
|
|
## Current State
|
|
- landing page with hero, event search, event carousel, community preview, and member-area block
|
|
- community with board navigation and separate thread view
|
|
- community admin area for applications, reports, roles, and migrations
|
|
- location-based ordering for the newest events
|
|
- member area with left-side section navigation
|
|
- profile menu with `Profile`, `Children`, `Events`, `Places & Events`, `Community`, `Settings`
|
|
- account emails and sensitive profile fields are stored encrypted application-side
|
|
- children can be created, edited, and deleted
|
|
- profile address supports encrypted street/house number, address search, browser import, and validation
|
|
- system section for site admins with maintenance and service toggles
|
|
- new data foundation prepared for a broader event, place, and listing system
|
|
- member area `Events` is now limited again to real own events and event participations
|
|
- own events now support an optional description, explicit child suitability, optional capacity, an optional image, and either a database-backed location or a custom address
|
|
- when an own event uses a database-backed location, address and category are shown as informational values and are not edited directly inside the event
|
|
- when a user creates a new place or event-style listing from inside an own event, the flow returns to that event afterwards and preselects the newly created entry
|
|
- places and other event-style entries were moved for now into a separate member-area section `Places & Events`
|
|
- new places and event-style entries must be approved by an admin before publication; change and deletion wishes also run as reasoned requests
|
|
- the member-area entry forms now follow a progressive approach: required fields first, optional data inside collapsible sections
|
|
- categories now use a search input with existing suggestions; new categories are created automatically and can be merged by site admins in the system area
|
|
- the `Events` area now also includes an ICS download and a personal subscribable calendar feed for all own events and event participations
|
|
|
|
## Core Wording Rule
|
|
- Primary product term: `Events`
|
|
- Secondary SEO/explanatory terms: `Appointments`, `Meetups`
|
|
|
|
## Tech
|
|
- entry point: `public/index.php`
|
|
- templates: `partials/`
|
|
- application logic: `src/App/`
|
|
- assets: `public/assets/`
|
|
- database schema: `Internal/db/schema.sql`
|
|
- new base classes: `src/App/SystemSettings.php`, `src/App/ListingCatalog.php`
|
|
|
|
## Privacy and Security
|
|
- password hashes via Argon2id
|
|
- account emails are encrypted and additionally addressed through a separate HMAC lookup hash
|
|
- personal calendar-feed tokens are stored encrypted and additionally resolved through a separate SHA-256 lookup hash
|
|
- profile fields such as first name, last name, street/house number, phone number, profession, languages, and short bio are encrypted
|
|
- location coordinates (`lat`, `lng`) remain plaintext where technically required for distance and radius search
|
|
- non-essential analytics and third-party services are only active after consent
|
|
|
|
## Documentation Rule
|
|
Whenever project behavior or structure changes, review and update:
|
|
- `Internal/de/README.md`
|
|
- `Internal/de/PROJECT_CONTEXT.md`
|
|
- `Internal/de/PROJECT_STRUCTURE.md`
|
|
- matching English files under `Internal/en/`
|
|
|
|
## Parallel DE / EN Maintenance
|
|
- Documentation in `Internal/de/` and `Internal/en/` must remain fully parallel in content.
|
|
- German and English are both binding internal references.
|
|
- The root `README.md` remains the fixed start document for new chats and must be reviewed when core project assumptions change.
|
|
|
|
## Root Rule
|
|
- In the root directory, only `README.md` remains as the content entry point for new chats.
|
|
- Former root documentation files were moved to `Internal/archive/legacy-root-files/`.
|