Один Telegram-бот вместо тысячи пластиковых карт

Приветствую всех читателей никому не нужных статей на VC! Это мой первый и, надеюсь, не последний пост о наших проектах на этой замечательной платформе. Так что прошу отнестись к этому с пониманием…)

Начну, пожалуй, издалека. Уже несколько лет мы с командой запускаем IT-проекты разного уровня сложности и в самых разных сферах. От простых Telegram-ботов, до масштабных блокчейн-проектов. И главным открытием за последние полгода для меня стало то, что лучше всего у нас получаются те продукты, которые запускаются, чтобы улучшить жизнь нам или автоматизировать процессы в других наших бизнесах и попутно с этим помочь людям/компаниям.

И сегодня я хочу рассказать как раз об одном из таких продуктов, который, несмотря на свою простоту, весьма неплохо облегчает жизнь своим пользователям и мне самому)

Речь пойдет про проект CardsWallet - бот в Telegram для хранения дисконтных карт магазинов.

Несмотря на то, что ковидную Москву и другие крупные города заполоняют разноцветные курьеры Яндекс еды, деливери и прочих самокатов, а каждый уважающий себя магазин старается наладить собственную доставку, фраза кассиров “А карта магазина у вас есть??” по-прежнему не теряет свою актуальность. Собственно тут вся собака и закопалась.

Скидку получить хочется, баллы сами себя не накопят, а таскать с собой пластик на все случаи жизни как-то не комильфо. Многие хранят фотографии карт у себя в телефоне, но судорожный поиск нужной фотки на кассе и осуждающие взгляды голодных людей из очереди немного отталкивают от использования такого метода.

Конечно, можно было бы поискать готовые решения, но зачем гуглить и скачивать какие-то приложения, если можно создать собственного бота и сделать его таким, каким хочешь?

Примерно так появился наш @CardsWallet_bot

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

Один Telegram-бот вместо тысячи пластиковых карт

Чтобы добавить карту, достаточно ввести название магазина и отправить боту фото карты со стороны штрихкода или QR-кода. После этого обрабатываем фотографию и делаем код четким и читаемым для “пикалки” на кассе.В нашем боте можно удобно хранить все свои скидочные карты для покупки гречки, а также ковидные сертификаты и прочие QR-коды. В общем всё, что нужно для выживания в наше суровое время ( ° ʖ °)После добавления новой карты она появится в разделе “💳Мои карты” в виде инлайн кнопки, которая отдает нужный код при клике.

Техническая часть и разработка

Бот был написан на языке python с использованием асинхронного фреймворка aiogram. Код бота опубликован на Github главного разработчика и доступен по ссылке: code

Работает вся система следующим образом:

Получение фото от юзера

Распознавание полученного файла

Генерация нового кода

Отправка сгенерированного кода юзеру

Сохранение file_id в базе данных

Распознавание происходит с помощью библиотеки pyzbar. После этого мы получаем тип кода и информацию внутри. Если это штрихкод, то генерируем новый с библиотекой python-barcode, а если это QR-код, то используем qrcode библиотеку. На выходе получаем фото с новым кодом, которое отправляем пользователю, и удаляем его временные файлы.

Также из особенностей стоит отменить способ хранения файлов. После отправки фото, Telegram отдает file_id, который мы сохраняем в БД. Таким образом, наш бот не хранит карты пользователей, а по запросу клиента файл отправляется с серверов Telegram, что значительно быстрее и безопаснее.

Заключение

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

22
4 комментария

Вроде для этих целей есть приложение Кошелек. В нем и выпустить новую карту можно, перед походом в какой-то новый магазин.

Задумка интересная, но рынок уже занят более функциональными вещами в этой области имхо.

Однако плюс есть, не надо ставить стороннее приложение и проходить доп регистрацию. Для 4-5 карт наверное норм, но к примеру у меня их порядка 40 штук, в контекстном меню такое искать не удобно думаю будет.

2

Спасибо за комментарий. Согласен насчет возможных неудобств при наличии большого количества карт, но мы регулярно обноляем сервис и в будущем постараемся сделать отображение карт, чтобы было удобнее

1

Наличие гугла в России не мешает существовать Яндексу)

В целом согласен с вами, сейчас в приложении хранить карты удобнее, если не брать в расчет, что это приложение нужно ещё установить, зарегаться и загрузить туда сами карты.

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

В этом боте пока сильно не хватает только графического отображения карт. Вы правильно подметили, если их будет штук 40, найти нужную карту в кнопках бота - та ещё задача)
Но всё решаемо, думаю

1