Следите за новостями GitVerse в нашем телеграм-канале

tracking-habits

0

Описание

Чат-бот для трекинга привычек

Языки

Python

  • Dockerfile
  • Mako
  • Shell
Сообщить о нарушении
README.md

Чат-бот для трекинга привычек

сервис, дающий пользователям возможность эффективно управлять своими привычками через бот в Telegram.

Функционал приложения:

Основные функции приложения на стороне телеграм-бота:

  • добавление и удаление привычек, полный функционал по редактированию;
  • функция фиксации выполнения привычки: выполнил / не выполнил;
  • напоминание о необходимости выполнить привычку с фиксацией.

Основная функция сервисного скрипта:

  • оповещение пользователя в заданное время.

Основные функции приложения на стороне backend (FastAPI):

  • хранение и обработка данных, полученных от пользователя (запросы из телеграм-бота);
  • аутентификация и авторизация телеграм-бота для доступа к данным.

Оглавление

Описание

Телеграм-бот.

Этот слой используется как фронтенд-составляющая сервиса. Он нужен для доступа пользователей к своим привычкам, а также обеспечивает полный функционал по их редактированию.

Сервис аутентификации.

Этот слой отвечает за методы работы с привычками со стороны FastAPI. Он реализует основные методы CRUD, используемые пользователями через телеграм-бота. Он также обеспечивает авторизацию действий пользователя в момент запроса к базе данных.

Механизм переноса привычек.

Список привычек дублируется на следующий день, привычки удаляются из списка после их проработки.

Сервисный скрипт оповещений.

Работает в фоновом режиме. Уведомляет пользователя о необходимости выполнить привычку в заданный момент времени.

В качестве базы данных используется связка: PostgreSQL — SQLAlchemy — Alembic.

Приложение запускается средствами Docker-compose.

Запуск сервиса

  1. Клонировать репозиторий
    https://gitverse.ru/mas-chel/tracking-habits.git
  2. Переименовать файл example.docker.env в docker.env и заполнить данные базы данных:
    • POSTGRES_DB - имя базы данных
    • POSTGRES_USER - имя пользователя
    • POSTGRES_PASSWORD - пароль
  3. В модуле tracking-bot переименовать файл example.env.prod в .env.prod и заполнить данные:
    • BOT_CONFIG__BOT__TOKEN - токен бота, получить можно тут @BotFather
    • BOT_CONFIG__BOT__SERVICE_AUTH_TOKEN - сервисный токен, можно создать командой в терминале
      openssl rand -hex 32
  4. В модуле tracking-habits переименовать файл example.env.prod в .env.prod и заполнить данные:
    • APP_CONFIG__DB__URL=postgresql+asyncpg://user-name:password@pg_container:5432/db-name, где:
      • user-name - имя пользователя из п.2
      • password - пароль из п.2
      • db-name - имя базы данных из п.2
    • APP_CONFIG__BOT__service_auth_token - сервисный токен из п.3
  5. Выполнить
    docker compose up

Документация

Документация API будет доступна после запуска приложения по адресу http://127.0.0.1:8000/docs#/

Технологический стек

  • python 3.12
  • fastapi 0.111.0
  • uvicorn {standart, version 0.30.1}
  • pydantic-settings 2.3.4
  • sqlalchemy {asyncio, version 2.0.31}
  • asyncpg 0.29.0
  • alembic 1.13.2
  • bcrypt 4.1.3
  • pyjwt 2.8.0
  • loguru 0.7.2
  • cryptography 42.0.8
  • orjson 3.10.7
  • pytelegrambotapi 4.20.0
  • aiohttp 3.9.5
  • apscheduler 3.10.4

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.