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>
46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
"""
|
|
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()
|