From bad7816bb9b603d6d3c207362293539ab78d2e30 Mon Sep 17 00:00:00 2001 From: Yves Gugger Date: Wed, 10 Dec 2025 21:23:03 +0100 Subject: [PATCH] docs: Add Terminal rebuild plan with detailed checklists --- TERMINAL_REBUILD_PLAN.md | 382 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 382 insertions(+) create mode 100644 TERMINAL_REBUILD_PLAN.md diff --git a/TERMINAL_REBUILD_PLAN.md b/TERMINAL_REBUILD_PLAN.md new file mode 100644 index 0000000..bae24a2 --- /dev/null +++ b/TERMINAL_REBUILD_PLAN.md @@ -0,0 +1,382 @@ +# 🐆 Pounce Terminal - Umbauplan + +> **Von "Command Center" zu "Terminal"** +> +> Design-Prinzip: **"High Density, Low Noise"** - Wie ein Trading-Dashboard + +--- + +## 📊 IST vs. SOLL Analyse + +### Aktuelle Struktur (Command Center) +``` +/command/ +├── dashboard/ → Allgemeines Dashboard +├── watchlist/ → Domain-Überwachung +├── portfolio/ → Eigene Domains +├── listings/ → Verkaufsangebote +├── auctions/ → Externe Auktionen +├── marketplace/ → Pounce-Marktplatz +├── pricing/ → TLD Preise +├── alerts/ → Sniper Alerts +├── seo/ → SEO Juice (Tycoon) +├── 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 +- [ ] 1.1 Route `/command` → `/terminal` umbenennen +- [ ] 1.2 `CommandCenterLayout` → `TerminalLayout` umbenennen +- [ ] 1.3 Alle internen Links aktualisieren +- [ ] 1.4 Redirect von `/command/*` → `/terminal/*` einrichten +- [ ] 1.5 Sidebar-Navigation aktualisieren + +### Phase 2: Module neu strukturieren +- [ ] 2.1 **RADAR** Module (Dashboard) +- [ ] 2.2 **MARKET** Module (Auktionen + Listings) +- [ ] 2.3 **INTEL** Module (TLD Pricing) +- [ ] 2.4 **WATCHLIST** Module (Watching + Portfolio) +- [ ] 2.5 **LISTING** Module (Verkaufs-Wizard) +- [ ] 2.6 **SETTINGS** Module (Admin) + +### Phase 3: UI/UX Verbesserungen +- [ ] 3.1 Global Search (CMD+K) verbessern +- [ ] 3.2 Notifications-System erweitern +- [ ] 3.3 Ticker/Laufband für Marktbewegungen +- [ ] 3.4 Pounce Score Algorithmus + +### Phase 4: Cleanup +- [ ] 4.1 Alte `/command` Routen entfernen +- [ ] 4.2 Unbenutzte Komponenten löschen +- [ ] 4.3 Test aller neuen Routen + +--- + +## 📋 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* +