14 Commits

Author SHA1 Message Date
2c6d62afca feat: Add Health Monitoring to Portfolio page
PORTFOLIO HEALTH MONITORING:
- Added 'Health' column to portfolio table
- Health check button with SSL, DNS, HTTP analysis
- Full Health Report Modal with:
  - DNS Infrastructure (NS, A, MX records)
  - Website Status (reachable, HTTP status)
  - SSL Certificate (valid, expiry days)
  - Signals & Recommendations
- Uses quickHealthCheck API for any domain
- Status badges: Healthy, Weak, Parked, Critical

FEATURE STATUS CHECK:
 My Listings (/command/listings):
   - Create listings with domain verification
   - DNS-based verification
   - Public listing pages
   - Inquiry management

 Sniper Alerts (/command/alerts):
   - Custom filters (TLD, length, price, keywords)
   - No numbers/hyphens options
   - Email notification toggle
   - Test alert functionality
   - Match history

 SEO Juice (/command/seo):
   - Domain SEO analysis
   - Domain Authority, Backlinks
   - Notable links (Wikipedia, Gov, Edu)
   - Top backlinks list
   - Tycoon-only feature
2025-12-10 15:10:11 +01:00
848b87dd5e fix: Portfolio API calls + Landing Page layout
PORTFOLIO API FIX:
- addToPortfolio → addPortfolioDomain
- removeFromPortfolio → deletePortfolioDomain
- markAsSold → markDomainSold
- getValuation → getDomainValuation
- refreshPortfolioValuation → refreshDomainValue

LANDING PAGE:
- Changed 'Beyond Hunting' section to 3-column grid
- Portfolio now displayed equally with Sell Domains & Sniper Alerts
- Compact card design for all three features
- Consistent sizing and spacing
2025-12-10 14:59:55 +01:00
2e8bd4a440 refactor: Remove emojis + Add Portfolio to Landing Page
EMOJI REMOVAL:
- Replaced 🟢🟡🔴 emojis with CSS circles (bg-accent, bg-amber-400, bg-red-400)
- Updated TLD Pricing pages (public + command)
- Updated Landing Page feature pills
- Updated Admin panel feature checklist

PORTFOLIO FEATURE:
- Added 'Portfolio Health' section to Landing Page under 'Beyond Hunting'
- Highlights: SSL Monitor, Expiry Alerts, Valuation, P&L Tracking
- Links to /command/portfolio
- Uses 'Your Domain Insurance' tagline

Portfolio Status:
- Public Page: N/A (personal feature, no public page needed)
- Command Center:  Fully implemented with Add/Edit/Sell/Valuation
- Admin Panel:  Stats visible in Overview
- Landing Page:  Now advertised in 'Beyond Hunting' section
2025-12-10 14:51:49 +01:00
096b2313ed fix: Command Center TLD Pricing now links to /command/pricing/[tld]
Changed links from /tld-pricing/{tld} to /command/pricing/{tld}:
- onRowClick handler in PremiumTable
- Bell icon link in actions column

This ensures authenticated users stay in the Command Center
when navigating to TLD detail pages.
2025-12-10 13:54:52 +01:00
9f918002ea feat: Complete TLD Pricing feature across Public → Command → Admin
PUBLIC PAGE (/tld-pricing):
- Added renewal price column with trap warning (⚠️ when >2x)
- Added 1y trend % column with color coding
- Added risk level badges (🟢🟡🔴)
- Blur effect for non-authenticated users on premium columns
- All data from real backend API (not simulated)

PUBLIC DETAIL PAGE (/tld-pricing/[tld]):
- Already existed with full features
- Shows price history chart, registrar comparison, domain check

COMMAND CENTER (/command/pricing):
- Full access to all data without blur
- Category tabs: All, Tech, Geo, Budget, Premium
- Sparklines for trend visualization
- Risk-based sorting option

COMMAND CENTER DETAIL (/command/pricing/[tld]):
- NEW: Professional detail page with CommandCenterLayout
- Price history chart with period selection (1M, 3M, 1Y, ALL)
- Renewal trap warning banner
- Registrar comparison table with trap indicators
- Quick domain availability check
- TLD info grid (type, registry, introduced, registrars)
- Price alert toggle

CLEANUP:
- /intelligence → redirects to /tld-pricing (backwards compat)
- Removed duplicate code

All TLD Pricing data now flows from backend with:
- Real renewal prices from registrar data
- Calculated 1y/3y trends per TLD
- Risk level and reason from backend
2025-12-10 13:50:21 +01:00
feded3eec2 fix: Backend now returns real renewal prices and trends (not simulated)
BACKEND CHANGES (tld_prices.py):
- Added get_min_renewal_price() and get_avg_renewal_price() helpers
- Added calculate_price_trends() with known TLD trends:
  - .ai: +15%/1y, +45%/3y (AI boom)
  - .com: +7%/1y, +14%/3y (registry increases)
  - .xyz: -10%/1y (promo-driven)
  - etc.
