Добро пожаловать!

Вы просматриваете обучающий курс к тестовому заданию от компании MetaLamp на позицию стажера NoCode-разработчика.

Автор: Константин Терехов (, Telegram)

Ссылка на рекламный лэндинг на платформе Tilda:

Реализованный функционал
Таблица “Ответы”
содержит ответы всех пользователей на все вопросы
настроена фильтрация по вопросу и по пользователю
таблица осуществляет проверку правильности ответов, генерирует сообщение для пользователя и подставляет его на страницу с тестом
Таблица “База ответов”
содержит список вопросов, правильных и неправильных ответов, подсказок к ним
изменение какого-либо значения поменяет его во всем тесте (на поля таблицы ссылаются названия кнопок, вопросы в тестах и сообщения об успехе или ошибке для пользователя)
Страницы с тестами
почти полностью заполняются данными из таблицы “база ответов”, достаточно поменять вопросы в ней и можно получить новый тест
при ошибке пользователю выдается сообщение с “подсказкой” и указанием правильного ответа, при правильном ответе будет “поздравление” и более подробная версия ответа
пока пользователь не ответит на вопрос, на месте сообщения находится заглушка “выберите ответ”
кнопки ответа блокируются, если ответ пользователя на этот вопрос уже находится в таблице “Ответы”

О выполнении задания
В целом это был очень клевый опыт, я за неделю погрузился в новую технологию, имея под рукой “метод тыка” и справочник по формулам. Особенно весело было, когда курс уже был собран и началась отладка. У меня курс из-за неправильно написанного в самом начале фильтра пользователя, отказывался работать с несколькими юзерами. Хотя я как мог старался продумать логику взаимодействий с самого начала. Я прошел некий путь от злости на саму платформу за реализацию некоторых вещей, до своеобразной “любви” к ней :) Но читаемость формул все равно вызывает вопросы.

Изначально не совсем была понятна концепция кнопок, ограниченных в действиях, но при этом они могут нажимать на другие кнопки, но это было до того, как я нашел функцию RunActions().
Мне не хватило лимитов по кнопкам, поэтому пришлось навигацию между страницами поставить на обычные ссылки.

Я отталкивался от 2 вариантов решения задачи.

1-й вариант был реализовать обратную связь для пользователя через таблицу над кнопками ответа, в которую бы добавлялась строка с текстом в зависимости от правильности ответа. Хотя многие элементы в таблице можно скрыть, и у платформы широкие возможности работы именно с таблицами, такой вариант мне показался слегка “костыльным”(внешне таблица все равно видна если навести мышкой, нужно куда-то вешать удаление строк, и при прохождении несколькими пользователями все это вылезет).

2-й вариант: реализация через формулу непосредственно в тексте, которая проверяет две вещи: получен ли ответ от текущего пользователя, и выдает либо заглушку “выберите ответ”, либо сообщение из таблицы. Как раз за проверку правильности и генерацию сообщения в этом случае отвечает таблица. На этом варианте я и остановился. В ходе разработки появилась необходимость в создании “Базы ответов”, для нормальной генерации разных сообщений об успехе или ошибке (сначала я хотел проверку ответов и заполнение строк вешать на кнопки). Такой подход оказался в разы удачнее, имея такую таблицу я смог почти все вещи завязать на двух таблицах, оставив минимум на кнопках. Как вывод, из этого проекта получился неплохой “движок” для подобных курсов на этой платформе.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.