Skip to content

modular-platform-it/backend

Repository files navigation

modular backend CICD pre-commit

Описание

Проект разработан в акселераторе it-practice

О проекте

Конфигуратор Telegram-ботов. Система для возможности создания персонального бота. Предоставляет возможность создания, управления ботами. Настройки логики поведения бота. Состоит из 4-ех микросервисов 1) Frontend- на vite 2) REST- Интерфейс управления ботами на Django. Отвечает за взаимодействия с фронтом, заполнением БД и отправку запросов на start\stop телеграм ботов 3) Микросервис с Ботами. Шина-управления FastAPI. В качестве ORM используется sqlalchemy. Telegram Боты реализованы на библиотеке python Aiogram. Боты запускаются асинхронно внутри FastApi функции, как task 4) Инфраструктура выполнена в 2 видах: для запуска на сервере используется Traefik, запускающий для удобства управления контейнерами - portainer и БД - pgadmin, и для локального запуска используется docker-compose+nginx

Технологии

Общие

  • Python - 3.12
  • Docker - 4.19
  • PostgreSQL - 13.10
  • Poetry

Django-интерфейс

  • Django - 5.0.4
  • DRF - 3.15.1

Сервис управления Ботами

  • Aiogram3
  • FastAPI
  • sqlalchemy

Инфрастуктура

  • Traefik
  • PGAdmin
  • Portainer
  • nginx

Авторы

Основная логика

Описана в uml-диаграмме, которая находится в папке uml\uml.puml. Диаграмму можно открыть плагином PlantUML или использовать онлайн ресурсы, Например:

Архитектура приложения

Приложение для управления ботами (приложение управления).

Django приложение. Предназначено для возможности отображения, добавления, удаления, редактирования, управления ботами.

  • возможность авторизации пользователя в системе Авторизация с использование токена. Нет разграничения принадлежности бота. Любой авторизовавшийся пользователь может взаимодействовать со всеми ботами.
  • возможность отображения состояния ботов
  • возможность добавления бота
  • возможность изменения настроек бота
  • возможность добавления действий бота:
  • В приложении управления добавляется бот, создаются действия. В действиях указывается сообщение, файлы, вопросы, которые будут отображаться пользователю; API, которое нужно вызвать, следующее действие. Введенная пользователем информация будет передаваться в API, которое настроено в действии бота. Также можно указать API, информация из которого будет отображаться пользователю.
  • Должна быть возможность добавления, редактирования, удаления, копирования, включения, выключения действий.
  • Должна быть доступна возможность тестирования бота. Тестирование производится в окне браузера. возможность управления ботом:
  • Должна быть возможность запуска, остановки, удаления бота; проверки доступности API; проверки ключа бота..

Серверная часть.

Серверное приложение, которое обеспечивает запуск и работу ботов.

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

Приложение для тестирования работоспособности веб приложения управления и серверной части.

Django приложение, которое принимает запросы от бота. Как предложение - реализовать веб приложение, которое позволяет совершать покупки и отслеживать состояние доставки товара. В приложении через админку Джанго добавляем список товаров, пользователь через бота просматривает добавленные товары, покупает товар, по вводу идентификатора отслеживает состояние доставки.

  • возможность отдачи списка товаров (текстовая и графическая информация), совершение покупки
  • отслеживания состояния доставки товара.

Возможности пользователя

Невторизированный пользователь имеет возможность:

Авторизованный пользователь имеет возможность:

Администратор имеет возможность:

Для запуска проекта вам понадобится:

Клонирование репозитория:

Просите разрешение у владельца репозитория( можно со слезами на глазах) Клонируете репозиторий:

    git clone git@github.com:modular-platform-it/backend.git

Установка Poetry

    pip install poetry

Создание виртуального окружения

    poetry install
    poetry update

Активировать виртуальное окружение

    poetry shell

Выполнить миграции:

    python manage.py makemigrations
    python manage.py migrate

Запустить проект:

    python manage.py runserver

Создать суперпользователя:

    python manage.py createsuperuser

Запуск докер контейнеров на локальной машине:

Билдим проект и запускаем:

    docker compose up --build

Выполнить создание суперпользователя:

    docker compose exec backend python manage.py createsuperuser

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published