Кому 6-й кофе в подарок? Переносим простую механику в телеграм бота
Я люблю пить кофе, подсел на него лет 12 назад. И теперь каждый день я выпиваю от 2-х до 5 кружек. Это не эспрессо, а в основном капучино, и если последняя кружка приходится на вечер, то во первых гарантировано я не засну, а во вторых буду, как сегодня, либо придумывать очередной сервис или просто писать статьи в свой блог.
Мне пришла очередная идея заменить карточки 6-й кофе в подарок на телеграм приложение. Подумал почему бы и нет, ведь ни разу мне не удавалось получить бесплатный кофе, не смотря на то, что это была даже не 20 кружка в кофейне :( Банально постоянно теряю карточки. Решил исправить раз и на всегда эту ситуацию.
Начал с описания идеи
Прикинул на бумаге как будет работать сервис. Приходишь в кофейню, сканируешь QR и попадаешь в бота, а значит ты уже в базе бота, после чего запускаешь приложение и отмечаешь что купил кофе, после чего бармен подтверждает покупку и тебе начисляется кружечка.
Накидал дизайн в фигма
Сделал простую библиотеку компонентов для проектирования приложений в телеграм, забирайте мне не жалко. Ссылка на исходники figma
В голове сложился сценарий как будет работать сервис. Теперь настало время запрограммировать то что я напридумывал.
Примитивная архитектура
Я создал базу данных и в ней буквально 2 таблицы: users и admins.
Первая для того чтобы хранить данные по пользователям и запросам на добавление чашечки. Вторая для хранения данных администраторов(баристы) они будут подтверждать в этом же боте, но с правами админа, что пользователь купил кофе.
Дальше запрограммировал простую логику бота, если пользователь нажимает кнопку "Добавить кружечку", то приложение генерит уникальный 4-х значный код. Он говорит его баристе, он вписывает его в приложение и вуаля, кофе добавлен.
Для администратора
Администратор сидит в том же приложении, и у него есть расширенный функционал. Подумал что это удобно работать в том же приложении, и удобно для своей базы делать рассылки.
Добавил метод /sendMessage чтобы открывался интерфейс рассылки, после чего можно написать текст, добавить фото или видео и нажать "Отправить". Вся база получит рассылку от бота.
Легко ли потерять свои стаканчики?
Получается с ботом это сделать просто невозможно. Система запоминает ид профиля пользователя, и даже если пользователь удалит или остановит бота, при следующем запуске он увидит свои чашечки. А значит проблема решена.
Остался только один вопрос, че теперь с этим делать и кому это нужно, продавать я такие вещи не умею, да и писать сервисы интереснее чем продавать.
А вот ссылка на самого бота тестируйте и пишите комментарии. 2 часа ночи, а сна ни в одном глазу )