Телеграм бот для мониторинга выпитой воды, а также потребленных и сожженных калорий.
- Склонируйте репозиторий на ваш компьютер или сервер при помощи команды:
git clone git@github.com:yegerless/tg_bot_fwa_tracker.git
- Переместитесь в директорию проекта при помощи команды:
cd tg_bot_fwa_tracker
- Создайте файл .env, в котором пропишите следующие секреты:
BOT_TOKEN='Ваш токен телеграм-бота'
OW_API_KEY='Ваш API KEY для OpenWeather API'
NINJAS_API_KEY='Ваш API KEY для NINJAS API'
EDAMAM_APP_ID='ID вашего приложения для Edamam API'
EDAMAM_API_KEY='Ваш API KEY для Edamam API'
- Создайте docker image (у вас должен быть установлен docker engine) при помощи команды:
docker build . -t tg_bot_fwa_tracker
- Запустите docker container с ботом при помощи команды:
docker run tg_bot_fwa_tracker
- /set_profile – создание профиля, бот последовательно запрашивает данные пользователя,
- /log_water <количество> – логгирование выпитой воды, бот сохраняет переданное количество воды в мл,
- /log_food <название продукта> – логгирование съеденных продуктов, запрашивает данные о количестве съеденного продукта в граммах,
- /log_workout <тип тренировки> <время (мин)> – логгирование физической активности, бот сохраняет значение количества сожженных калорий, расчитанное по переданным данным,
- /check_progress – вывод информации о воде и калориях за сегодняшний день,
- /cancel - отмена ввода информации (при создании профиля или добавлении съеденного продукта),
- /water_chart - возвращает график потребляемой воды за последние 7 дней,
- /calories_chart - возвращает график полученных и сожженных калорий за последние 7 дней.
-bot/
--| -handlers/
----| -base_handlers.py - содержит роутер с обработчиками команд /start и /cancel
----| -profile.py - содержит роутер с обработчиками команд по созданию профиля
----| -progress_charts.py - содержит роутер с обработчиками команд для создания графиков
----| -tracker.py - содержит роутер с обработчиками команд для логирования воды, калорий и активности, а также запроса сводной статистики за день
--| -middleware/
----| -middleware.py - содержит мидлварь, которая логгирует полученные сообщения в консоль и файл logs.log
--| -static/
----| -start.md - файл с текстом приветственного сообщения, которое отправляется по команде /start
--| -utils/
----| -utils.py - файл с функциями для запросов к разным API и обработки данных, получаемых от пользователя
----| -charts.py - файл с функциями, которые создают графики
--| -bot.py - основной файл с объектом бота и диспетчера
--| -config.py - конфигурационный файл с загрузкой секретов из переменных окружения
--| -storage.py - файл с имитацией хранилища данных (типо вместо БД)
-Dockerfile - инструкция по созданию docker image
-requirements.txt - файл с зависимостями
-logs.log - файл с логами (будет создан при запуске бота)
- Информация о погоде в городе проживания пользователя берется через запрос к OpenWeather API,
- Информация о калорийности блюда получается по запросу к Edamam API; запрос может быть неструктурированным, у этого API есть NLP движок, который хорошо справляется с определением указанного продукта; перед отправкой полученный от пользователя запрос переводится на английский язык при помощи библиотеки googletrans,
- Информация о сожженных калориях по физической активности получается по запросу к Ninjas API; перед отправкой полученный от пользователя запрос переводится на английский язык при помощи библиотеки googletrans.