modular-platform-it / backend

GNU General Public License v3.0
1 stars 2 forks source link

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

Технологии

Общие

Django-интерфейс

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

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

Авторы

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

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

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

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

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

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

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

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

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