Skip to content

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

License

Notifications You must be signed in to change notification settings

coder8080/usmile

Repository files navigation

3x-ui

🦷 USMILE Telegram Bot

Телеграм бот для создания партнерских сертификатов стоматологии usmile

⭐️ Поставьте звездочку - это очень мотивирует)

Функции

  • Администраторы могут создавать особые ссылки для партнеров
  • Пройдя по ссылке, партнер пополняет свой баланс
  • Партнер может создавать сертификаты, используя свой баланс
  • Администраторы могут проверить статус сертификата по его номеру
  • Администраторы могут пометить сертификат как использованный

Техническая информация

Стек

  • Python3
  • Aiogram3 - библиотека для создания телеграм-ботов
  • Peewee - легковесная ORM
  • Docker - контейнеризация
  • Docker Compose - удобный запуск нескольких контейнеров
  • PostgreSQL - база данных
  • Redis - быстрое хранилище типа ключ-значение

Разработка

Установка зависимостей

Зависимости устанавливаются во время сборки Docker контейнера. Но чтобы в вашем редакторе кода работало автодополнение, рекомендуется также установить зависимости в виртуальную среду:

python3 -m venv .venv
source ./.venv/bin/activate
pip install -r requirements.txt

Запуск

docker compose --profile dev up --build
  • --profile dev - использует параметры docker для разработки
  • up - запускает проект
  • --build - пересобирает контейнеры

При внесении изменений в файлы на диске бот перепускается. Реализовано с помощью volumes и watchdog

Добавление новых пакетов

Все пакеты, использующиеся проектом (даже во время разработки) должны быть добавлены в requirements.txt

Команды ниже предполагают, чтовы уже установили зависимости

pip install package # package - ваш пакет
pip freeze > requirements.txt # обновляет requirements.txt

Продакшен

Сборка и деплой автоматизированы с помощью github-actions

Команда запуска

docker compose --profile prod up -d
  • --profile prod - использует параметры docker для продакшена
  • up - запускает проект
  • -d - фоновый режим и запуск при загрузке системы