- PVSM.RU - https://www.pvsm.ru -

Семейный бюджет в Telegram

Статья посвящена обзору Telegram-бота @budgetmoneybot [1] для ведения семейного бюджета.

Прежде чем начать обзор, я бы хотел написать несколько строк о том, как мы с супругой пришли к ведению бюджета в Telegram.
Надо сказать, что необходимость ведения бюджета мы начали осознавать с первых дней после свадьбы. Сначала мы записывали наши доходы и расходы в простую ods-таблицу [2].

Семейный бюджет в Telegram - 1

Но ведение такой таблицы уже через несколько месяцев показалось нам утомительным. Очень хотелось иметь более мобильный инструмент, позволяющий сохранять данные и выводить отчеты.
Тем не менее 5 лет мы усердно заполняли таблицу, в той или иной степени регулируя свои расходы. Потом был год перерыва, в течение которого мы еще раз убедились, что вести бюджет нужно.
В начале 2019 года мы снова решили вести бюджет, но возвращаться к заполнению ods-таблицы мы не хотели. Мы попробовали некоторые мобильные сервисы и пришли к выводу, что нам они не подходят.

Тогда я подумал, что для ведения бюджета было бы удобно использовать Telegram-бота, который принимал бы сообщения с числами или с математическими выражениями и распределял бы суммы по заранее настроенным категориям. Кроме того, хотелось иметь возможность направлять такому боту фотографии QR-кодов на чеках, чтобы бот сам распределял позиции в чеках по категориям. А для ведения семейного бюджета хорошо было бы создать отдельную группу в Telegram и добавить в неё бота.
Несколько месяцев мне потребовалось на реализацию и тестирование такого бота. Но, как говорится, «дорогу осилит идущий» — в августе 2019 года бот был реализован.

Telegram-бот @budgetmoneybot [1] предоставляет пользователям возможность вести как личный, так и семейный бюджет.
Для ведения семейного бюджета необходимо создать группу в Telegram и добавить в неё бота.

Семейный бюджет в Telegram - 2

Семейный бюджет в Telegram - 3

Напишем, что-нибудь в группу. Бот предложит настроить категории доходов и расходов.

Семейный бюджет в Telegram - 4

Нажимаем кнопку «Доходы» и вводим названия источников доходов и плановые суммы по предлагаемому формату. Далее вводим названия категорий расходов с плановыми суммами.
Я рекомендую использовать emoji для визуализации категорий. Удобно при просмотре отчетов.

Семейный бюджет в Telegram - 5

Категории доходов и расходов настроены! Теперь попробуем, добавить сведения о расходах.

Семейный бюджет в Telegram - 6

Выбираем, категорию «Продукты».
Сообщение редактируется — выводится отчет о добавлении суммы.

Семейный бюджет в Telegram - 7

Бот позволяет уточнить дату. Это полезно, если, к примеру, Вы вносите суммы за предыдущий месяц. Также можно отменить добавление суммы.
Теперь добавим информацию о доходах.
Вводим сумму, выбираем последнюю кнопку «К доходам».

Семейный бюджет в Telegram - 8

Затем выбираем категорию.
Аналогично, сообщение редактируется — выводится отчет о добавлении суммы.

Семейный бюджет в Telegram - 9

Попробуем посмотреть отчет.
Вводим команду /report.

Семейный бюджет в Telegram - 10

Кнопки под отчетом позволяют быстро переключаться между отчетными месяцами.
Попробуем направить боту фотографию QR-кода на чеке.

Семейный бюджет в Telegram - 11

Бот начнет распределять товары по категориям. Если Вы впервые покупаете фасоль в магазине (точнее «Фасоль фас 800гр :6»), бот Вас спросит, к какой категории добавить позицию в чеке.
В нашем случае — это «Продукты». В следующий раз фасоль будет автоматически попадать в категорию «Продукты».
После распределения всех товаров по категориям, бот выдаст отчет.

Семейный бюджет в Telegram - 12

BudgetMoneyBot имеет широкий спектр настроек. Можно добавлять, удалять, сортировать и переименовывать категории, менять плановые суммы, отвязывать товары от категорий, выводить отчеты за произвольный период.
В дальнейшем планирую функционал расширять.

Техническая информация

Бот разработан на языке Golang. База данных реализована на MongoDB. Из сторонних библиотек используются tgbotapi [3] и mgo [4].
Сбор информации с чеков сначала был завязан непосредственно на сайты операторов фискальных данных. Но отсутствие API вынуждало писать веб-скраперы, при этом в некоторых случаях приходилось высылать пользователям captcha-картинки. Из чека понять, к какому оператору фискальных данных нужно обращаться, невозможно. Делать итерацию по всем операторам (по состоянию на 22.03.2019 их было 21) трудоемко. Поэтому было принято решение обращаться напрямую к API ФНС.
На Хабре пользователи писали [5], что в API ФНС существуют ограничения. С ограничениями столкнуться мне не удалось. Тем не менее, допускаю, что придется реализовывать регистрацию пользователей в системе проверок чеков ФНС (просить пользователя поделиться номером телефона, направлять запрос на регистрацию пользователя в ФНС, просить пользователя поделиться паролем из sms).

Автор: vsile

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/boty/327288

Ссылки в тексте:

[1] @budgetmoneybot: https://tttttt.me/budgetmoneybot

[2] ods-таблицу: https://www.libreoffice.org/discover/calc/

[3] tgbotapi: https://github.com/go-telegram-bot-api/telegram-bot-api

[4] mgo: https://github.com/globalsign/mgo

[5] писали: https://habr.com/ru/post/358966/#comment_20063502

[6] Источник: https://habr.com/ru/post/463969/?utm_source=habrahabr&utm_medium=rss&utm_campaign=463969