fix: Restore all files lost during destructive rebase
A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.
This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).
Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
144
website/README.md
Normal file
144
website/README.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# BreakPilot Website
|
||||
|
||||
Marketing- und Pricing-Website fuer BreakPilot mit Stripe Checkout Integration.
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- **Framework:** Next.js 15.1.6
|
||||
- **Styling:** Tailwind CSS 3.4
|
||||
- **Language:** TypeScript 5.7
|
||||
- **Payment:** Stripe Checkout (via Billing Service)
|
||||
|
||||
## Lokale Entwicklung
|
||||
|
||||
### Voraussetzungen
|
||||
|
||||
- Node.js 20+
|
||||
- npm oder yarn
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
cd website
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Website ist dann unter http://localhost:3000 erreichbar.
|
||||
|
||||
## Docker
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
docker build -t breakpilot-website \
|
||||
--build-arg NEXT_PUBLIC_BILLING_API_URL=http://localhost:8083 \
|
||||
--build-arg NEXT_PUBLIC_APP_URL=http://localhost:8000 \
|
||||
.
|
||||
```
|
||||
|
||||
### Run
|
||||
|
||||
```bash
|
||||
docker run -p 3000:3000 breakpilot-website
|
||||
```
|
||||
|
||||
### Mit Docker Compose
|
||||
|
||||
```bash
|
||||
# Aus dem Root-Verzeichnis
|
||||
docker compose up -d website
|
||||
```
|
||||
|
||||
## Umgebungsvariablen
|
||||
|
||||
| Variable | Beschreibung | Default |
|
||||
|----------|--------------|---------|
|
||||
| `NEXT_PUBLIC_BILLING_API_URL` | URL zum Billing Service | `http://localhost:8083` |
|
||||
| `NEXT_PUBLIC_APP_URL` | URL zur BreakPilot App | `http://localhost:8000` |
|
||||
| `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY` | Stripe Public Key | - |
|
||||
|
||||
### Build-Zeit vs. Runtime
|
||||
|
||||
NEXT_PUBLIC_* Variablen werden zur Build-Zeit eingebettet. Fuer Docker:
|
||||
|
||||
```bash
|
||||
docker build \
|
||||
--build-arg NEXT_PUBLIC_BILLING_API_URL=https://api.breakpilot.de \
|
||||
--build-arg NEXT_PUBLIC_APP_URL=https://app.breakpilot.de \
|
||||
--build-arg NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_xxx \
|
||||
.
|
||||
```
|
||||
|
||||
## Stripe Integration
|
||||
|
||||
### Flow
|
||||
|
||||
1. Nutzer waehlt Plan auf der Pricing-Seite
|
||||
2. Nutzer gibt E-Mail ein
|
||||
3. Website ruft `POST /api/v1/billing/trial/start` am Billing Service auf
|
||||
4. Billing Service erstellt Stripe Checkout Session
|
||||
5. Nutzer wird zu Stripe Checkout weitergeleitet
|
||||
6. Nach Zahlung: Redirect zu `/success?session_id=xxx`
|
||||
7. Success-Seite zeigt Bestaetigung und leitet zur App weiter
|
||||
|
||||
### API Endpunkt
|
||||
|
||||
```
|
||||
POST /api/v1/billing/trial/start
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"plan_id": "basic" | "standard" | "premium",
|
||||
"email": "user@example.com"
|
||||
}
|
||||
|
||||
Response:
|
||||
{
|
||||
"checkout_url": "https://checkout.stripe.com/..."
|
||||
}
|
||||
```
|
||||
|
||||
## Seiten
|
||||
|
||||
| Route | Beschreibung |
|
||||
|-------|--------------|
|
||||
| `/` | Landing Page mit Hero, Pricing, Trust-Sektion |
|
||||
| `/success` | Erfolgsseite nach Stripe Checkout |
|
||||
| `/cancel` | Abbruchseite wenn Checkout abgebrochen |
|
||||
|
||||
## Produktion
|
||||
|
||||
### Empfohlene Konfiguration
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_BILLING_API_URL=https://api.breakpilot.de
|
||||
NEXT_PUBLIC_APP_URL=https://app.breakpilot.de
|
||||
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_xxx
|
||||
```
|
||||
|
||||
### SSL/TLS
|
||||
|
||||
Fuer Produktion sollte ein Reverse Proxy (nginx, Traefik) mit SSL verwendet werden.
|
||||
|
||||
## Projektstruktur
|
||||
|
||||
```
|
||||
website/
|
||||
├── app/
|
||||
│ ├── globals.css # Tailwind + Custom Styles
|
||||
│ ├── layout.tsx # Root Layout
|
||||
│ ├── page.tsx # Landing Page
|
||||
│ ├── success/
|
||||
│ │ └── page.tsx # Checkout Erfolgsseite
|
||||
│ └── cancel/
|
||||
│ └── page.tsx # Checkout Abbruchseite
|
||||
├── components/
|
||||
│ ├── Header.tsx # Navigation
|
||||
│ ├── PricingSection.tsx # Pricing Cards + Modal
|
||||
│ └── Footer.tsx # Footer
|
||||
├── Dockerfile # Multi-stage Docker Build
|
||||
├── next.config.mjs # Next.js Konfiguration
|
||||
├── tailwind.config.ts # Tailwind mit BreakPilot Farben
|
||||
└── package.json
|
||||
```
|
||||
Reference in New Issue
Block a user