#!/usr/bin/env python3 """ Real-time Fleet Resource Optimization Simulator Launcher Simple launcher script for the comprehensive fleet optimization system """ import sys import os import subprocess import time from pathlib import Path def check_dependencies(): """Check if required dependencies are installed""" required_packages = [ 'pandas', 'numpy', 'plotly', 'gradio', 'requests', 'google-generativeai', 'aiohttp' ] missing_packages = [] for package in required_packages: try: __import__(package.replace('-', '_')) except ImportError: missing_packages.append(package) if missing_packages: print("āŒ Missing required packages:") for package in missing_packages: print(f" - {package}") print("\nšŸ“¦ Install missing packages with:") print(" pip install -r requirements.txt") return False print("āœ… All required packages are installed") return True def test_api_connections(): """Test API connections""" print("šŸ”— Testing API connections...") try: from realtime_api_client import test_api_connections test_api_connections() print("āœ… API connections successful") return True except Exception as e: print(f"āš ļø API connection issues: {e}") print(" The simulator will continue with simulated data") return False def launch_demo(): """Launch the comprehensive demo interface""" print("šŸš€ Launching Real-time Fleet Optimization Demo...") try: from demo_realtime_simulator import main main() except KeyboardInterrupt: print("\nšŸ›‘ Demo stopped by user") except Exception as e: print(f"āŒ Error launching demo: {e}") return False return True def launch_optimizer(): """Launch the real-time optimizer only""" print("šŸš€ Launching Real-time Fleet Optimizer...") try: from realtime_fleet_optimizer import create_realtime_fleet_interface demo = create_realtime_fleet_interface() demo.launch(share=True, server_name="0.0.0.0", server_port=7860) except KeyboardInterrupt: print("\nšŸ›‘ Optimizer stopped by user") except Exception as e: print(f"āŒ Error launching optimizer: {e}") return False return True def show_menu(): """Show the main menu""" print("\n" + "="*60) print("šŸš— Real-time Fleet Resource Optimization Simulator") print("="*60) print("Choose an option:") print("1. šŸŽ® Launch Full Demo Interface (Recommended)") print("2. šŸš— Launch Real-time Optimizer Only") print("3. šŸ”— Test API Connections") print("4. šŸ“Š View Analytics Dashboard") print("5. ā“ Show Help") print("6. 🚪 Exit") print("="*60) def show_help(): """Show help information""" print("\nšŸ“– Help Information") print("-" * 40) print("šŸŽ® Full Demo Interface:") print(" - Comprehensive demo with multiple scenarios") print(" - Rush hour, weather impact, AI optimization demos") print(" - Interactive testing and validation") print(" - Access at: http://localhost:7860") print() print("šŸš— Real-time Optimizer:") print(" - Core fleet optimization system") print(" - Live dashboard with real-time data") print(" - AI-powered vehicle allocation") print(" - Access at: http://localhost:7860") print() print("šŸ”— API Connections:") print(" - Test Google Maps, OpenWeather, and Gemini APIs") print(" - Verify API keys and connectivity") print(" - Check rate limiting and caching") print() print("šŸ“Š Analytics Dashboard:") print(" - Performance metrics and trends") print(" - Historical data analysis") print(" - Export capabilities") print() print("šŸ”§ Configuration:") print(" - API keys are pre-configured") print(" - Fleet size: 50 vehicles (configurable)") print(" - Update interval: 30 seconds") print(" - AI optimization: Enabled by default") def main(): """Main launcher function""" print("šŸš— Real-time Fleet Resource Optimization Simulator") print("Initializing...") # Check dependencies if not check_dependencies(): sys.exit(1) # Test API connections api_status = test_api_connections() while True: show_menu() try: choice = input("\nEnter your choice (1-6): ").strip() if choice == '1': launch_demo() elif choice == '2': launch_optimizer() elif choice == '3': test_api_connections() elif choice == '4': print("šŸ“Š Analytics Dashboard") print(" Run the demo or optimizer to collect analytics data") print(" Analytics are automatically collected during simulation") elif choice == '5': show_help() elif choice == '6': print("šŸ‘‹ Goodbye!") break else: print("āŒ Invalid choice. Please enter 1-6.") except KeyboardInterrupt: print("\nšŸ‘‹ Goodbye!") break except Exception as e: print(f"āŒ Error: {e}") input("\nPress Enter to continue...") if __name__ == "__main__": main()