ClaudeandClaude Sonnet 5.5 23ab43f9fe Datenschutz Weg B nach Prüfung: Zusagen auf den Dienst begrenzt, [OFFEN]-Markierungen, Upload-Sperren
Abschnitt 11: Sperre und Kürzung ab dem Lesen unserer Antwort, nur je Beitrag und E-Mail-Adresse (neues Gesuch = neuer Beitrag);
aussortierte Anfragen 30 Tage; feste Ausschlussliste der Websuche samt robots.txt; Kriterium für die Dauer der Reste; Kopie der
Standardvertragsklauseln; Hinweis in der ersten Nachricht nennt den Widerspruch; Abschnitt 11 und 14: die KI sortiert aus, ein
Mitarbeiter entscheidet über jede Antwort. Alarm-Postfach-Anbieter und Aufbewahrung der Server-Sicherungen stehen als sichtbare
[OFFEN]-Markierung im Text (auch in Abschnitt 12).

Tests: Pins angepasst, Markierungen nur die zwei erlaubten, neuer Test für Zusagen in Reichweite des Dienstes. Upload-Skript bricht ab,
solange eine [OFFEN]-Markierung steht oder die Prüfsumme neben dem PDF nicht zur HTML passt.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 13:57:18 +00:00
2026-05-22 23:51:20 +02:00

Webklar Kundenbereich

Kundenportal für Website-Projekte. Liest ausschließlich aus woms-database auf ticket.webklar.com (Ticketsystem). Es gibt keine eigene Portal-Datenbank mehr.

  • Keine Kundenanlage im Portal
  • Keine Admin-Funktionen
  • Login über Appwrite Auth (ein User pro Kunde, verknüpft über customers.appwriteUserId)

Verwaltung (Kunden, Passwörter, Projekte, Freischaltung): Ticketsystem.

Struktur

server/     Express-API, Appwrite, Gitea-Webhook
public/     Login & Dashboard (statisch)

Schnellstart

cp .env.example .env
# SESSION_SECRET (min. 32 Zeichen) und APPWRITE_API_KEY setzen
npm install
npm run dev

Öffnen: http://localhost:3000

API

Methode Pfad Beschreibung
POST /api/auth/login Appwrite Login + Portal-Prüfungen
POST /api/auth/logout Session beenden
GET /api/auth/me Aktueller Kunde
GET /api/projects Eigene websiteProjects
GET /api/features Eigene portalFeatures (enabled)
POST /webhook/gitea?token=… Gitea Push → Deploy + DB-Update

Appwrite

Schema und Collection-Anlage: siehe APPWRITE_SCHEMA.md.

Endpoint:  https://ticket.webklar.com/v1
Project:   6a1058610003c5a13a05
Database:  woms-database

Gitea / Preview

customerId wird im Ticketsystem am websiteProjects-Eintrag gesetzt, nicht im Webhook.

E-Mails

Alle automatischen Mails sind HTML-Vorlagen mit Textfassung in server/mail-templates/ (K01–K11 an Kunden, T01–T11 ans Team; Design aus Claude Design). Jede Vorlage nennt im Kopfkommentar Betreff, Platzhalter ({{name}}) und optionale Blöcke (<!-- WENN x --> … <!-- ENDE x -->). Eine neue Fassung aus dem Design kann die Datei direkt ersetzen, solange Platzhalter und Blöcke gleich heißen; npm test prüft das. Das Logo in den Mails liegt unter public/webklar-logo.png.

Deployment

npm start
# Reverse Proxy (nginx) → Port 3000
# PREVIEW_DEPLOY_ROOT für statische Vorschau-Dateien

Repositories

S
Description
Webklar-Kundenbereich
Readme
14 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 86.2%
HTML 11%
CSS 2.7%