Projektstand und Übersicht (Stand 2026-10-16) #33

Open
opened 2026-10-16 05:56:29 +00:00 by Nick.Rosenloecher · 0 comments
Owner

Ziel

Buchungswebsite für das ARTISTA MODELCAMP 2027 (eine Woche in der Villa La Chiesina, Arcidosso, Toskana, 03.05. bis 09.05.2027): deutschsprachige Onepage, echte Buchung mit Stripe (einmalig oder in bis zu drei Raten), Gutscheine für Stammmodels, Kontaktformular für ein Erstgespräch, geschützter Adminbereich. Live unter https://modelcamp.artistasphotography.de, Live-Verkauf noch serverseitig gesperrt.

Architektur

  • Next.js 16 (App Router, Server Components, Standalone-Build), React 19, Tailwind CSS 4, Motion 13, TypeScript strict
  • PostgreSQL 18 mit Prisma 7 (versionierte Migrationen); aller Zustand in der Datenbank, App zustandslos mit 2 Replikaten
  • Stripe Checkout für die erste Zahlung, Stripe Billing (Subscription Schedule) für Folgeraten, signierte Webhooks
  • Worker als Kubernetes-CronJob alle 10 Minuten (Reservierungen, Raten-Abgleich, E-Mail-Postausgang)
  • Better Auth mit Pflicht-2FA für den Adminbereich, AuditLog für alle Aktionen
  • Serverseitige Verkaufsfreigabe: Live-Verkauf erst mit allen elf Bestätigungen im Admin
  • Betrieb im RKE2-Cluster, Namespace artista (gemeinsam mit Artista-Telefonie), Traefik, cert-manager, SMB-Volumes auf der Storage Box, täglicher pg_dump
  • CI in Gitea: lint (mit Audit), typecheck, test, danach zwei Images (artista-modelcamp, artista-modelcamp-tools)

Bereiche

Fertig (geschlossen):

Offen:

  • CI-Build für 9785eb2 rot – CI: Image-Build für 9785eb2 fehlgeschlagen, Lauf neu starten (#20)
  • Rollout des aktuellen Stands (blockiert: Freigabe) – #21
  • Live-Verkauf freischalten (blockiert: Freigaben, Stripe live, SMTP) – #22
  • Rechtstexte (blockiert: Rechtsprüfung) – #23
  • Inhalte nachliefern (blockiert: Material) – #24
  • Datenschutz-Hinweis zur Telefonnummer – #25
  • Wiederherstellung üben, Telefonie-Sicherung klären – #26
  • E2E in der CI und Testkauf auf dem Cluster – #27
  • sitemap.xml und Search Console – #28
  • Tracking: Entscheidung (blockiert) – #29
  • AGENTS.md/CLAUDE.md – #30
  • Doku-Abgleich vom 16.10.2026 committen – #31
  • Inhaber-Aufgaben – #32

Rollout-Stand

  • main: 9785eb2 (15.10.2026), 61 Commits, keine weiteren Branches, keine Pull Requests
  • Belegt ausgerollt: sha-5a88f3d (13.10.2026)
  • Gebaut, nicht belegt ausgerollt: sha-0421d7d (14.10.2026, Abhängigkeits-Fixes und CI-Gate)
  • Nicht gebaut: 9785eb2 (Image-Build fehlgeschlagen, betrifft nur lokale Entwicklung unter Node 24)
  • Live-Verkauf: gesperrt; Testmodus und Vorschau nutzbar

Doku im Repo

  • README.md – Zweck, lokaler Start, Befehle, wo was gepflegt wird
  • docs/ARCHITEKTUR.md – Gestaltung und Entscheidungen ADR-1 bis ADR-9
  • docs/BETRIEB.md – CI, Deployment, Stripe, E-Mail, Worker, Sicherung, Storno
  • k8s/README.md – Manifeste anwenden, neues Image ausrollen, Fehlersuche
  • docs/MEDIEN.md – Dateinamen im Medienverzeichnis
  • docs/OFFENE-PUNKTE.md – fehlende Inhalte und Freigaben
  • docs/TESTS.md – Tests und Einschränkungen
  • Ziel – ursprüngliches Briefing

Link: https://git.encry.de/Nick.Rosenloecher/Artista-Filmcamp

Status

Code: ja (technisch vollständig) · Geprüft: ja (Tests, CI) · Gemergt: ja · Produktiv: ja (Seite live, Verkauf gesperrt)
Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)

