Skip to content

Latest commit

 

History

History
44 lines (42 loc) · 7.83 KB

repo_struct.md

File metadata and controls

44 lines (42 loc) · 7.83 KB

Структура репозитория

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

Приложения

Имеются приложения:

  • Сервер 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. На этом уровне мы не должны знать про сервер, про десктопное приложение. Данная библиотека не должна знать про базу данных, про структуру таблиц. Для представления бота на этом уровне используются датаклассы ботов, сообщений, вариантов.

Разворот и сборка (DevOps)

Скрипты и автоматизации для разворота данных на сервере лежат в каталоге /deploy.

  • Сборка приложения
    • Расположение: /deploy/build_desktop
    • Описание: Скрипты для сборки Qt приложения
  • Разворот сервера
    • Расположение: /deploy/deploy_server
    • Описание: Скрипты для разворота и настройки сервера