Веб-сервис для кейса КосмоХакатон 2026: загрузка сценария cosmo-A-1.0, настройка очереди запуска / RAAN / фазирования / отказов, расчёт покрытия и сквозных маршрутов client→gateway, просмотр сети на плоской карте и в 3D, сравнение вариантов и выгрузка результата cosmo-A-result-1.0.
- Python 3.11+
- Node.js 20+ (для UI)
- NumPy (ставится из
backend/requirements.txt)
cd backend
python -m pip install -r requirements.txt
set PYTHONPATH=.
uvicorn api.main:app --reload --host 127.0.0.1 --port 8000(Linux/macOS: export PYTHONPATH=.)
API: http://127.0.0.1:8000/docs
cd frontend
npm install
npm run devUI: http://127.0.0.1:5173 (прокси /api → backend :8000)
- Откройте UI → «Проект» → Полная группировка (
01_full_constellation.json). - «Запустить расчёт» → смотрите метрики и вкладку «Сеть».
- Переключайте Плоская карта / 3D, BFS / Dijkstra, двигайте таймлайн; запасные пути — кнопки «осн. / +1».
- Смените
launch_stageна 1, сохраните вариант, сравните с полной группировкой.
Встроенные сценарии лежат в data/scenarios/ (копии из Задание/Данные).
docker compose up --build -d- UI: http://<server>:8080
- API напрямую: http://<server>:8000
Варианты и результаты пишутся в data/variants и data/results (volume).
Переменные см. .env.example.
- docs/ARCHITECTURE.md — слои и поток данных
- docs/API.md — REST-эндпоинты
- docs/CALC.md — формулы ↔ код, куда править математику
cd backend
python -m pytest tests/test_calc.py -vСверка snapshot со штатным Задание/Расчетный модуль/geometry.py.
backend/ FastAPI + calc (geometry, routing, metrics, simulation)
frontend/ React + Vite (Leaflet 2D, R3F 3D)
data/scenarios/ демо JSON
data/variants/ сохранённые варианты
data/results/ выгрузки расчётов
docs/
Задание/ исходные материалы хакатона