# Сборка руководства пользователя (docs/user-guide.pdf) PDF собирается автоматически: скриншоты снимаются на тестовых данных, элементы размечаются по реальным координатам (рамка, номер, стрелка), текст — в `build_pdf.py`. После изменения интерфейса пересоберите руководство. Нужно: Python-окружение проекта + `pip install pillow websockets pymupdf` (только для сборки руководства), Edge или Chrome (Windows), для скриншотов Android — эмулятор с установленным приложением. ``` # 1. чистая БД с тестовыми данными и сервер на :8000 python tools/guide/seed_server.py <каталог> DATABASE_URL=sqlite:///<каталог>/guide.db DATA_DIR=<каталог> uvicorn app.main:app --port 8000 # положите APK в <каталог>/apk # 2. веб-интерфейс и мобильная версия (Edge headless через DevTools Protocol) python tools/guide/shots_web.py # 3. приложение Android (эмулятор, adb reverse tcp:8000 tcp:8000) python tools/guide/shots_android.py # 4. PDF python tools/guide/build_pdf.py ``` Какие экраны снимать и что на них отмечать — в `spec.py` (подписи меток сразу попадают в легенду под рисунком). Сервер можно поднять на другом порту: `GUIDE_BASE=http://localhost:8010` для `shots_web.py`, `GUIDE_PORT=8010` для `shots_android.py` (в приложении адрес остаётся localhost:8000, adb reverse перенаправит). Скриншоты Android снимаются отладочной сборкой (`assembleDebug`): релиз не пускает http. Скриншоты, зависящие от «свежих» нарядов, снимаются на только что созданной БД: после прогона состояние нарядов меняется, поэтому для повторного полного прогона пересоздайте БД (шаг 1).