Обзор для пользователя¶
Flutter-клиент Grom работает как веб-UI и как приложение для Android. Веб-UI отдаёт тот же процесс grom: откройте базовый URL сервера в браузере (например http://localhost:8080/ с конфигом для разработки по умолчанию). Экраны и сценарии совпадают с Android; живая GPS-запись доступна только на Android. Строки UI есть на английском, русском и немецком.
Если вы не вошли в аккаунт, на Home / «Главная» показывается приветственный экран с логотипом Grom, кратким описанием и кнопками Sign in / «Вход» и Register / «Регистрация». На Android в тексте также напоминание указать адрес сервера Grom при входе.
На Android (и позже iOS) при входе и регистрации запрашивается URL сервера. Можно указать голый хост, например grom.example.com (без https://). При отправке приложение проверяет GET /api/v1/status сначала по HTTPS, затем по HTTP, подставляет найденный URL в поле и продолжает. Если вы уже ввели http:// / https:// или явный порт, значение используется как есть. HTTP поддерживается для локальных / LAN-инстансов без TLS; для всего, что доступно из интернета, предпочтителен HTTPS.
Вход и сброс пароля¶
Если оператор включил исходящую почту (mailer в конфиге сервера), на экране входа показывается Forgot password? / «Забыли пароль?». Введите email аккаунта; сервер отвечает одинаково, зарегистрирован адрес или нет. Проверьте почту: ссылка для сброса открывается в браузере (веб-UI по адресу /reset-password). После установки нового пароля войдите снова в приложении или в вебе. Сброс пароля недоступен, если сервер сообщает password_reset_enabled: false.
Когда оператор включает captcha (auth.captcha.enabled), на входе, регистрации и «забыли пароль» появляется чекбокс I'm not a robot / «Я не робот». Отметьте его и дождитесь локальной проверки proof-of-work перед отправкой (на слабых устройствах это может занять время). Установка нового пароля по ссылке из письма captcha не требует.
Профиль и удаление аккаунта¶
В Profile / «Профиль» через меню переполнения можно изменить профиль или Delete account / «Удалить аккаунт». Полные шаги, какие данные удаляются и заметки по федерации: Удаление аккаунта Grom.
Эта страница — краткий тур по основным экранам (скриншоты ниже — с Android). Настройка сервера (установка, конфиг, TLS, федерация) — в документации для администраторов. HTTP API: Swagger на /api/docs/ на работающем сервере.
Тренировки¶
Домашняя лента показывает активности с типом, датой, устройством, дистанцией/временем (и темпом или набором высоты, когда уместно), плюс превью карты при наличии GPS-трека. На каждой карточке под картой и фото — социальная панель: слева лайки (палец вверх — лайк/анлайк чужой тренировки; по счётчику — кто лайкнул), справа комментарии (счётчик + иконка). Свои тренировки лайкать нельзя; кнопка лайка на них неактивна. Комментировать можно свои и чужие. По иконке комментариев открывается тред: добавить комментарий (до 1000 символов) или удалить свой (владелец тренировки может удалить любой комментарий к ней).

Откройте тренировку для полной карточки: интерактивная карта (если есть трек), галерея фото, та же социальная панель, график скорости по дистанции со средним и максимумом и график пульса (по дистанции при GPS, иначе по прошедшим минутам) со средним и максимумом ЧСС. Тап по графику показывает значения в точке.
Тренировки можно создавать вручную, импортировать треки GPX/FIT, прикреплять фото и связывать снаряжение. При редактировании можно добавлять и удалять фото (до 20). При создании имя по умолчанию — локализованный тип спорта и следует за сменой спорта, пока вы его не отредактируете. На Android также можно записать живой GPS-трек (см. ниже).
Живая запись (Android)¶
Откройте Add workout → Record / «Добавить тренировку → Запись», чтобы вести маршрут на карте с живой длительностью, скоростью и дистанцией. Держите уведомление записи, пока сессия активна. Автопаузу можно включать и выключать.

Снаряжение¶
Управляйте велосипедами, обувью и другим снаряжением. Элементы сгруппированы по категориям; суммарная дистанция накапливается по мере использования на тренировках (в том числе после массового импорта Strava).

Социальные функции и федерация¶
Подписывайтесь на пользователей того же инстанса и смотрите общую ленту. Лайкайте и комментируйте тренировки тех, на кого подписаны (локально или через федерацию); счётчики видны в списке и на детальной странице.
Если оператор включает федерацию ActivityPub, можно также подписываться на спортсменов на других инстансах Grom (на сервере нужен HTTPS). Лайки удалённых тренировок уходят как ActivityPub Like; снятие лайка — Undo. Комментарии к удалённым тренировкам — Create Note с inReplyTo; удаление комментария — Delete. Входящие лайки и комментарии с других инстансов обновляют локальную тренировку так же. Удаление аккаунта и поведение федеративного Delete актора описаны в Удаление аккаунта Grom.
Импорт Strava¶
В Integration → Strava загрузите ZIP массового экспорта данных Strava. Grom импортирует активности, треки, фото и снаряжение. Сопоставление колонок и поведение на сервере — в Массовый импорт Strava.
Health Sync + Google Drive (Android)¶
На Android в Integration можно включить синхронизацию Health Sync + Google Drive. Health Sync пишет CSV/FIT/GPX активностей на Drive; Grom импортирует их кнопкой синхронизации на Home. Настройка и OAuth: Health Sync + Google Drive.