Эта статья проводит организатора через весь путь проведения соревнования: от создания старта в календаре сайта и онлайн-регистрации участников до судейства гонки на месте и публикации результатов. Весь процесс — от пары кликов в браузере до отсечки времени в поле — связан в единую цепочку, и при этом в день старта интернет не обязателен.

Картина целиком

  1. Организатор добавляет свой старт в календарь на сайте.
  2. В пару кликов включает регистрацию (с подтверждением заявок или без) и принимает участников онлайн.
  3. Перед гонкой закрывает регистрацию и синхронизирует финальный список участников на локальный компьютер судьи.
  4. На месте судит гонку связкой программ хронометража (регистрация на старте, отсечка времени, расчёт протокола).
  5. Готовый протокол выгружается обратно на сайт и виден всем — при необходимости в режиме реального времени.

Ниже — каждый шаг подробно.

Шаг 1. Создание старта и регистрация на сайте

Добавить соревнование в календарь

Залогиньтесь и откройте «Календарь → Добавить соревнование». Заполните название, дисциплину, дату и место. Организаторы и администраторы публикуют старт сразу; заявки от обычных участников проходят модерацию.

Включить регистрацию в пару кликов

На странице соревнования (для организатора) есть настройки регистрации. Ключевые параметры:

  • Режим регистрации: «только за себя» (привязка к аккаунту участника) или «свободный» (можно зарегистрировать любого человека — удобно, когда заявку подаёт капитан команды или волонтёр).
  • Подтверждение заявок: с аппрувом (каждую заявку организатор подтверждает вручную) или без (участник считается заявленным сразу).
  • Дедлайн регистрации и лимит участников.
  • Категории/группы (например, по возрасту и полу) и режим даты рождения (год или полная дата).
  • Эстафета/команды с ограничением числа участников в команде.

Оплата стартовых взносов

Важно: автоматической онлайн-оплаты взноса участником на сайте пока нет. Если включён сбор взносов, факт оплаты подтверждает организатор вручную — кнопкой «Отметить оплаченным» в списке участников. То есть участник переводит взнос удобным вам способом (вне сайта), а вы отмечаете его как оплатившего. Это запланировано к развитию, но на данный момент работает именно так.

Приём заявок и управление участниками

В списке участников организатор видит все заявки и может подтверждать, отклонять (с указанием причины), отмечать оплату и удалять записи. Список можно выгрузить (CSV) и показывать болельщикам. Настройки отображения позволяют скрывать неоплативших/неподтверждённых до старта.

Закрытие регистрации перед стартом

Когда состав определён (прошёл дедлайн или вы выключили регистрацию), список участников зафиксирован и готов к переносу на компьютер судьи.

Шаг 2. Синхронизация участников на компьютер судьи

У каждого соревнования есть токен системы хронометража — его видно на странице соревнования организатору/админу. По этому токену судейские программы общаются с сайтом без логина-пароля.

В программе Start Protocol Maker откройте Settings → HTTP, укажите адрес сайта и токен — приложение вызовет GET /api/v1/participants/?competition_token=<токен> и заполнит стартовый список заявленными участниками. Дальше всё работает локально, интернет больше не нужен.

Шаг 3. Судейство гонки: система хронометража

Дальше в дело вступает связка из трёх настольных программ (Python 3.14, кроссплатформенный интерфейс). Они обмениваются простыми текстовыми файлами (стартовый протокол, список групп, результаты), поэтому их легко переносить между ноутбуками судей.

Как проходит гонка

  1. Регистрация и номера. В Start Protocol Maker отмечаете явившихся и выдаёте нагрудные номера. Номера можно раздавать автоматически («Get number»), а для раздельного старта — задать первый номер и интервал между участниками в секундах.
  2. Старт. Chronometer фиксирует время старта: индивидуально, по группам или общим масс-стартом.
  3. Финиш и круги. На финише судья нажимает отсечку для каждого участника. Поддерживаются многокруговые гонки (режим «finish / nextLap»), несколько финишных слотов, второй финишный пост и дисквалификация (DSQ).
  4. Протокол. Finish Protocol Generator сводит стартовый протокол и отсечки, считает места (с учётом кругов, контрольных точек, DNF/DNS/DSQ) и формирует красивый HTML-протокол — абсолютный и по группам.

