{"repo":"ellavs/tg-bot-golang","free":true,"listed":false,"github":"https://github.com/ellavs/tg-bot-golang","clone":"git clone https://github.com/ellavs/tg-bot-golang.git","description":"Телеграм бот на GO (Golang)","language":"Go","stars":70,"topics":["go","golang","grpc-go","kafka","telegram-bot","telegram-bot-api","tgbot"],"license":null,"category":"data-pipelines","readme_excerpt":"Телеграм бот на GO (Golang) Это учебный проект, демонстрирующий работу с телеграм ботом и др. на примере учета расходов пользователя по категориям. В данном проекте: 1. получение и отправка сообщений пользователю через телеграм бот (используется библиотека go-telegram-bot-api), 2. пример загрузки конфигурационного файла приложения, 3. работа с PostgreSQL, 4. взаимодействие с внешним API (скачивание курсов валют из открытого источника), 5. работа с горутинами (периодическое обновление курсов валют), 6. примеры юнит и мок тестов, 7. вывод логов (zap), 8. пример middleware-функций для трейсинга и метрик, 9. пример compose для работы с докер-контенерами (postgres, prometheus, grafana, jaeger, kafka, zookeeper), 10. пример реализации LRU кэширования, 11. взаимодействие с брокером сообщений Кафка (Kafka), 12. отправка/получение прото-файлов по gRPC между сервисами, 13. отдельный сервис для получения сообщений из кафки и отправки данных по gRPC, 14. пример функции-дженерика (см. пакет net http) Описание интерфейса работы с ботом в телеграме Для начала работы необходимо ввети команду /start . Будет отображено основное меню: Ввод суммы расхода по категории Для ввода суммы расхода, необхоходимо нажать кнопку Добавить расход и в появившемся списке категорий выбрать ту, по которой был совершен расход: После выбора категории необходимо ввести сумму расхода (допускается ввод с копейками, например, 150.5): Будет сохранен расход текущей датой. Для добавления категории необходимо в основном м","default_branch":null,"files":null,"tree":[],"storefront":"/r/ellavs","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ellavs/tg-bot-golang/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}