pounce/TERMINAL_REBUILD_PLAN.md

383 lines
13 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🐆 Pounce Terminal - Umbauplan
> **Von "Command Center" zu "Terminal"**
>
> Design-Prinzip: **"High Density, Low Noise"** - Wie ein Trading-Dashboard
---
## 📊 IST vs. SOLL Analyse
### Aktuelle Struktur (Terminal) ✅ IMPLEMENTIERT
```
/terminal/
├── radar/ → RADAR (Startseite/Dashboard)
├── market/ → MARKET (Auktionen + Listings)
├── intel/ → INTEL (TLD Pricing)
│ └── [tld]/ → Detail-Seite pro TLD
├── watchlist/ → WATCHLIST (Watching + Portfolio)
├── listing/ → LISTING (Verkaufs-Wizard)
├── settings/ → SETTINGS (Einstellungen)
└── welcome/ → Onboarding
```
### Ziel-Struktur (Terminal - laut pounce_terminal.md)
```
/terminal/
├── radar/ → RADAR (Dashboard/Startseite)
├── market/ → MARKET (Auktionen + User-Listings gemischt)
├── intel/ → INTEL (TLD Data/Pricing erweitert)
├── watchlist/ → WATCHLIST (Watching + My Portfolio)
├── listing/ → LISTING (Verkaufs-Wizard)
├── settings/ → SETTINGS (Admin/Account)
└── welcome/ → Onboarding (bleibt)
```
---
## ✅ Master-Checkliste
### Phase 1: Umbenennung & Routing ✅ ABGESCHLOSSEN
- [x] 1.1 Route `/command``/terminal` umbenennen
- [x] 1.2 `CommandCenterLayout``TerminalLayout` umbenennen
- [x] 1.3 Alle internen Links aktualisieren
- [x] 1.4 Redirect von `/command/*``/terminal/*` einrichten
- [x] 1.5 Sidebar-Navigation aktualisieren
### Phase 2: Module neu strukturieren ✅ ABGESCHLOSSEN
- [x] 2.1 **RADAR** Module (Dashboard → /terminal/radar)
- [x] 2.2 **MARKET** Module (Auktionen + Listings → /terminal/market)
- [x] 2.3 **INTEL** Module (TLD Pricing → /terminal/intel)
- [x] 2.4 **WATCHLIST** Module (Watching + Portfolio → /terminal/watchlist)
- [x] 2.5 **LISTING** Module (Verkaufs-Wizard → /terminal/listing)
- [x] 2.6 **SETTINGS** Module (Admin → /terminal/settings)
### Phase 3: UI/UX Verbesserungen ✅ ABGESCHLOSSEN
- [x] 3.1 Universal Search verbessert (RADAR - simultane Suche)
- [x] 3.2 Ticker/Laufband für Marktbewegungen (RADAR)
- [x] 3.3 Pounce Score Algorithmus (MARKET)
- [x] 3.4 Health Status Ampel-System (WATCHLIST)
- [x] 3.5 Hide Spam / Pounce Direct Filter (MARKET)
- [x] 3.6 Tier Paywall für Listings (LISTING)
### Phase 4: Cleanup ✅ ABGESCHLOSSEN
- [x] 4.1 Alte `/command` Routen entfernen
- [x] 4.2 Unbenutzte Komponenten löschen (CommandCenterLayout)
- [x] 4.3 Alle verbleibenden Referenzen fixen
- [x] 4.4 Test aller neuen Routen (Build erfolgreich)
---
## 📋 Detaillierte Checklisten pro Modul
---
### 🛰️ Modul 1: RADAR (Startseite/Dashboard)
**Route:** `/terminal/radar` (Hauptseite nach Login)
**Konzept-Features:**
- A. **The Ticker** (Top) - Laufband mit Marktbewegungen
- B. **Quick Stats** (Karten) - Watching, Market, My Listings
- C. **Universal Search** (Hero Element) - Gleichzeitige Suche
- D. **Recent Alerts** (Liste) - Chronologische Ereignisse
**Checkliste:**
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| 1.1 | Ticker-Komponente bauen | [ ] | HIGH |
| 1.2 | Ticker mit Live-Daten füttern (TLD-Trends, Watchlist-Alerts) | [ ] | HIGH |
| 1.3 | Quick Stats zu 3 Karten konsolidieren | [ ] | MEDIUM |
| 1.4 | Universal Search implementieren | [ ] | HIGH |
| 1.5 | Search-Logik: Gleichzeitige Prüfung (Whois, Auktionen, Marketplace) | [ ] | HIGH |
| 1.6 | Recent Alerts Liste mit Timeline-Design | [ ] | MEDIUM |
| 1.7 | "Morgenkaffee"-Layout optimieren (wichtigste Infos oben) | [ ] | MEDIUM |
**Aktueller Stand in Codebase:**
- `command/dashboard/page.tsx` vorhanden
- Hot Auctions, Trending TLDs, Quick Add Domain bereits implementiert
- ⚠️ Fehlt: Ticker, verbesserte Universal Search
---
### 🏪 Modul 2: MARKET (Der Feed)
**Route:** `/terminal/market`
**Konzept-Features:**
- Filter Bar (Hide Spam, Pounce Direct Only, TLD, Price)
- Master-Tabelle mit: Domain, Pounce Score, Price/Bid, Status/Time, Source, Action
- User-Listings (💎 Pounce Direct) gemischt mit API-Daten
**Checkliste:**
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| 2.1 | `/command/auctions` + `/command/marketplace` zusammenführen | [ ] | HIGH |
| 2.2 | Einheitliche Tabelle für alle Listings | [ ] | HIGH |
| 2.3 | "Hide Spam" Toggle (Default: AN) | [ ] | HIGH |
| 2.4 | "Pounce Direct Only" Toggle | [ ] | MEDIUM |
| 2.5 | Pounce Score Spalte hinzufügen (0-100, Farbcodiert) | [ ] | HIGH |
| 2.6 | Source-Spalte mit Logos/Icons (GoDaddy, Sedo, Pounce) | [ ] | MEDIUM |
| 2.7 | Status-Spalte: Countdown für Auktionen, "⚡ Instant" für Direct | [ ] | HIGH |
| 2.8 | 💎 Pounce Direct Listings hervorheben (leichte Hintergrundfarbe) | [ ] | MEDIUM |
| 2.9 | API-Filter Backend: `spam_score < 50` für Clean Feed | [ ] | HIGH |
**Aktueller Stand in Codebase:**
- `command/auctions/page.tsx` - Auktionen von GoDaddy/Sedo
- `command/marketplace/page.tsx` - Pounce-Listings
- ⚠️ Getrennt! Muss zusammengeführt werden
- ⚠️ Kein Pounce Score implementiert
---
### 📊 Modul 3: INTEL (TLD Data)
**Route:** `/terminal/intel` + `/terminal/intel/[tld]`
**Konzept-Features:**
- Inflation Monitor (Renewal Price Warnung wenn >200% von Buy Price)
- Trend Charts (30 Tage, 1 Jahr)
- Best Registrar Finder
**Checkliste:**
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| 3.1 | `/command/pricing``/terminal/intel` verschieben | [ ] | HIGH |
| 3.2 | Inflation Monitor: Warn-Indikator ⚠️ bei Renewal > 200% Buy | [ ] | HIGH |
| 3.3 | Trend Charts: 30 Tage Timeline | [ ] | MEDIUM |
| 3.4 | Trend Charts: 1 Jahr Timeline | [ ] | LOW |
| 3.5 | Best Registrar Finder pro TLD | [ ] | HIGH |
| 3.6 | "Cheapest at: XYZ ($X.XX)" Anzeige | [ ] | HIGH |
| 3.7 | Detail-Seite `[tld]` mit allen Registrar-Preisen | [ ] | HIGH |
| 3.8 | Renewal Trap Warning prominent anzeigen | [ ] | MEDIUM |
**Aktueller Stand in Codebase:**
- `command/pricing/page.tsx` - TLD Übersicht ✅
- `command/pricing/[tld]/page.tsx` - TLD Details ✅
- ⚠️ Charts vorhanden aber einfach
- ⚠️ Renewal-Warning existiert teilweise
---
### 👁️ Modul 4: WATCHLIST (Portfolio)
**Route:** `/terminal/watchlist`
**Konzept-Features:**
- Tab 1: "Watching" (Fremde Domains)
- Tab 2: "My Portfolio" (Eigene Domains - verifiziert)
- Health-Status: 🟢 Online, 🟡 DNS Changed, 🔴 Offline/Error
- Expiry-Datum mit Rot-Markierung wenn <30 Tage
- SMS/Email Alert-Einstellungen pro Domain
**Checkliste:**
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| 4.1 | `/command/watchlist` + `/command/portfolio` zusammenführen | [ ] | HIGH |
| 4.2 | Tab-Navigation: "Watching" / "My Portfolio" | [ ] | HIGH |
| 4.3 | Health-Status Ampel-System implementieren | [ ] | HIGH |
| 4.4 | DNS-Change Detection Backend | [ ] | HIGH |
| 4.5 | Offline/Error Detection Backend (HTTP Request Check) | [ ] | HIGH |
| 4.6 | Expiry-Spalte mit Rot wenn <30 Tage | [ ] | MEDIUM |
| 4.7 | "Change" Spalte (z.B. "Nameserver updated 2h ago") | [ ] | MEDIUM |
| 4.8 | Per-Domain Alert Settings (SMS/Email Checkboxes) | [ ] | MEDIUM |
| 4.9 | Portfolio-Bewertung (Estimated Value) | [ ] | LOW |
**Aktueller Stand in Codebase:**
- `command/watchlist/page.tsx` - Fremde Domains
- `command/portfolio/page.tsx` - Eigene Domains
- Getrennt! Muss zusammengeführt werden
- Kein Health-Check System
- Keine DNS-Change Detection
---
### 🏷️ Modul 5: LISTING (Verkaufen)
**Route:** `/terminal/listing`
**Konzept-Features:**
- Nur für Trader ($9) und Tycoon ($29)
- 3-Step Wizard:
1. Input (Domain + Preis)
2. DNS Verification (`pounce-verify-XXXX` TXT Record)
3. Publish
**Checkliste:**
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| 5.1 | `/command/listings` `/terminal/listing` umbenennen | [ ] | HIGH |
| 5.2 | 3-Step Wizard UI bauen | [ ] | HIGH |
| 5.3 | Step 1: Domain + Preis Input (Fixpreis oder Verhandlungsbasis) | [ ] | HIGH |
| 5.4 | Step 2: DNS Verification Code generieren | [ ] | HIGH |
| 5.5 | Step 2: "Verify DNS" Button mit TXT-Record Check | [ ] | HIGH |
| 5.6 | Step 3: Publish mit Bestätigung | [ ] | MEDIUM |
| 5.7 | "✅ Verified Owner" Badge nach Verifizierung | [ ] | HIGH |
| 5.8 | Tier-Check: Scout blockiert, nur Trader/Tycoon | [ ] | HIGH |
| 5.9 | Listing-Limit pro Tier (Trader: 5, Tycoon: 50) | [ ] | MEDIUM |
| 5.10 | Backend: DNS TXT Record Verification API | [ ] | HIGH |
**Aktueller Stand in Codebase:**
- `command/listings/page.tsx` - Listings-Verwaltung
- Kein DNS-Verification Wizard
- Keine TXT-Record Prüfung
---
### ⚙️ Modul 6: SETTINGS
**Route:** `/terminal/settings`
**Konzept-Features:**
- Subscription (Upgrade/Downgrade via Stripe)
- Verification (Handynummer, Identity Badge)
- Notifications (Daily Digest, Instant SMS)
**Checkliste:**
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| 6.1 | Subscription-Management via Stripe Customer Portal | [ ] | HIGH |
| 6.2 | Handynummer-Verifizierung (SMS Code) | [ ] | MEDIUM |
| 6.3 | "Identity Verified" Badge System | [ ] | LOW |
| 6.4 | Notification-Einstellungen (Daily Digest Toggle) | [ ] | MEDIUM |
| 6.5 | Notification-Einstellungen (Instant SMS Toggle) | [ ] | MEDIUM |
| 6.6 | E-Mail Preferences | [ ] | MEDIUM |
**Aktueller Stand in Codebase:**
- `command/settings/page.tsx` - Settings vorhanden
- Stripe Portal Link prüfen
- Keine SMS-Verifizierung
---
## 🎨 UI/UX Verbesserungen
### Global Search (CMD+K)
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| G1 | Gleichzeitige Suche: Whois Check | [ ] | HIGH |
| G2 | Gleichzeitige Suche: Auktionen durchsuchen | [ ] | HIGH |
| G3 | Gleichzeitige Suche: Pounce Marketplace | [ ] | HIGH |
| G4 | Ergebnisse gruppiert anzeigen | [ ] | MEDIUM |
| G5 | Quick Actions (Track, Bid, View) | [ ] | MEDIUM |
### Pounce Score Algorithmus
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| P1 | Score-Berechnung definieren (0-100) | [ ] | HIGH |
| P2 | Faktoren: Domain-Länge, TLD-Wert, Keine Zahlen/Bindestriche | [ ] | HIGH |
| P3 | Faktoren: Keyword-Relevanz | [ ] | MEDIUM |
| P4 | Spam-Score inverse (High Score = Low Spam) | [ ] | HIGH |
| P5 | Farbcodierung: Grün >80, Gelb 40-80, Rot <40 | [ ] | MEDIUM |
### Ticker/Laufband
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| T1 | Ticker-Komponente mit horizontalem Scroll | [ ] | MEDIUM |
| T2 | Live TLD-Preisänderungen | [ ] | MEDIUM |
| T3 | Watchlist-Alerts (Domain offline, etc.) | [ ] | HIGH |
| T4 | Neue Hot Auctions | [ ] | LOW |
---
## 🔧 Backend-Änderungen
| # | Task | Status | Priorität |
|---|------|--------|-----------|
| B1 | `spam_score` Spalte in `domains` Tabelle | [ ] | HIGH |
| B2 | Spam-Score Berechnung beim Import | [ ] | HIGH |
| B3 | DNS Health Check Cronjob (alle 6h) | [ ] | HIGH |
| B4 | DNS TXT Record Verification Endpoint | [ ] | HIGH |
| B5 | Domain Status Change Detection | [ ] | HIGH |
| B6 | Alert-Email bei Status-Änderung | [ ] | HIGH |
---
## 📂 Dateien die geändert werden müssen
### Umbenennungen (Phase 1)
| Datei | Aktion |
|-------|--------|
| `frontend/src/app/command/` | `frontend/src/app/terminal/` |
| `frontend/src/components/CommandCenterLayout.tsx` | `TerminalLayout.tsx` |
| Alle `CommandCenterLayout` Imports | Aktualisieren |
| `frontend/src/components/Sidebar.tsx` | Navigation Links aktualisieren |
| `frontend/src/components/Header.tsx` | Links zu `/terminal` |
| `frontend/src/app/login/page.tsx` | Redirect zu `/terminal/radar` |
| `frontend/src/app/register/page.tsx` | Redirect zu `/terminal/radar` |
| `frontend/src/app/oauth/callback/page.tsx` | Redirect aktualisieren |
### Zusammenführungen (Phase 2)
| Alt | Neu |
|-----|-----|
| `command/auctions/` + `command/marketplace/` | `terminal/market/` |
| `command/watchlist/` + `command/portfolio/` | `terminal/watchlist/` |
| `command/dashboard/` | `terminal/radar/` |
| `command/pricing/` | `terminal/intel/` |
| `command/listings/` | `terminal/listing/` |
| `command/settings/` | `terminal/settings/` |
### Zu löschen (Phase 4)
| Datei | Grund |
|-------|-------|
| `command/alerts/` | In RADAR integriert |
| `command/seo/` | Später als Premium-Feature |
| Alte `/command` Ordner | Nach Migration |
---
## 🚀 Empfohlene Reihenfolge
### Sprint 1: Foundation (2-3 Tage)
1. Route-Umbenennung `/command` `/terminal`
2. Layout-Umbenennung
3. Sidebar aktualisieren
4. Redirects einrichten
### Sprint 2: Core Modules (3-4 Tage)
1. 🔄 RADAR (Dashboard) aufbauen
2. 🔄 MARKET (Auctions + Marketplace) zusammenführen
3. 🔄 WATCHLIST (Watchlist + Portfolio) zusammenführen
### Sprint 3: Features (3-4 Tage)
1. 🔜 Pounce Score implementieren
2. 🔜 Spam Filter
3. 🔜 DNS Verification für Listings
4. 🔜 Universal Search verbessern
### Sprint 4: Polish (2 Tage)
1. 🔜 Ticker-Komponente
2. 🔜 Health Check System
3. 🔜 Alert-Emails
4. 🔜 Cleanup & Testing
---
## 📈 Metriken für Erfolg
- [ ] Alle Routen funktionieren unter `/terminal/*`
- [ ] Kein 404 bei alten `/command/*` URLs (Redirects)
- [ ] Pounce Score für alle Domains sichtbar
- [ ] Spam-Filter filtert >90% der schlechten Domains
- [ ] DNS-Verification funktioniert für Listings
- [ ] Health-Check System läuft (6h Intervall)
- [ ] Universal Search zeigt alle 3 Quellen
---
*Erstellt: $(date)*
*Basierend auf: pounce_strategy.md, pounce_terminal.md, pounce_features.md, pounce_plan.md*