Основные возможности

  • Очная регистрация и выдача номеров: ручной ввод и автонумерация, группы/категории, раздельный старт с интервалом, сдвиг времени и номер этапа.
  • Гибкая отсечка времени: индивидуальный, групповой и масс-старт; несколько финишных слотов; многокруговые гонки; второй финишный пост; DSQ.
  • Умный расчёт протокола: сортировка по кругам и контрольным точкам/сегментам, корректная обработка DNF, DNS и дисквалификаций.
  • Брендированные протоколы: HTML-шаблоны (нейтральный и под конкретный клуб), абсолютный и групповой зачёт.

Работа без интернета (офлайн)

На месте старта интернета часто нет — и это нормально. Все три программы работают локально: регистрация, отсечка времени и генерация протокола используют только файлы на ноутбуке. Связь с сайтом опциональна: список участников вы подтянули заранее, а протоколы можно выгрузить позже. Можно провести всё соревнование полностью офлайн и опубликовать результаты вечером.

Надёжность и бэкапы

Судейство — это ответственность, а ноутбук может зависнуть, разрядиться или пострадать. Поэтому практически каждое действие сохраняется на диск:

  • Start Protocol Maker держит резервную копию протокола (data/spm_backup.txt) и делает снимок при изменениях; при следующем запуске состояние восстанавливается автоматически.
  • Chronometer после почти каждой отсечки пишет снимок с отметкой времени в папку temp/ (temp/stc<время>.txt). При желании автобэкап отключается галочкой «Disable backup».

Практический итог: даже если ноутбук почти полностью выведен из строя, но жёсткий диск уцелел, вы извлечёте из этих снимков большую часть результатов и восстановите протокол.

Публикация результатов на сайте

Готовый протокол возвращается на сайт. В Finish Protocol Generator кнопка Upload отправляет HTML-протокол в POST /api/v1/protocols/upload/ (multipart, с тем же токеном соревнования и флагом is_live). Сайт сохраняет протокол и показывает его на странице соревнования. В режиме «live» протокол можно обновлять по ходу гонки — зрители видят результаты в реальном времени. Есть и альтернативная выгрузка по FTP.

Установка судейских программ (кратко)

Все три программы ставятся одинаково. Нужны Git, Python 3.14 и Poetry.

Предварительно — Python 3.14 и Poetry:

# macOS
brew install git python@3.14 pipx && pipx ensurepath && pipx install poetry

# Linux (Ubuntu/Debian)
sudo apt install git && sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update && sudo apt install python3.14 python3.14-venv
pip3 install pipx && pipx ensurepath && pipx install poetry

# Windows (PowerShell): установите Git и Python 3.14 (отметьте "Add Python to PATH"), затем:
pip install pipx; pipx ensurepath; pipx install poetry

Установка и запуск каждой программы (на примере Start Protocol Maker — для остальных замените URL и папку):

git clone https://github.com/dchernykh1984/StartProtocolMakerPython.git
cd StartProtocolMakerPython
poetry config virtualenvs.in-project true
poetry install --no-root
poetry run python -m app.main

Аналогично: https://github.com/dchernykh1984/ChronometerPython.git (Chronometer) и https://github.com/dchernykh1984/FinishProtocolGeneratorPython.git (Finish Protocol Generator).

Для macOS есть готовые сборки-приложения (.app), которые запускаются двойным кликом без терминала.

Возможность расширения

Система открытая (open source) и модульная, поэтому её легко развивать:

  • Свои шаблоны протоколов — брендирование под клуб/федерацию добавляется отдельным HTML-шаблоном, без изменения логики расчёта.
  • Новые форматы выгрузки — помимо HTTP на сайт есть FTP; по аналогии добавляются коннекторы к другим платформам.
  • Новые источники участников и форматы стартовых протоколов — формат файлов простой и текстовый.
  • Логика расчёта (круги, контрольные точки, очки) вынесена в отдельный модуль и расширяется под нестандартные форматы гонок.

Репозитории


*Описание основано на исходном коде сайта и судейских проектов по состоянию на июнь 2026 года. Точные шаги установки и актуальные возможности смотрите в README соответствующих репозиториев.*