Skip to content

BlackJackness/Telebot

Repository files navigation

Криптобот

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

Бот должен уметь работать с 2 биткоин-биржами. Одной из бирж должна быть binance, вторую биржу выберите на свое усмотрение. От бота хочется видеть следующие возможности (описание для телеграм, устройство аналогичных функций в http api оставляем на ваш выбор):

  • Возможность посмотреть текущий курс монеты (биткоин, эфир и другие). Хочется, чтобы можно было сравнивать криптовалюты между собой, а также криптовалюты и обычные валюты (как минимум белорусский рубль, российский рубль, доллар, евро). Формат ввода для пользователя можно сделать вот таким "1.5 btc to usd bin" - показать курс 1.5 биткоинов к доллару на бирже binance.

  • Графики и аналитика по движению курсов. Нужно уметь показывать график цены монеты (в валюте или другой монете) за какой-то временной промежуток. Продумайте, как именно пользователь должен настраивать нужный ему график (выбор монет и валют для графика, временной промежуток). В качестве аналитики можно уметь отвечать на вопросы, на какую стоимость изменилась определенная монета за выбранный период, сколько сделок было совершено по определеннной монете за определенный день, окупаемость определенного набора монет на выбранном периоде (например, насколько изменилась цена за 5 btc и 10 eth за неделю). Можете придумать свои собственные аналитические возможности.

  • Новости - предоставление последних новостей о криптовалюте. Нужно, чтобы список новостей регулярно обновлялся с некоторой периодичностью. Выбор источников на ваше усмотрение.

  • Сделки - возможность просматривать информацию о последних сделках на выбранной бирже. Формат ввода можно сделать таким, например, "сделки btc usd bin 50" - показать 50 последних сделок по обмену биткоина на доллары на бирже binance.

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

Требования

  • Нужно предоставить возможность общаться как с ботом, так и напрямую ходить в http api. По-хорошему, бот должен быть лишь прослойкой к api. У бота и в api должен метод хелп, который вернет описание его возможностей.

  • Выбор фреймворков на ваше усмотрение (можно использовать, например, flask и pyTelegramBotAPI). Доп. баллы можно получить, если бот или api будут асинхронными.

  • Приватных тестов нет, но вам нужно будет написать свои публичные тесты в test_public.py.

  • Нужно обеспечить постоянную работу бота и api, можно воспользоваться AWS, Google Cloud или Digital Ocean. Инструкцию, как создать виртуальную машина на linux, можно найти здесь. Также вам понадобится tmux, чтобы ваши процессы на виртуальной машине продолжили работать, когда вы от нее отсоединитесь.

Примерная разбалловка:

  • Возможность посмотреть текущий курс монеты - до 3 баллов
  • Графики и аналитика по движению курсов - до 5 баллов
  • Новости - до 2 баллов
  • Сделки - до 3 баллов
  • Возможность посмотреть текущий курс монеты - до 5 баллов
  • Тесты - до 2 баллов

Правила сдачи

Посылка решения происходит обычным образом через комманду python3 ../submit.py в директории с задачей. Это прогонит написанные вами публичные тесты на сервере и убедится, что они работают. Далее нужно будет открыть merge request по инструкции, аналогичной домашнему заданию по clojure. Нужно будет создать ревью из ветки submits/cryptobot в initial.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages