Краткая документация, собранная без лишнего шума.
Эта страница описывает основные механики Anketa: как устроены типы вопросов, как живет интервью, как работают логика, экспорт, медиабиблиотека и ключевые настройки проекта.
Типы вопросов
Типы вопросов
Общие поля: id, type, title, description, required,
timer, а также правила переходов и видимости.
Одиночный выбор
Список вариантов с выбором одного ответа. Поддерживаются закрепленные и взаимоисключающие опции, а также перемешивание.
Множественный выбор
Выбор нескольких вариантов с ограничением минимального и максимального количества ответов.
Текст
Текстовый ответ с минимальной длиной, проверкой по шаблону и подсказкой.
Матрица
Оценка по строкам и столбцам, с поддержкой одиночного или множественного выбора в строке.
Шкала, ранжирование, распределение
Числовые шкалы, выбор top-k и распределение процентов или количества по вариантам.
Запись на слот
Двухшаговая запись на проект: сначала дата с остатками, затем только свободные слоты времени. Сетка слотов настраивается в проекте.
Тепловая карта и информационный блок
Точки на изображении, медиа-блоки, таймеры и режимы просмотра до конца.
Прохождение анкеты
Прохождение анкеты
В тестовом режиме ?test=1 анкета работает как предпросмотр и не пишет ответы в базу. В боевом режиме создается сессия и каждый ответ сохраняется на сервере.
POST /session/openоткрывает или возобновляет интервью поdevice_id.POST /session/answerсохраняет ответ после каждого шага.POST /sessions/<id>/endзавершает интервью.- Для
bookingбронь слота подтверждается только на шагеДалее, без предварительного hold; после выбора слота показывается обязательный номер телефона.
Подробно: /docs/runtime.md
Просмотр ответов
Просмотр ответов
В активном проекте можно открыть список заполненных анкет и перейти внутрь конкретной сессии, чтобы листать вопросы и ответы в порядке анкеты.
- Вход доступен из таблицы активных проектов.
- Таблица
Заполненные анкетыпоказывает сессии кромеin_progress. - Для booking-проектов в admin UI есть отдельная вкладка загрузки слотов, етот режим показывает телефон и кнопку удаления записи.
- Фильтр по статусу собирается из реально загруженных данных.
- Если по выбранному статусу нет сессий, на экране остаётся пустая таблица.
Подробно: /docs/project_responses.md
Экспорт
Экспорт данных
Результаты можно выгружать в CSV, XLSX и SPSS. Поддерживается фильтрация по статусам интервью и анонимизация IP и геоданных.
- Одиночный выбор экспортируется как одно поле, множественный - как бинарные столбцы по вариантам.
- Текст хранится строкой, шкала - числом, матрица - разложением по строкам и столбцам.
- Ранжирование и распределение кодируются в формате, пригодном для дальнейшего анализа.
Подробно: /docs/export.md
Подстановки
Подстановки
В тексты, заголовки и описания можно подставлять ответы на предыдущие вопросы, чтобы создавать более контекстный сценарий.
@@QID- простой ответ.@@QID|N- N-й выбранный вариант или N-я ячейка матрицы.@@QID|#VAL- текст опции со значением VAL.@@QID|#ROW#COL- конкретное значение из матрицы.
Медиа
Загрузка и библиотека медиа
Для info_block и heatmap поддерживаются изображения и видео. В анкете лучше использовать относительные пути вроде /image/... и /video/....
POST /__upload- загрузка дляadminиsuperadmin.GET /media- библиотека медиа для организации.DELETE /media- удаление для административных ролей.
Подробно: /docs/media_library.md
Правила логики
routing_rules, visibility_rules и show_if
Раздел логики управляет переходами через routing_rules, видимостью через visibility_rules и простыми зависимыми вопросами через show_if.
Поддерживаемые операторы
AND,OR,NOT==,!=,<,<=,>,>=IN,NOT_INHAS_ANY,HAS_ALL,HAS_NONE
Шпаргалка и примеры: /docs/logic.md
Готовые JSON-шаблоны
Пример routing_rules
{
"id": "rr1",
"priority": 1,
"if": { "==": ["$q1", "A"] },
"goto": "q5"
}
Пример visibility_rules
{
"id": "vr1",
"priority": 1,
"initial": "VISIBLE",
"action": "HIDE",
"if": { "==": ["$q1", "no"] }
}
Пример зависимого вопроса
{
"show_if": {
"question_id": "q_has_car",
"values": ["yes"],
"mode": "any"
}
}
Быстрый старт
Быстрый старт
Для локальной разработки backend обычно поднимается на 8000, frontend - на 3000. Во frontend API ходит через /api, чтобы dev и prod проксировались одинаково.
Для фонового локального запуска храните логи в output/logs/, а не в корне репозитория.
Подробно: /docs/quickstart.md
Настройки
Настройки анкеты
allow_back- разрешить возврат к предыдущим вопросам.allow_repeat- разрешить повторное прохождение.allow_resuming- продолжать опрос с того же места на том же устройстве.- Для проектов с записью доступны отдельные вкладки сетки слотов и загрузки по слотам.
- Квоты, таймеры и служебные режимы тоже управляются из настроек проекта.
Вопросы и ответы
Вопросы и ответы
На каких устройствах можно проходить опрос?
На компьютере, планшете и смартфоне в современном браузере.
Что делать, если сессия прервалась?
Если включено возобновление, просто откройте ссылку снова - интервью продолжится с последнего места.
Можно ли вернуться к предыдущему вопросу?
Это зависит от настройки allow_back.
Доступна ли повторная попытка?
Это контролируется организатором через allow_repeat.
Как скачать результаты?
В административной части доступен экспорт CSV, XLSX и SPSS.