Files
tech-service-portal/tools/guide
darkorion 0f239d5015 feat: документация из Nextcloud, график у сотрудника, автоочистка фото, мониторинг, итог мастера, фильтр по местам; доп. сервисы в docker-compose
- docker-compose.yml: профили docs (Nextcloud), office (ONLYOFFICE Document Server), ai (Ollama + скачивание модели)
- автонастройка: адреса Nextcloud, ONLYOFFICE, портала и модели подставляются из .env или по именам сервисов
  во внутренней сети Docker; значения из интерфейса важнее
- локальная модель в своей сети (имя сервиса, частный IP) подключается без ключа API
- .env.example, docs/DEPLOY.md (раздел 7а), README
2026-10-13 13:27:20 +03:00
..

Сборка руководства пользователя (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).