| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Choose Your Dashboard</title> |
| <style> |
| * { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
| |
| body { |
| font-family: 'Inter', -apple-system, sans-serif; |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| min-height: 100vh; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| padding: 20px; |
| } |
| |
| .container { |
| max-width: 1200px; |
| width: 100%; |
| } |
| |
| h1 { |
| text-align: center; |
| color: white; |
| font-size: 3rem; |
| margin-bottom: 1rem; |
| text-shadow: 0 2px 10px rgba(0,0,0,0.2); |
| } |
| |
| .subtitle { |
| text-align: center; |
| color: rgba(255,255,255,0.9); |
| font-size: 1.2rem; |
| margin-bottom: 3rem; |
| } |
| |
| .cards { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); |
| gap: 2rem; |
| margin-bottom: 2rem; |
| } |
| |
| .card { |
| background: white; |
| border-radius: 20px; |
| padding: 2rem; |
| box-shadow: 0 20px 60px rgba(0,0,0,0.3); |
| transition: transform 0.3s ease, box-shadow 0.3s ease; |
| cursor: pointer; |
| text-decoration: none; |
| color: inherit; |
| display: block; |
| } |
| |
| .card:hover { |
| transform: translateY(-10px); |
| box-shadow: 0 30px 80px rgba(0,0,0,0.4); |
| } |
| |
| .card-header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| margin-bottom: 1.5rem; |
| } |
| |
| .card-icon { |
| width: 60px; |
| height: 60px; |
| background: linear-gradient(135deg, #667eea, #764ba2); |
| border-radius: 15px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 2rem; |
| } |
| |
| .badge { |
| padding: 0.5rem 1rem; |
| border-radius: 20px; |
| font-size: 0.75rem; |
| font-weight: bold; |
| text-transform: uppercase; |
| letter-spacing: 0.5px; |
| } |
| |
| .badge.new { |
| background: linear-gradient(135deg, #11998e, #38ef7d); |
| color: white; |
| } |
| |
| .badge.legacy { |
| background: #f3f4f6; |
| color: #6b7280; |
| } |
| |
| .card h2 { |
| font-size: 1.75rem; |
| margin-bottom: 1rem; |
| color: #1f2937; |
| } |
| |
| .card p { |
| color: #6b7280; |
| line-height: 1.6; |
| margin-bottom: 1.5rem; |
| } |
| |
| .features { |
| list-style: none; |
| margin-bottom: 1.5rem; |
| } |
| |
| .features li { |
| padding: 0.5rem 0; |
| color: #374151; |
| display: flex; |
| align-items: center; |
| gap: 0.5rem; |
| } |
| |
| .features li::before { |
| content: 'β'; |
| color: #10b981; |
| font-weight: bold; |
| font-size: 1.2rem; |
| } |
| |
| .features li.unavailable::before { |
| content: 'β'; |
| color: #ef4444; |
| } |
| |
| .btn { |
| width: 100%; |
| padding: 1rem; |
| border-radius: 10px; |
| border: none; |
| font-size: 1rem; |
| font-weight: 600; |
| cursor: pointer; |
| transition: all 0.3s ease; |
| text-align: center; |
| text-decoration: none; |
| display: block; |
| } |
| |
| .btn-primary { |
| background: linear-gradient(135deg, #667eea, #764ba2); |
| color: white; |
| box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); |
| } |
| |
| .btn-primary:hover { |
| transform: scale(1.02); |
| box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5); |
| } |
| |
| .btn-secondary { |
| background: #f3f4f6; |
| color: #374151; |
| } |
| |
| .btn-secondary:hover { |
| background: #e5e7eb; |
| } |
| |
| .docs-link { |
| text-align: center; |
| margin-top: 2rem; |
| } |
| |
| .docs-link a { |
| color: white; |
| text-decoration: none; |
| font-size: 1.1rem; |
| padding: 1rem 2rem; |
| background: rgba(255,255,255,0.2); |
| border-radius: 10px; |
| backdrop-filter: blur(10px); |
| transition: all 0.3s ease; |
| display: inline-block; |
| } |
| |
| .docs-link a:hover { |
| background: rgba(255,255,255,0.3); |
| transform: translateY(-2px); |
| } |
| |
| @media (max-width: 768px) { |
| h1 { |
| font-size: 2rem; |
| } |
| |
| .subtitle { |
| font-size: 1rem; |
| } |
| |
| .cards { |
| grid-template-columns: 1fr; |
| } |
| } |
| </style> |
| |
| <script src="/static/js/api-config.js"></script> |
| <script> |
| |
| window.apiReady = new Promise((resolve) => { |
| if (window.apiClient) { |
| console.log('β
API Client ready'); |
| resolve(window.apiClient); |
| } else { |
| console.error('β API Client not loaded'); |
| } |
| }); |
| </script> |
|
|
| </head> |
| <body> |
| <div class="container"> |
| <h1>π Choose Your Dashboard</h1> |
| <p class="subtitle">Select the version that best fits your needs</p> |
|
|
| <div class="cards"> |
| |
| <a href="/static/pages/dashboard/index-modern.html" class="card"> |
| <div class="card-header"> |
| <div class="card-icon">β¨</div> |
| <span class="badge new">Recommended</span> |
| </div> |
| |
| <h2>Modern Dashboard</h2> |
| <p>Completely redesigned with 40+ integrated data sources and modern UI/UX</p> |
| |
| <ul class="features"> |
| <li>40+ API sources with auto-fallback</li> |
| <li>Modern responsive design</li> |
| <li>Dark mode support</li> |
| <li>Collapsible sidebar (280px β 72px)</li> |
| <li>Real-time price widgets</li> |
| <li>News aggregation (12+ sources)</li> |
| <li>Fear & Greed index (10+ sources)</li> |
| <li>99%+ uptime with fallbacks</li> |
| <li>Zero import errors</li> |
| <li>Mobile-optimized</li> |
| </ul> |
| |
| <button class="btn btn-primary">Open Modern Dashboard β</button> |
| </a> |
|
|
| |
| <a href="/static/pages/dashboard/index.html" class="card"> |
| <div class="card-header"> |
| <div class="card-icon">π</div> |
| <span class="badge legacy">Legacy</span> |
| </div> |
| |
| <h2>Classic Dashboard</h2> |
| <p>Original dashboard (now with fixed imports)</p> |
| |
| <ul class="features"> |
| <li>Basic API integration</li> |
| <li>Original design</li> |
| <li class="unavailable">Limited fallback options</li> |
| <li class="unavailable">No dark mode</li> |
| <li class="unavailable">Fixed sidebar</li> |
| <li class="unavailable">Fewer data sources</li> |
| <li class="unavailable">Manual error handling</li> |
| <li>Recently fixed import errors</li> |
| <li>Familiar interface</li> |
| </ul> |
| |
| <button class="btn btn-secondary">Open Classic Dashboard β</button> |
| </a> |
| </div> |
|
|
| <div class="docs-link"> |
| <a href="/MIGRATION_GUIDE.md" target="_blank">π View Migration Guide</a> |
| <a href="/MODERN_UI_UX_GUIDE.md" target="_blank">π Full Documentation</a> |
| </div> |
|
|
| <div style="text-align: center; margin-top: 3rem; color: rgba(255,255,255,0.8);"> |
| <p><strong>Issues Fixed:</strong></p> |
| <p>β
Missing config.js export</p> |
| <p>β
Import errors resolved</p> |
| <p>β
40+ API sources integrated</p> |
| <p>β
Automatic fallback chains</p> |
| <p style="margin-top: 1rem; font-size: 0.9rem;"> |
| <strong>Recommendation:</strong> Use the Modern Dashboard for best experience |
| </p> |
| </div> |
| </div> |
| </body> |
| </html> |
|
|
|
|