Сердце задачи — рабочее поле редактора и набор блоков-полей. Нужен приличный ассортимент: строка, абзац текста, почта, число, дата, список с выбором, множественный выбор, галочки, переключатели, прикрепление файла, шкала оценки и разделитель блоков. У каждого поля настраиваются название, подсказка внутри, поясняющий текст, значение по умолчанию и признак обязательного. Сверху — правила зависимости: одно поле или целый блок появляется, скрывается либо ведёт к завершению анкеты в зависимости от того, что человек ответил раньше. Для каждой формы нужна панель с откликами: перечень ответов с поиском и отборами, разворот отдельного отклика, выгрузка в CSV и счётчик, показывающий динамику по датам. И, конечно, готовая форма должна отдавать кусок кода для вставки — встроенный блок и всплывающее окно для чужого сайта, а также отдельный адрес-ссылку для рассылки.
Проверку введённого, отсечение спам-ботов и корректный вид на телефоне считаю обязательной частью сдачи, а не приятным дополнением. Жду опрятный код с комментариями, короткий разговор при передаче проекта и возможность потом дорисовывать новые типы полей, не ломая ядро. В отклике опишите предпочитаемый стек и как вы храните описание формы.
— Рабочее поле с перетаскиванием и сменой порядка блоков
— Больше десятка настраиваемых типов полей и разделители блоков
— Правила зависимости и ветвление по прежним ответам
— Панель откликов: поиск, отборы, разворот записи, выгрузка CSV
— Встроенный блок и всплывающее окно плюс адрес-ссылка для рассылки
— Проверка данных, защита от ботов и вёрстка под телефоны