Проект разработан в акселераторе 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 - 5.0.4
- DRF - 3.15.1
- Aiogram3
- FastAPI
- sqlalchemy
- Traefik
- PGAdmin
- Portainer
- nginx
Описана в uml-диаграмме, которая находится в папке uml\uml.puml. Диаграмму можно открыть плагином PlantUML или использовать онлайн ресурсы, Например:
- https://stormbpmn.com/app/plant/ (необходима регистрация)
- https://www.planttext.com/
Django приложение. Предназначено для возможности отображения, добавления, удаления, редактирования, управления ботами.
- возможность авторизации пользователя в системе Авторизация с использование токена. Нет разграничения принадлежности бота. Любой авторизовавшийся пользователь может взаимодействовать со всеми ботами.
- возможность отображения состояния ботов
- возможность добавления бота
- возможность изменения настроек бота
- возможность добавления действий бота:
- В приложении управления добавляется бот, создаются действия. В действиях указывается сообщение, файлы, вопросы, которые будут отображаться пользователю; API, которое нужно вызвать, следующее действие. Введенная пользователем информация будет передаваться в API, которое настроено в действии бота. Также можно указать API, информация из которого будет отображаться пользователю.
- Должна быть возможность добавления, редактирования, удаления, копирования, включения, выключения действий.
- Должна быть доступна возможность тестирования бота. Тестирование производится в окне браузера. возможность управления ботом:
- Должна быть возможность запуска, остановки, удаления бота; проверки доступности API; проверки ключа бота..
Серверное приложение, которое обеспечивает запуск и работу ботов.
- бота, который будет создаваться с учетом настроек, которые содержатся в приложении управления.
- ввозможность запуска ботов, которые были созданы в приложении управления.
- ввозможность выполнения команд управления из приложения управления
Django приложение, которое принимает запросы от бота. Как предложение - реализовать веб приложение, которое позволяет совершать покупки и отслеживать состояние доставки товара. В приложении через админку Джанго добавляем список товаров, пользователь через бота просматривает добавленные товары, покупает товар, по вводу идентификатора отслеживает состояние доставки.
- возможность отдачи списка товаров (текстовая и графическая информация), совершение покупки
- отслеживания состояния доставки товара.
Просите разрешение у владельца репозитория( можно со слезами на глазах) Клонируете репозиторий:
git clone git@github.com:modular-platform-it/backend.git
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