2.5 KiB
2.5 KiB
Requirements Document
Introduction
Funktionsfähiges Email-Sortierer Produkt mit Multi-Step-Formular, Appwrite-Datenspeicherung und Stripe-Bezahlung.
Glossary
- System: Das Email-Sortierer Web-Applikation
- Appwrite: Backend-as-a-Service für Datenspeicherung
- Stripe: Zahlungsanbieter
- Submission: Kundenantworten auf Fragebogen
Requirements
Requirement 1: Multi-Step Formular
User Story: Als Kunde möchte ich durch einen mehrstufigen Fragebogen geführt werden, damit ich meine Email-Präferenzen konfigurieren kann.
Acceptance Criteria
- WHEN die Seite geladen wird, THEN THE System SHALL die Fragen von Appwrite laden
- WHEN ein Schritt ausgefüllt wird, THEN THE System SHALL die Antworten zwischenspeichern
- WHEN alle Schritte abgeschlossen sind, THEN THE System SHALL eine Zusammenfassung anzeigen
- WHEN Pflichtfelder leer sind, THEN THE System SHALL eine Validierungsfehlermeldung anzeigen
Requirement 2: Appwrite Datenspeicherung
User Story: Als System möchte ich alle Kundendaten in Appwrite speichern, damit die Daten persistent verfügbar sind.
Acceptance Criteria
- WHEN das Bootstrap-Script läuft, THEN THE System SHALL alle Tabellen und Spalten erstellen
- WHEN ein Kunde den Fragebogen abschließt, THEN THE System SHALL eine Submission erstellen
- WHEN eine Submission erstellt wird, THEN THE System SHALL alle Antworten speichern
- WHEN Fragen abgerufen werden, THEN THE System SHALL nur aktive Fragen für das Produkt zurückgeben
Requirement 3: Stripe Bezahlung
User Story: Als Kunde möchte ich nach dem Fragebogen bezahlen können, damit ich das Produkt kaufen kann.
Acceptance Criteria
- WHEN der Kunde auf "Jetzt kaufen" klickt, THEN THE System SHALL eine Stripe Checkout Session erstellen
- WHEN die Checkout Session erstellt wird, THEN THE System SHALL den Kunden zu Stripe weiterleiten
- WHEN die Bezahlung erfolgreich ist, THEN THE System SHALL den Submission-Status auf "paid" aktualisieren
- WHEN der Stripe Webhook empfangen wird, THEN THE System SHALL die Signatur validieren
Requirement 4: Server Setup
User Story: Als Entwickler möchte ich den Server starten können, damit die Applikation läuft.
Acceptance Criteria
- WHEN der Server startet, THEN THE System SHALL auf Port 3000 lauschen
- WHEN die HTML-Datei angefordert wird, THEN THE System SHALL die statische Datei ausliefern
- WHEN API-Endpunkte aufgerufen werden, THEN THE System SHALL JSON-Antworten zurückgeben
- WHEN Umgebungsvariablen fehlen, THEN THE System SHALL einen Fehler ausgeben