Files
auracaster-webui/main_mock.py
2025-03-11 08:51:02 +01:00

56 lines
1.6 KiB
Python

"""
Main entry point for the Airport Announcement System.
This script starts both the backend API and the Streamlit frontend.
"""
import subprocess
import sys
import time
import os
from pathlib import Path
def start_backend():
"""Start the backend API server."""
print("Starting backend API server...")
backend_process = subprocess.Popen(
[sys.executable, "-m", "uvicorn", "mock_backend.mock_api:app", "--host", "0.0.0.0", "--port", "7999", "--reload"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True
)
# Wait a moment to ensure the backend has started
time.sleep(2)
return backend_process
def start_frontend():
"""Start the Streamlit frontend."""
print("Starting Streamlit frontend...")
frontend_process = subprocess.Popen(
[sys.executable, "-m", "streamlit", "run", "auracaster-webui.py"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True
)
return frontend_process
if __name__ == "__main__":
# Ensure we're in the correct directory
os.chdir(Path(__file__).parent)
# Start the backend and frontend
backend_process = start_backend()
frontend_process = start_frontend()
print("Airport Announcement System is running!")
print("Backend API: http://localhost:7999")
print("Frontend: http://localhost:8501")
try:
# Keep the main process running
while True:
time.sleep(1)
except KeyboardInterrupt:
print("\nShutting down Airport Announcement System...")
backend_process.terminate()
frontend_process.terminate()
print("Shutdown complete.")