feat: Add professional web-based optimization dashboard
Complete dashboard UI for controlling and monitoring optimization runs. Backend API (Flask): - RESTful endpoints for study management - Start/stop/resume optimization runs - Real-time status monitoring - Configuration management - Visualization data endpoints Frontend (HTML/CSS/JS + Chart.js): - Modern gradient design with cards and charts - Study list sidebar with metadata - Active optimizations monitoring (5s polling) - Interactive charts (progress, design vars, constraints) - Trial history table - New optimization modal - Resume/delete study actions Features: - List all studies with trial counts - View detailed study results - Start new optimizations from UI - Resume existing studies with additional trials - Real-time progress monitoring - Delete unwanted studies - Chart.js visualizations (progress, DVs, constraints) - Configuration file selection - Study metadata tracking Usage: python dashboard/start_dashboard.py # Opens browser to http://localhost:5000 Dependencies: flask, flask-cors (auto-installed) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
45
dashboard/start_dashboard.py
Normal file
45
dashboard/start_dashboard.py
Normal file
@@ -0,0 +1,45 @@
|
||||
"""
|
||||
Atomizer Dashboard Launcher
|
||||
|
||||
Simple script to start the dashboard server and open the browser.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import webbrowser
|
||||
import time
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
|
||||
def main():
|
||||
dashboard_dir = Path(__file__).parent
|
||||
api_script = dashboard_dir / 'api' / 'app.py'
|
||||
|
||||
print("="*60)
|
||||
print("ATOMIZER DASHBOARD LAUNCHER")
|
||||
print("="*60)
|
||||
print(f"\nStarting dashboard server...")
|
||||
print(f"Dashboard will open at: http://localhost:5000")
|
||||
print("\nPress Ctrl+C to stop the server")
|
||||
print("="*60)
|
||||
|
||||
# Give user a moment to read
|
||||
time.sleep(2)
|
||||
|
||||
# Open browser after a short delay
|
||||
def open_browser():
|
||||
time.sleep(3) # Wait for server to start
|
||||
webbrowser.open('http://localhost:5000')
|
||||
|
||||
import threading
|
||||
browser_thread = threading.Thread(target=open_browser, daemon=True)
|
||||
browser_thread.start()
|
||||
|
||||
# Start the Flask server
|
||||
try:
|
||||
subprocess.run([sys.executable, str(api_script)], cwd=str(dashboard_dir))
|
||||
except KeyboardInterrupt:
|
||||
print("\n\nShutting down dashboard server...")
|
||||
print("Goodbye!")
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user