TrainingBot - это бот для тренеров и спортсменов в области легкой атлетики. Этот бот, созданный на Python и интегрированный с Telegram, позволяет спортсменам легко регистрироваться, вводить и отправлять данные о своем самочувствии и тренировках, а также автоматически синхронизировать данные о тренировках через сайт Strava. Для удобства хранения и анализа данных используется Google Sheets, где каждому спортсмену автоматически создается именной лист. Тренеры могут назначать задачи и просматривать данные о самочувствии и результаты тренировок своих подопечных, что делает процесс тренировки более организованным и эффективным.
- Регистрация спортсменов с созданием именного листа в Google Sheets.
- Отправка данных о самочувствии утром (оценка самочувствия, пульс, количество часов сна).
- Отправка данных после тренировки (дистанция, средний темп, средний пульс).
- Автоматическая синхронизация данных тренировок через сайт Strava.
- Возможность тренера назначать задачи на день или на неделю через интерфейс бота.
- Python
- Python Telegram Bot
- Django
- django-social-auth
- Google API Python Client
- PostgreSQL
- Docker
- Склонировать репозиторий
git clone [email protected]:qwertttyyy/training_bot.git
, либо скачать архивом. - Установить и запустить Docker
- Создать файл .env и установить переменные окружения на примере .env.example !!! Все переменные обязательны !!!
- По инструкции из файла Google_Cloud_Platform_API_и_сервисный_аккаунт.html получить учетные данные для Google Sheets и заполнить соответствующие переменные.
- Заполнить данные для БД
- Создать бота через https://t.me/BotFather
- Установить API Token бота в переменную BOT_TOKEN
- Установить telegram id тренера в переменную TRAINER_ID (можно узнать тут https://t.me/userinfobot)
- Создать лист в Google Sheets с того же аккаунта с которого были созданы учетные данные в пункте 1.1
- Скопировать из адресной строки SPREADSHEET_ID в одноимённую переменную
- Перейти на https://www.strava.com/. Войти через Google. Перейти на https://www.strava.com/settings/api. Заполнить нужные данные и указать в "Домен для запросов приложения" домен или ip адрес сервера, либо localhost при локальном развертывании.
- Скопировать значение ID клиента в SOCIAL_AUTH_STRAVA_KEY и Client Secret в SOCIAL_AUTH_STRAVA_SECRET
- Запустить контейнеры командой
docker compose up -d --build
из корня проекта, либоdocker compose -f docker-compose.prod.yml up -d --build
если развертывание на сервере. - Теперь можно пользоваться ботом !