# ДЖАЗ-фестиваль

## **Постановка задачи:**

Техническое задание было разработано и предоставлено клиентом:

<figure><img src="https://4279258747-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MA-Z2M1_A46lNNOHMtZ%2Fuploads%2FoZh8b4Uh0H4wQcjLIDMN%2Fimage.png?alt=media&#x26;token=64780e56-6f29-4d3a-90f7-959a4a04e86c" alt=""><figcaption></figcaption></figure>

**Основные требования:**

✅ Пользователь при входе в бот проходит миниопрос, на основе выбора ответов выдаётся один из четырёх персонажей, обладающих своими характеристиками:

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><img src="https://4279258747-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MA-Z2M1_A46lNNOHMtZ%2Fuploads%2FTlkTg7ANcCFEt7E09Zai%2Fimage.png?alt=media&#x26;token=d851df2c-6d07-4c34-979d-3fe66892c1d1" alt=""></td><td></td><td></td></tr><tr><td><img src="https://4279258747-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MA-Z2M1_A46lNNOHMtZ%2Fuploads%2F8t7oq8OsMHcGrpmrsNNE%2Fimage.png?alt=media&#x26;token=00e85a4a-e924-46f0-8bc3-4924424600ad" alt=""></td><td></td><td></td></tr><tr><td><img src="https://4279258747-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MA-Z2M1_A46lNNOHMtZ%2Fuploads%2F2i27IUgRdQ5s0kOCLX7E%2Fimage.png?alt=media&#x26;token=b3dcd3fc-4da2-4ef0-b394-1a9b3955c08b" alt=""></td><td></td><td></td></tr><tr><td><img src="https://4279258747-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MA-Z2M1_A46lNNOHMtZ%2Fuploads%2FRuzhtBJ3UFkLyXsLRh7j%2Fimage.png?alt=media&#x26;token=e3a2c048-b597-4db0-86e0-2ff3a2154939" alt=""></td><td></td><td></td></tr></tbody></table>

✅ Регистрация пользователя и создание уникальной QR визитки.

✅ Возможность сканировать QR коды фестиваля (QR визитки других участников, QR коды спонсоров, QR коды расписаний) для улучшения способностей своего персонажа.

✅ Зачисление баллов при сканировании QR-кода участника или спонсора должно быть единожды, при повторном сканировании баллы не начисляются.

📌**Самое интересное!** Это QR-коды расписаний. За всего одним QR-кодом расписания прячется расписание всего 3х-дневного фестиваля. Ежедневно не менее 16 мероприятий в одном городе, т.е. в одном QR-коде открытой площадки (к примеру) Самары, было зашито 48 мероприятий, каждое из которых проводится в своё время. \
&#x20;      При сканирования QR-кода расписания пользователем, бот определяет текущее время и выдаёт актуальную информацию о мероприятии, начисленных баллах и так далее.

✅ В боте должно быть админ-меню, позволяющее:

❗️Создание и редактирование расписаний, добавление спонсоров и генерацию QR-кодов.

❗️Просмотр статистики посещения  мероприятий в режиме онлайн, просмотр статистики по выданному мерчу.

❗️Срочное оповещение по пользователям выбранного города.

✅ По окончанию 3х-дневного фестиваля пользователям предоставляется возможность обмена баллов на различные мерчи. Администратор Фестиваля, сканируя  QR-визитку пользователя, должен получать информацию о нём - имя, текущий баланс. В случае, если у пользователя достаточное количество баллов для приобретения желаемого мерча, бот осуществляет списание с баланса пользователя. Пользователь должен получить уведомление о списании.

По задумке клиента должна была использоваться база данных для хранения информации о мероприятиях городов и графика их прохождений.

## Реализация

Приняли решение уйти от базы данных и использовать только возможности Salebot - словари, массивы, списки, API-функции. Этого оказалось более, чем достаточно.

<figure><img src="https://4279258747-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MA-Z2M1_A46lNNOHMtZ%2Fuploads%2FT5LOAjMWEci3R6PVc3IK%2Fimage.png?alt=media&#x26;token=534b8131-333a-4f83-8251-4fe4ad8cc4d0" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/7HyUg3gIanY>" %}

Разработчик Иван Малютин (<https://t.me/ivan_malyutin>)

Обрашайтесь - обязательно найдем оптимальное решение Вашей задачи.
