Skip to content

Телеграмм-бот для контроля расходов: clean arch, memory/postgres storage, тесты, observability(graylog, prometheus+grafana, jaeger), kafka, grpc

Notifications You must be signed in to change notification settings

cr00z/goSpendingBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goSpendingBot

В процессе разработки

Телеграмм-бот для контроля расходов

Сквозной проект на курсе "Продвинутая разработка микросервисов на Go" от Ozon (Route256).

О проекте

  • бот с использованием принципов SOLID (слабая связность, интерфейсы) и telegram-bot-api
  • парсинг валют с cbr.ru, обработка xml
  • memory, orm (gorm) и postgres native хранилища для данных
  • миграции (goose)
  • своя реализация LRU cache
  • тесты (gomock, sqlmock)
  • observability: логи graylog + zap, метрики prometheus/grafana + promauto/promhttp, трейсы jaeger + opentracing
  • очереди на kafka (sarama)
  • сервис отчетов через grpc (google.golang.org/grpc)

Demo

Demo

Основные команды

Expenses

  • /addexp [dd/mm/yy] - add new expense

Edit Categories

  • /newcat - create a new expense category
  • /listcat - get a list of your expense categories

Reports

  • /repw - get a weekly report by category
  • /repm - get a monthly report by category
  • /repa - get the annual report by category

Currencies

  • /curall - get currency list
  • /curget - get active currency
  • /curset - set active currency

Limits

  • /limitget - get month expense limit
  • /limitset [amount] - set month expense limit. If the value is not set, then there will be no limit

Домашки

Заметки

docker run --name=gospend-db -e POSTGRES_PASSWORD='qwerty' -p 5432:5432 -d --rm postgres
goose -dir migrations postgres "host=localhost port=5432 user=postgres password=qwerty" create init_db sql
goose -dir migrations postgres "host=localhost port=5432 user=postgres password=qwerty sslmode=disable" up

About

Телеграмм-бот для контроля расходов: clean arch, memory/postgres storage, тесты, observability(graylog, prometheus+grafana, jaeger), kafka, grpc

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published