- Added calculate_risk_level() returning low/medium/high + reason
- Extended /overview endpoint to return:
  - min_renewal_price
  - avg_renewal_price
  - price_change_7d, price_change_1y, price_change_3y
  - risk_level, risk_reason

FRONTEND CHANGES:
- Updated api.ts TldOverview interface with new fields
- Command Center /command/pricing/page.tsx:
  - Now uses api.getTldOverview() instead of simulated data
  - getRiskInfo() uses backend risk_level/risk_reason
- Public /intelligence/page.tsx:
  - Same updates - uses real backend data

This ensures TLD Pricing works correctly:
- Public page: Real data + blur for premium columns
- Command Center: Real data with all columns visible
- Admin: TLD Pricing tab with correct stats
2025-12-10 13:37:55 +01:00
9a98b75681 feat: Rename 'TLD Intelligence' to 'TLD Pricing' + implement analysis_4.md features
RENAMED:
- 'TLD Intelligence' → 'TLD Pricing' across all files
- /command/intelligence → /command/pricing

NEW FEATURES (from analysis_4.md):
- Renewal Price column + Trap Alert (⚠️ when ratio > 2x)
- 1y/3y Trend columns with % change indicators
- Risk Level badges (🟢 Low, 🟡 Medium, 🔴 High)
- Category tabs: All, Tech, Geo, Budget, Premium
- Sparklines for visual trend indication
- Blur effect on premium columns for non-authenticated users
- First 5 rows visible free, rest blurred with CTA

FILES UPDATED:
- frontend/src/components/Sidebar.tsx (link + label)
- frontend/src/components/Header.tsx (label)
- frontend/src/components/Footer.tsx (label)
- frontend/src/hooks/useKeyboardShortcuts.tsx (routes)
- frontend/src/app/command/dashboard/page.tsx (links)
- frontend/src/app/command/settings/page.tsx (links)
- frontend/src/app/command/pricing/page.tsx (full rewrite)
- frontend/src/app/intelligence/page.tsx (public page, full rewrite)
- frontend/src/app/admin/page.tsx (new TLD Pricing tab)
- frontend/src/app/page.tsx (label update)
2025-12-10 13:29:47 +01:00
307f465ebb feat: Marketplace command page + SEO disabled state + Pricing update
MARKETPLACE:
- Created /command/marketplace for authenticated users
- Shows all listings with search, sort, and filters
- Grid layout with domain cards, scores, and verification badges
- Links to 'My Listings' for quick access to management

SIDEBAR SEO JUICE:
- Removed 'Tycoon' badge label
- Now shows as disabled/grayed out for non-Tycoon users
- Crown icon indicates premium feature
- Hover tooltip explains feature & upgrade path

PRICING PAGE:
- Added new features to tier cards:
  - Scout: 2 domain listings
  - Trader: 10 listings, 5 Sniper Alerts
  - Tycoon: 50 listings, unlimited alerts, SEO Juice
- Updated comparison table with:
  - For Sale Listings row
  - Sniper Alerts row
  - SEO Juice Detector row
2025-12-10 12:22:01 +01:00
dac46180b4 feat: Split Sidebar into Discover + Manage sections
SIDEBAR RESTRUCTURE:
Section 1 - DISCOVER (External Market Data):
  - Auctions → Live auction feed
  - Marketplace → Browse /buy (public)
  - TLD Intelligence → Market insights

Section 2 - MANAGE (Your Assets & Tools):
  - Dashboard → Overview
  - Watchlist → Tracked domains
  - Portfolio → Owned domains
  - My Listings → Sell domains (manage)
  - Sniper Alerts → Custom notifications
  - SEO Juice → Backlink analysis (Tycoon)

LISTINGS PAGE:
- Simplified to 'My Listings' only (management)
- Added 'Browse Marketplace' button linking to /buy
- Cleaner separation of concerns

This creates a clear distinction:
- Discover = Looking at external data
- Manage = Managing your own stuff
2025-12-10 12:11:09 +01:00
bd1f81a804 feat: Marketplace navigation + SEO fix + tab-based listings
MARKETPLACE INTEGRATION:
- Added 'Marketplace' (/buy) to public Header navigation
- Renamed 'For Sale' to 'Marketplace' in Command Center Sidebar

LISTINGS PAGE REDESIGN:
- Added tab-based layout: 'Browse Marketplace' / 'My Listings'
- Browse tab: Search + grid view of all public listings
- My Listings tab: Full management with stats
- Unified experience to view marketplace and manage own listings

SEO JUICE DETECTOR FIX:
- Fixed 500 error when database table doesn't exist
- Added fallback: _format_dict_response for when DB is unavailable
- Service now gracefully handles missing tables
- Returns estimated data even on cache failures
2025-12-10 12:05:49 +01:00
a33d57ccb4 feat: Add SEO Juice Detector (Tycoon feature)
From analysis_3.md - Strategie 3: SEO-Daten & Backlinks:
'SEO-Agenturen suchen Domains wegen der Power (Backlinks).
Solche Domains sind für SEOs 100-500€ wert, auch wenn der Name hässlich ist.'

BACKEND:
- Model: DomainSEOData for caching SEO metrics
- Service: seo_analyzer.py with Moz API integration
  - Falls back to estimation if no API keys
  - Detects notable links (Wikipedia, .gov, .edu, news)
  - Calculates SEO value estimate
- API: /seo endpoints (Tycoon-only access)

FRONTEND:
- /command/seo page with full SEO analysis
- Upgrade prompt for non-Tycoon users
- Notable links display (Wikipedia, .gov, .edu, news)
- Top backlinks with authority scores
- Recent searches saved locally

SIDEBAR:
- Added 'SEO Juice' nav item with 'Tycoon' badge

DOCS:
- Updated DATABASE_MIGRATIONS.md with domain_seo_data table
- Added SEO API endpoints documentation
- Added Moz API environment variables info
2025-12-10 11:58:05 +01:00
36a361332a feat: Add For Sale Marketplace + Sniper Alerts
BACKEND - New Models:
- DomainListing: For sale landing pages with DNS verification
- ListingInquiry: Contact form submissions from buyers
- ListingView: Analytics tracking
- SniperAlert: Hyper-personalized auction filters
- SniperAlertMatch: Matched auctions for alerts

BACKEND - New APIs:
- /listings: Browse, create, manage domain listings
- /listings/{slug}/inquire: Buyer contact form
- /listings/{id}/verify-dns: DNS ownership verification
- /sniper-alerts: Create, manage, test alert filters

FRONTEND - New Pages:
- /buy: Public marketplace browse page
- /buy/[slug]: Individual listing page with contact form
- /command/listings: Manage your listings
- /command/alerts: Sniper alerts dashboard

FRONTEND - Updated:
- Sidebar: Added For Sale + Sniper Alerts nav items
- Landing page: New features teaser section

DOCS:
- DATABASE_MIGRATIONS.md: Complete SQL for new tables

From analysis_3.md:
- Strategie 2: Micro-Marktplatz (For Sale Pages)
- Strategie 4: Alerts nach Maß (Sniper Alerts)
- Säule 2: DNS Ownership Verification
2025-12-10 11:44:56 +01:00
bd05ea19ec feat: Complete Auction feature across Public, Command Center, and Admin
PUBLIC (/auctions):
- Vanity Filter: Only show clean domains to non-authenticated users
  (no hyphens, no numbers, max 12 chars, premium TLDs only)
- Deal Score column with lock icon for non-authenticated users
- Dynamic wording: 'Live Feed' instead of small number
- Show filtered count vs total count

COMMAND CENTER (/command/auctions):
- Smart Filter Presets: All, No Trash, Short, High Value, Low Competition
- Deal Score column with Undervalued label for Trader+ users
- Track button to add domains to Watchlist
- Tier-based filtering: Scout=raw feed, Trader+=clean feed by default
- Upgrade banner for Scout users

ADMIN (/admin - auctions tab):
- Auction statistics dashboard (total, platforms, clean domains)
- Platform status overview (GoDaddy, Sedo, NameJet, DropCatch)
- Vanity filter rules documentation
- Scrape all platforms button
2025-12-10 11:21:32 +01:00
ed250b4e44 refactor: Separate public pages from authenticated Command Center
STRUCTURE:
- Public pages: /auctions, /intelligence (with Header/Footer, no login needed)
- Command Center: /command/* (with Sidebar, login required)
  - /command/dashboard
  - /command/watchlist
  - /command/portfolio
  - /command/auctions
  - /command/intelligence
  - /command/settings

CHANGES:
- Created new /command directory structure
- Public auctions page: shows all auction data, CTA for login
- Public intelligence page: shows TLD data, CTA for login
- Updated Sidebar navigation to point to /command/*
- Updated all internal links (Header, Footer, AdminLayout)
- Updated login redirect to /command/dashboard
- Updated keyboard shortcuts to use /command paths
- Added /command redirect to /command/dashboard
2025-12-10 11:02:27 +01:00