Стенд Avito для фестиваля 404 в Самаре
Весной 2019-го я попал в Avito по рекомендации Саши Катина. Несмотря на то, что мы находились в разных юнитах, вместе с Сашей мы иногда занимались совместными проектами.
Один из них — стенд Avito для фестиваля 404 в Самаре, который прошёл в том же году.
Как работал стенд
Человек пришедший на стенд, видел перед собой два экрана: один большой (для информации) и поменьше (для взаимодействия).
На экране поменьше была большая кнопка. При нажатии на неё, появлялась случайная фраза на большом экране, которая сразу же печаталась в виде стикера.
Если у фразы в конце была звёздочка (вот такая *), человек получал приз и стикер. Если звёздочки не было, получал только стикер.
Это были абсурдные фразы в духе «Аварийный кастет со смазкой» или «Безвкусное кольцо 80-го уровня». Предполагалось, что люди будут их клеить на телефоны и ноутбуки.
Процесс разработки
Сразу скажу, что я не могу показать получившийся код, NDA. Но могу в общих чертах рассказать про процесс создания стенда.
Как я уже сказал выше, в системе было задействовано два экрана (телевизор и iPad), ноутбук и специальный принтер для печати этикеток.
Саша взял на себя весь front-end, взаимодействие пользователя со стендом и сделал так, чтобы принтер, экраны и ноутбук — подружились. Это сложнее, чем кажется.
За проектирование и монтаж стенда отвечал подрядчик.
Моя задача заключалась в том, чтобы написать логику формирования случайных фраз. Ещё мне предстояло реализовать случайное выпадение звёздочки, сбалансировать шанс её появления и привязать всё это к датам проведения фестиваля. В довесок, нужно ограничить количество побед, чтобы их не было больше положенного количества в день (подарков на всех бы просто не хватило).
В лучших традициях, прототип стенда был собран на Google Sheets кем-то из креативной группы. В таблицах находились слова, которые были разбиты по родам. При обновлении страницы, появлялась случайная фраза из них.
Чтобы начать работу, нужно было выгрузить всё из таблиц и подготовить данные. В итоге, у меня получилось 4 разных файла: he.js
, she.js
, it.js
и together.js
. Внутри файлов было по два массива с подлежащим и сказуемым (в together.js
было только местоимение).
После этого, я повторил логику работы прототипа на JavaScript. В общем, это было не сложно. Только было нужно определять первый выпавший случайный массив, чтобы все следующие слова брались из нужных файлов. Это делалось, чтобы получались осмысленные фразы, а не что-то в духе «Алкогольный бегство анонимно».
Статистику и все сгенерированные фразы мы записывали в local storage
браузера. В нём же хранили количество оставшихся подарков. Каждый раз, при срабатывании скрипта, если выпадал приз, то из числа в local storage
вычитался 1
.
Больше всего сложностей было с балансировкой шансов выпадения приза. Мне показалось, что проще всего это будет сделать через подбрасывание монетки. Монетка, конечно, не настоящая и выдаёт 0
или 1
. Всё это привязывалось к датам проведения фестиваля и было сбалансировано так, чтобы в первый день мы раздали 2 / 3 подарков, а во второй 1 / 3.
Результат
На написание всего кода и отладку, вместе с Сашей мы потратили около двух недель, работая вечерами.
За 2 дня фестиваля, стендом воспользовалось более 1 000 человек. Были розданы все подарки.
К сожалению, я не попал на сам фестиваль и не видел, как люди пользуются стендом. По отзывам ребят, многим из посетителей он понравился.
За фотографии и видео я хочу поблагодарить Сашу Катина. Если у вас остались вопросы, вы можете их задать в чате канала: @codeque.