Вы просматриваете обучающий курс к тестовому заданию от компании MetaLamp на позицию стажера NoCode-разработчика.
Автор: Константин Терехов (, Telegram) Ссылка на рекламный лэндинг на платформе Tilda: Реализованный функционал
Таблица “Ответы”
содержит ответы всех пользователей на все вопросы настроена фильтрация по вопросу и по пользователю таблица осуществляет проверку правильности ответов, генерирует сообщение для пользователя и подставляет его на страницу с тестом Таблица “База ответов”
содержит список вопросов, правильных и неправильных ответов, подсказок к ним изменение какого-либо значения поменяет его во всем тесте (на поля таблицы ссылаются названия кнопок, вопросы в тестах и сообщения об успехе или ошибке для пользователя) Страницы с тестами
почти полностью заполняются данными из таблицы “база ответов”, достаточно поменять вопросы в ней и можно получить новый тест при ошибке пользователю выдается сообщение с “подсказкой” и указанием правильного ответа, при правильном ответе будет “поздравление” и более подробная версия ответа пока пользователь не ответит на вопрос, на месте сообщения находится заглушка “выберите ответ” кнопки ответа блокируются, если ответ пользователя на этот вопрос уже находится в таблице “Ответы” О выполнении задания
В целом это был очень клевый опыт, я за неделю погрузился в новую технологию, имея под рукой “метод тыка” и справочник по формулам. Особенно весело было, когда курс уже был собран и началась отладка. У меня курс из-за неправильно написанного в самом начале фильтра пользователя, отказывался работать с несколькими юзерами. Хотя я как мог старался продумать логику взаимодействий с самого начала. Я прошел некий путь от злости на саму платформу за реализацию некоторых вещей, до своеобразной “любви” к ней :) Но читаемость формул все равно вызывает вопросы.
Изначально не совсем была понятна концепция кнопок, ограниченных в действиях, но при этом они могут нажимать на другие кнопки, но это было до того, как я нашел функцию RunActions().
Мне не хватило лимитов по кнопкам, поэтому пришлось навигацию между страницами поставить на обычные ссылки.
Я отталкивался от 2 вариантов решения задачи.
1-й вариант был реализовать обратную связь для пользователя через таблицу над кнопками ответа, в которую бы добавлялась строка с текстом в зависимости от правильности ответа. Хотя многие элементы в таблице можно скрыть, и у платформы широкие возможности работы именно с таблицами, такой вариант мне показался слегка “костыльным”(внешне таблица все равно видна если навести мышкой, нужно куда-то вешать удаление строк, и при прохождении несколькими пользователями все это вылезет).
2-й вариант: реализация через формулу непосредственно в тексте, которая проверяет две вещи: получен ли ответ от текущего пользователя, и выдает либо заглушку “выберите ответ”, либо сообщение из таблицы. Как раз за проверку правильности и генерацию сообщения в этом случае отвечает таблица. На этом варианте я и остановился. В ходе разработки появилась необходимость в создании “Базы ответов”, для нормальной генерации разных сообщений об успехе или ошибке (сначала я хотел проверку ответов и заполнение строк вешать на кнопки). Такой подход оказался в разы удачнее, имея такую таблицу я смог почти все вещи завязать на двух таблицах, оставив минимум на кнопках. Как вывод, из этого проекта получился неплохой “движок” для подобных курсов на этой платформе.