59 lines
2.5 KiB
Markdown
59 lines
2.5 KiB
Markdown
# 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
|
|
|
|
1. WHEN die Seite geladen wird, THEN THE System SHALL die Fragen von Appwrite laden
|
|
2. WHEN ein Schritt ausgefüllt wird, THEN THE System SHALL die Antworten zwischenspeichern
|
|
3. WHEN alle Schritte abgeschlossen sind, THEN THE System SHALL eine Zusammenfassung anzeigen
|
|
4. 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
|
|
|
|
1. WHEN das Bootstrap-Script läuft, THEN THE System SHALL alle Tabellen und Spalten erstellen
|
|
2. WHEN ein Kunde den Fragebogen abschließt, THEN THE System SHALL eine Submission erstellen
|
|
3. WHEN eine Submission erstellt wird, THEN THE System SHALL alle Antworten speichern
|
|
4. 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
|
|
|
|
1. WHEN der Kunde auf "Jetzt kaufen" klickt, THEN THE System SHALL eine Stripe Checkout Session erstellen
|
|
2. WHEN die Checkout Session erstellt wird, THEN THE System SHALL den Kunden zu Stripe weiterleiten
|
|
3. WHEN die Bezahlung erfolgreich ist, THEN THE System SHALL den Submission-Status auf "paid" aktualisieren
|
|
4. 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
|
|
|
|
1. WHEN der Server startet, THEN THE System SHALL auf Port 3000 lauschen
|
|
2. WHEN die HTML-Datei angefordert wird, THEN THE System SHALL die statische Datei ausliefern
|
|
3. WHEN API-Endpunkte aufgerufen werden, THEN THE System SHALL JSON-Antworten zurückgeben
|
|
4. WHEN Umgebungsvariablen fehlen, THEN THE System SHALL einen Fehler ausgeben
|