tg-bot-golang
Описание
Телеграм бот на GO (Golang)
Языки
- Go98,5%
- Makefile1,4%
- Shell0,1%
Телеграм бот на GO (Golang)
Это учебный проект, демонстрирующий работу с телеграм ботом на примере учета расходов пользователя по категориям.
В данном проекте:
- получение и отправка сообщений пользователю через телеграм бот (используется библиотека go-telegram-bot-api),
- пример загрузки конфигурационного файла приложения,
- работа с PostgreSQL,
- взаимодействие с внешним API (скачивание курсов валют из открытого источника),
- работа с горутинами (периодическое обновление курсов валют),
- примеры юнит и мок тестов,
- вывод логов (zap),
- пример middleware-функций для трейсинга и метрик,
- пример compose для работы с докер-контенерами (postgres, prometheus, grafana, jaeger, kafka, zookeeper),
- пример реализации LRU кэширования,
- взаимодействие с брокером сообщений Кафка (Kafka),
- отправка/получение прото-файлов по gRPC между сервисами,
- отдельный сервис для получения сообщений из кафки и отправки данных по gRPC,
- пример функции-дженерика (см. пакет net_http)
Описание интерфейса работы с ботом в телеграме
Для начала работы необходимо ввети команду . Будет отображено основное меню:

Ввод суммы расхода по категории
Для ввода суммы расхода, необхоходимо нажать кнопку и в появившемся списке категорий выбрать ту, по которой был совершен расход:

После выбора категории необходимо ввести сумму расхода (допускается ввод с копейками, например, 150.5):

Будет сохранен расход текущей датой.
Для добавления категории необходимо в основном меню нажать кнопку и ввести название новой категории.
Загрузка истории данных
Для загрузки истории расходов введите таблицу в следующем формате (дата сумма категория):
, например:
2022-09-20 1500 Кино
2022-07-12 350.50 Продукты, еда
2022-08-30 8000 Одежда и обувь
2022-09-01 60 Бензин
2022-09-27 425 Такси

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

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

Установка лимита расходов на месяц
Для установки ежемесячного лимита расходов необхоходимо нажать кнопку в основном меню ввести максимальную сумму бюджета (например, 150000):

При установке бюджета все вводимые расходы, превышающие бюджет, будут отклонены.
Проект написан в 2022 году.