## Ziel Buchungswebsite für das ARTISTA MODELCAMP 2027 (eine Woche in der Villa La Chiesina, Arcidosso, Toskana, 03.05. bis 09.05.2027): deutschsprachige Onepage, echte Buchung mit Stripe (einmalig oder in bis zu drei Raten), Gutscheine für Stammmodels, Kontaktformular für ein Erstgespräch, geschützter Adminbereich. Live unter https://modelcamp.artistasphotography.de, Live-Verkauf noch serverseitig gesperrt. ## Architektur - Next.js 16 (App Router, Server Components, Standalone-Build), React 19, Tailwind CSS 4, Motion 13, TypeScript strict - PostgreSQL 18 mit Prisma 7 (versionierte Migrationen); aller Zustand in der Datenbank, App zustandslos mit 2 Replikaten - Stripe Checkout für die erste Zahlung, Stripe Billing (Subscription Schedule) für Folgeraten, signierte Webhooks - Worker als Kubernetes-CronJob alle 10 Minuten (Reservierungen, Raten-Abgleich, E-Mail-Postausgang) - Better Auth mit Pflicht-2FA für den Adminbereich, AuditLog für alle Aktionen - Serverseitige Verkaufsfreigabe: Live-Verkauf erst mit allen elf Bestätigungen im Admin - Betrieb im RKE2-Cluster, Namespace `artista` (gemeinsam mit Artista-Telefonie), Traefik, cert-manager, SMB-Volumes auf der Storage Box, täglicher pg_dump - CI in Gitea: lint (mit Audit), typecheck, test, danach zwei Images (`artista-modelcamp`, `artista-modelcamp-tools`) ## Bereiche Fertig (geschlossen): - [x] Onepage und Gestaltung – #1 - [x] Inhalte: Termin, Ort, Team, Villa-Bilder, Tagesablauf – #2 - [x] Medien aus dem Medienverzeichnis – #3 - [x] Preislogik – #4 - [x] Buchungsstrecke mit Stripe Checkout und Kapazität – #5 - [x] Stripe-Webhooks und Buchungsstatus – #6 - [x] Ratenzahlung über Stripe Billing – #7 - [x] Gutscheine (Stammmodel-Codes) – #8 - [x] Adminbereich mit 2FA, Storno und Erstattung – #9 - [x] Verkaufsfreigabe – #10 - [x] E-Mail-Postausgang und Worker – #11 - [x] Kontaktformular „Erstgespräch“ (Leads) – #12 - [x] Google-Rezensionen – #13 - [x] SEO-Grundlagen – #14 - [x] Sicherheitshärtung – #15 - [x] Docker-Images und CI mit Qualitäts-Gate – #16 - [x] Kubernetes-Deployment – #17 - [x] Tägliche Datenbanksicherung – #18 - [x] Testsuite – #19 Offen: - [ ] CI-Build für `9785eb2` rot – #20 - [ ] Rollout des aktuellen Stands (blockiert: Freigabe) – #21 - [ ] Live-Verkauf freischalten (blockiert: Freigaben, Stripe live, SMTP) – #22 - [ ] Rechtstexte (blockiert: Rechtsprüfung) – #23 - [ ] Inhalte nachliefern (blockiert: Material) – #24 - [ ] Datenschutz-Hinweis zur Telefonnummer – #25 - [ ] Wiederherstellung üben, Telefonie-Sicherung klären – #26 - [ ] E2E in der CI und Testkauf auf dem Cluster – #27 - [ ] sitemap.xml und Search Console – #28 - [ ] Tracking: Entscheidung (blockiert) – #29 - [ ] AGENTS.md/CLAUDE.md – #30 - [ ] Doku-Abgleich vom 16.10.2026 committen – #31 - [ ] Inhaber-Aufgaben – #32 ## Rollout-Stand - `main`: `9785eb2` (15.10.2026), 61 Commits, keine weiteren Branches, keine Pull Requests - Belegt ausgerollt: `sha-5a88f3d` (13.10.2026) - Gebaut, nicht belegt ausgerollt: `sha-0421d7d` (14.10.2026, Abhängigkeits-Fixes und CI-Gate) - Nicht gebaut: `9785eb2` (Image-Build fehlgeschlagen, betrifft nur lokale Entwicklung unter Node 24) - Live-Verkauf: gesperrt; Testmodus und Vorschau nutzbar ## Doku im Repo - `README.md` – Zweck, lokaler Start, Befehle, wo was gepflegt wird - `docs/ARCHITEKTUR.md` – Gestaltung und Entscheidungen ADR-1 bis ADR-9 - `docs/BETRIEB.md` – CI, Deployment, Stripe, E-Mail, Worker, Sicherung, Storno - `k8s/README.md` – Manifeste anwenden, neues Image ausrollen, Fehlersuche - `docs/MEDIEN.md` – Dateinamen im Medienverzeichnis - `docs/OFFENE-PUNKTE.md` – fehlende Inhalte und Freigaben - `docs/TESTS.md` – Tests und Einschränkungen - `Ziel` – ursprüngliches Briefing Link: https://git.encry.de/Nick.Rosenloecher/Artista-Filmcamp ## Status Code: ja (technisch vollständig) · Geprüft: ja (Tests, CI) · Gemergt: ja · Produktiv: ja (Seite live, Verkauf gesperrt) Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)
Nick.Rosenloecher added the prio/hochart/dokustatus/in-arbeit labels 2026-10-16 05:56:30 +00:00
Nick.Rosenloecher pinned this 2026-10-16 05:56:34 +00:00
Sign in to join this conversation.