No description
- Java 53.2%
- HTML 21.3%
- TypeScript 19.3%
- SCSS 5.3%
- Shell 0.4%
- Other 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- Beim gemeinsamen Start können Personen ausgewählt werden; sie erhalten einen Web-Push „<Name> bleibt gerade dran – machst du mit?" - Backend: FokusService versendet die Einladung (PushAboRepository.fuerPerson + WebPushService); SessionStartBefehl/Resource um einladenPersonIds erweitert - Frontend: Personen-Auswahl im Fokus-Screen (eigene Person ausgeblendet) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
| .claude | ||
| .githooks | ||
| backend | ||
| deploy | ||
| docs | ||
| frontend | ||
| mockups | ||
| .gitignore | ||
| CLAUDE.md | ||
| icon.png | ||
| icon.svg | ||
| icon2.svg | ||
| logo.png | ||
| logo.svg | ||
| logo2.svg | ||
| README.md | ||
Family-Planner
Gemeinsamer Termin- und Aufgabenplaner für unsere Patchwork-Familie (zwei Haushalte). Kalender mit rollenbasierter Sichtbarkeit, Wechselmodell-Anwesenheit, Hessischen Schulferien/Feiertagen, ADHS-freundlicher Aufgabenverwaltung sowie geteilten Listen – als iOS-App mit CalDAV-Integration.
Technischer Überblick
| Baustein | Technologie |
|---|---|
| Backend | Java, Helidon MP (MicroProfile), JPA |
| Datenbank | PostgreSQL |
| Authentifizierung | Keycloak (OIDC / PKCE), MP-JWT |
| Frontend / App | Angular + Ionic / Capacitor (iOS) |
| Kalender-Sync | CalDAV (zunächst lesend), iCalendar (ical4j) |
| Container | rootless podman (compose) |
Projektstruktur
backend/ Helidon-MP-Backend (Schichten: api / application / domain / infrastructure)
frontend/ Angular-+-Ionic-App (Capacitor, iOS)
deploy/ podman-compose, Keycloak-Realm, Reverse-Proxy
docs/ roadmap (Phasen), arc42 (Architektur), adr (Entscheidungen), diataxis (Betrieb/Nutzung)
mockups/ UI-Entwürfe (HTML + PNG)
Schnellstart
Voraussetzungen: podman (rootless). Für die Einzel-Entwicklung zusätzlich Java 21+ und Node 20+.
Gesamtsystem testen (One-Shot)
./deploy/up.sh # baut & startet Postgres, Keycloak, Backend und Web-App
./deploy/down.sh # stoppt alles (mit -v auch Datenvolumes)
Danach:
- App (Web): http://localhost:8082
- Backend: http://localhost:8080/api/ping · http://localhost:8080/health
- Keycloak: http://localhost:8081
Einzeln entwickeln
# Backend bauen/starten
cd backend && ./mvnw package && java -jar target/family-planner-backend.jar
# Frontend starten
cd frontend && npm install && npm start # bzw. "ionic serve"
Details siehe docs/diataxis/ (Betrieb/Nutzung) und docs/arc42/ (Architektur).
Konventionen
- Kommentare und Ausgaben auf Deutsch
- Strikte Schichtentrennung, keine zyklischen Abhängigkeiten
- Tests vor Merge grün (keine Logik ohne Test)
- Architekturentscheidungen als ADR unter
docs/adr/