refractoring

This commit is contained in:
2025-03-11 08:51:02 +01:00
parent 7e9a45988c
commit 8fab59a493
5 changed files with 60 additions and 2 deletions

55
main_mock.py Normal file
View File

@@ -0,0 +1,55 @@
"""
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.")

3
mock_backend/__init__.py Normal file
View File

@@ -0,0 +1,3 @@
"""
Mock backend for the Airport Announcement System.
"""

View File

@@ -1,5 +1,5 @@
from fastapi import FastAPI, HTTPException
from backend_model import announcement_system, EndpointGroup, AnnouncementStates
from mock_backend.mock_backend import announcement_system, EndpointGroup
from typing import List
import uvicorn
@@ -63,4 +63,4 @@ def get_available_endpoints():
return announcement_system.available_endpoints
if __name__ == "__main__":
uvicorn.run('api:app', host="0.0.0.0", port=7999, reload=True)
uvicorn.run('mock_backend.mock_api:app', host="0.0.0.0", port=7999, reload=True)