Структура репозитория в дальнейшем, возможно, будет меняться. На данный момент сделано следующим образом.
Имеются приложения:
- Сервер Simple Gram
- Расположение:
/server_simple_gram
- Описание: Серверное приложение конструктора ботов
- Расположение:
- Десктопное приложение Simple Gram
- Расположение:
/simple_gram_desktop
- Описание: Десктопное приложение на Qt для работы с конструктором ботов
- Расположение:
- Вспомогательные утилиты Simple Gram
- Расположение:
/mini_app
- Описание: Небольшие приложение для работы с конструктором ботов Simple Gram из консоли. Используются разработчиками для тестирования и отладки отдельных модулей конструктора.
- Расположение:
Файл скрипта | Назначение | connection_settings.json |
---|---|---|
mini_app/create_commit_info_file.py | Создает файл с информацией о коммите используя данные git репозитория (то есть должен присутствовать каталог .git). Файл создается в формате .json | Нет |
mini_app/create_test_workspace.py | Создает на удаленном сервере (параметры подключения задаются в конфигурационном файле connection_settings.json) тестового бота. То есть создает сообщения и варианты бота. Заполняет таблицы в базе данных. Сам код бота не генерируется. Но этого бота можно использовать в дальнейшем для генерации бота. | Да, без bot_id |
mini_app/generate_bot_dict.py | Сгенерировать исходный код бота из локальных тестовых данных (без подключения к серверу). Создает директорию с исходным кодом тестового бота. | Нет |
mini_app/generate_bot_server.py | Сгенерировать исходный код бота по идентификатору бота на удаленном сервере. Данные для подключения берутся из conntection_settings.json | Да |
mini_app/read_bot_text.py | Сгенерировать исходный код бота по идентификатору бота на удаленном сервере. Данные для подключения берутся из conntection_settings.json | Да |
У каждого приложения свой набор библиотек (requirements.txt) и свое виртуальное окружение (venv). Когда открываете приложения в среде разработки (PyCharm), то открвайте директорию конерктного приложения, а не весь репозиторий целиком. |
Для работы приложения разработаны и используются библиотеки. Библиотеки представляют собой Python пакеты, которые с помощью символических ссылок подключены к приложениям. В данный момент библиотеки не оформлены как Python библиотеки. Список библиотек:
- Библиотека с функциями работы с представлением ботов
- Расположение:
/b_logic
- Описание: Создание сообщений, вариантов, связывание сообщений и вариантов и так далее. Используется Qt приложением и серверным приложением. Хотелось бы отрефакторить эту библиотеку, разделить на серверную и клиентскую часть.
- Расположение:
- Библиотека с наиболее общими функиями
- Расположение:
/common_utils
- Описание: Наиболее общие функции, которые могут использоваться на сервере, в десктопном приложении. Тут не должно быть зависимостей от Qt, Django и других тяжелых библиотек. На этом уровне мы ничего не должны знать про сервер, десктопное приложение, базу данных и про другие наши библиотеки.
- Расположение:
- Библиотека для генерации исходного кода бота
- Расположение:
/cuttle_builder
- Описание: Библиотека позволяет создать на осонове данных бота (сообщения, варианты и так далее) исходный код бота. В этой библиотеке не дожно быть зависимосит от Django, Qt. На этом уровне мы не должны знать про сервер, про десктопное приложение. Данная библиотека не должна знать про базу данных, про структуру таблиц. Для представления бота на этом уровне используются датаклассы ботов, сообщений, вариантов.
- Расположение:
Скрипты и автоматизации для разворота данных на сервере лежат в каталоге /deploy
.
- Сборка приложения
- Расположение:
/deploy/build_desktop
- Описание: Скрипты для сборки Qt приложения
- Расположение:
- Разворот сервера
- Расположение:
/deploy/deploy_server
- Описание: Скрипты для разворота и настройки сервера
- Расположение: