УДК 004.42
Разработка программной платформы для технической поддержки организации и проведения студенческой научной конференции
П. Ю. Бугаков 1 *, Т. Ю. Бугаков 1, А. А. Колесников 1, А. А. Шарапов 1 1Сибирский государственный университет геосистем и технологий, г. Новосибирск,
Российская Федерация, *e-mail: peter-bugakov@ya.ru
Аннотация. В статье описана проблема, связанная с недостаточным уровнем автоматизации при подготовке текстовых материалов студенческой научной конференции, ежегодно проводимой в СГУГиТ. Отмечено, что среди всех организационных работ подготовка программы конференции имеет высокую трудоемкость и наиболее сжатые сроки выполнения. Для решения обозначенной проблемы была выполнена разработка программной платформы, позволяющей автоматизировать такие процессы, как составление программы студенческой научной конференции, расчет статистических данных мероприятия, подготовку сертификатов участников. Также в процессе выполнения работы перечислены основные инструментальные средства создания программной платформы, составлена схема ее структуры, а также сформирована логическая структура таблиц исходных данных. Подготовлены шаблоны структурных элементов программы конференции. Функциональность разработанной программной платформы может быть расширена путем разработки и подключения модулей, написанных на языке программирования Python.
Ключевые слова: разработка программного обеспечения, программа конференции, шаб-лонизатор, автоматизация
Software platform development for technical support of the organization and holding of a student scientific conference
P. Yu. Bugakov1 *, T. Yu. Bugakova1, A. A. Kolesnikov1, A. A. Sharapov1
1Siberian State University of Geosystems and Technologies, Novosibirsk,
Russian Federation *e-mail: peter-bugakov@ya.ru
Abstract. The article describes the problem associated with the insufficient level of automation in the preparation of text materials of the student scientific conference held annually at SSUGT. It is noted that among all organizational works, the preparation of the conference program has a high labor intensity and the shortest deadlines. To solve this problem, a software platform was developed that allows automating processes such as drawing up the program of a student scientific conference, calculating the statistical data of the event, and preparing certificates of participants. Also, in the course of the work, the main tools for creating a software platform are listed, a diagram of its structure is drawn up, and a logical structure of the source data tables is formed. Templates of the structural elements of the conference program have been prepared. The functionality of the developed software platform can be expanded by developing and connecting modules written in the Python programming language.
Keywords: software development, conference program, template engine, automation
Введение
В настоящее время организационные работы по подготовке и проведению конференций в СГУГиТ все больше автоматизируются. Создаются веб -формы для регистрации участников, анкеты для сбора персональных данных, сервисы для автоматизированной рассылки электронной почты и т.д. Однако автоматизация, в большинстве случаев, затрагивает только этапы сбора информации, необходимой для проведения мероприятия, а также оповещение его участников. Процесс подготовки программы конференции, сборника материалов, наградных и отчетных документов все еще выполняется в ручном режиме. В то же время данные виды работ характеризуются высокой трудоемкостью, которая напрямую зависит от количества участников конференции.
Особо стоит выделить процесс составления программы конференции, поскольку он должен быть выполнен в максимально сжатые сроки - как правило в течение 1-3 дней сразу после окончания регистрации участников. Высокая трудоемкость ручного формирования программы конференции обуславливается неравномерной регистрацией участников во времени, а также частыми ошибками заполнения формы заявок. Все это приводит к существенному увеличению трудозатрат со стороны организаторов мероприятия и к снижению оперативности получения готового документа [1-6].
В последние несколько лет количество участников студенческой научной конференции, проводимой в СГУГиТ, постепенно растет и на данный период уже составляет 765 зарегистрированных докладов из 25 образовательных учреждений. В связи с этим, проблема автоматизации процесса подготовки текстовых материалов конференций становится все более актуальной.
Решение данной проблемы часто сводится к использованию стандартных средств шаблонизации, встроенных в среду Microsoft Word и Excel либо к применению независимого программного обеспечения [1-6]. Все эти инструментальные программные средства предназначены для заполнения таких документов, как конверты, письма, договоры, корпоративные документы с несложной структурой [7-14]. Программа конференции имеет сложную динамическую структуру. Количество, размер и взаимная компоновка ее структурных блоков зависит от числа анонсированных мероприятий, проводимых в рамках конференции, общего количества участников, а также количества соавторов и научных руководителей каждого доклада.
Для повышения эффективности технической поддержки организации и проведения студенческой научной конференции в Центре трансфера технологий СГУГиТ было принято решение разработать программную платформу «Кро-нос». Функциональные возможности данной платформы будут реализовываться за счет разработки и подключения программных модулей для решения таких задач, как сбор регистрационных данных, расчет статистики, составление программы конференции, формирование сертификатов участников, подготовка и рассылка информационных писем.
Используемое программное обеспечение
Функционирование программного обеспечения для заполнения шаблонов документов предполагает многократный доступ к файлам Word, Excel, pdf, поэтому возникает необходимость выбора языка программирования и библиотек программных модулей для обеспечения устойчивой работы с файлами стандартного пакета Microsoft Office.
В настоящий момент в Центре трансфера технологий для разработки программного обеспечения используются языки C#, Python, C++. Каждый из этих языков имеет свои достоинства и недостатки, что предопределяет спектр решаемых ими задач. Разработку программной платформы для технической поддержки организации и проведения студенческой научной конференции решено было выполнять с использованием языка программирования Python. Выбор языка обусловлен его широкими функциональными возможностями работы с текстовыми данными, а также большим количеством специализированных библиотек для чтения и редактирования файлов Excel и Word.
При разработке программы были использованы библиотеки из открытого каталога программного обеспечения, написанного на языке программирования Python. Рассмотрим основные из них.
Openpyxl - библиотека Python для чтения и записи форматов Office Open XML, который используется в файлах Excel с расширениями xlsx, xlsm, xltx и xltm (версия 2010 и выше). В разрабатываемой программе данный модуль используется для чтения регистрационных данных из таблиц Excel.
Docxtpl - модуль для создания документов MS Word по заготовленному шаблону. Шаблон представляет собой документ Word с расширением .docx, в котором содержится статический текст, не подлежащий изменению, а также специальные теги, определяющие места расположения динамически заполняемого текста. Имя тега идентифицирует блок данных (текст, таблицу, рисунок, фрагмент документа и т.д.), вставляемого на его место. В модуле Docxtpl используются синтаксические правила написания тегов, совместимые с языком шаблонов jinja2. При разработке программной платформы «Кронос» модуль Docxtpl использовался как для заполнения текстовых фрагментов программы конференции (титульный лист, название и информация о мероприятии, доклад), так и формирования конечного документа из ранее подготовленных фрагментов.
Docx - модуль Python, позволяющий создавать и редактировать документы Word. В нашей разработке Docx используется для динамического создания финального шаблона, описывающего общую структуру программы конференции.
PyQt5 - это библиотека, позволяющая использовать фреймворк Qt GUI в Python. Данный фреймворк предоставляет возможность создавать для приложений графические пользовательские интерфейсы на основе виджетов с использованием конструктора PyQt Designer. Использование данного конструктора существенно сокращает время разработки структурно сложных, функционально насыщенных пользовательских интерфейсов, а также обеспечивает их высокие визуальные характеристики.
Petrovich - программный модуль, предназначенный для склонения русских имен, фамилий и отчеств по падежам. Модуль применяется для формирования свидетельств об участии студентов в мероприятиях конференции.
Результаты
Процесс разработки программной платформы был разделен на несколько этапов:
1) составление схемы структуры программной платформы;
2) формирование логической структуры таблицы регистрации участников конференции и создание соответствующей web-формы;
3) формирование логической структуры таблицы, содержащей данные о мероприятиях конференции и создание web-формы для сбора данных;
4) подготовка шаблона структурных элементов (титульного листа, заголовка секции или круглом столе, списка докладов) программы конференции;
5) выполнение программной реализации платформы «Кронос».
Рассмотрим принцип функционирования программной платформы «Кронос». Желающие участвовать в конференции вносят свои регистрационные данные в специальную web-форму. Одновременно с этим руководители секций и круглых столов вносят в другую web-форму сведения о запланированных мероприятиях конференции. Формы для ввода данных построены на базе открытых конструкторов Яндекс.Формы. Отличительной особенностью данного конструктора является то, что все данные заносятся в таблицы Excel и могут быть проверены или при необходимости отредактированы организаторами конференции без особой подготовки и установки дополнительного программного обеспечения. Полученные Excel-таблицы являются исходными данными для работы программных модулей платформы, на основе которых формируется программа конференции, собирается статистика по количеству образовательных учреждений, докладов и участников, а также выполняется формирование сертификатов и подготавливаются информационные письма для рассылки. При необходимости функционал программной платформы «Кронос» может быть расширен за счет разработки и подключения моделей, написанных на языке Python. Схема структуры платформы показана на рисунке 1.
Для внешних файлов используются следующие форматы:
- исходные таблицы - xlsx;
- шаблоны документов - docx;
- программа конференции - docx;
- статистика - xlsx;
- сертификаты - docx, pdf.
Для составления программы конференции сформирована логическая структура таблицы, содержащая данные о проводимых в ее рамках мероприятиях, а также таблицы регистрации участников. Результаты данной работы были необходимы для создания web-форм и шаблонов структурных элементов программы конференций (титульный лист, информация о секции или круглом столе, список докладов). Подробное описание логических структур таблиц приведено в таблицах 1 и 2.
Рис. 1. Схема структуры программной платформы «Кронос»
Таблица 1
Логическая структура таблицы регистрации участников конференции
Название поля (тег) Назначение поля
time Дата и время регистрации
section Название секции
subsection Название подсекции (при наличии)
report Тема доклада
fio studl ФИО автора
statusl Статус автора (студент, магистрант, учащийся)
groupl Группа (класс) автора
vuzl Образовательное учреждение автора
fio stud2 ФИО соавтора №1
status2 Статус соавтора №1 (студент, магистрант, учащийся)
group2 Группа (класс) соавтора №1
vuz2 Образовательное учреждение соавтора №1
fio stud3 ФИО соавтора №2
status3 Статус соавтора №2 (студент, магистрант, учащийся)
group3 Группа (класс) соавтора №2
vuz3 Образовательное учреждение соавтора №2
ruk fiol ФИО руководителя №1
stepenl Ученая степень руководителя №1 (классификатор ученых степеней)
zvaniel Ученое звание руководителя №1 (классификатор ученых званий)
ruk fio2 ФИО руководителя №2
stepen2 Ученая степень руководителя №2 (классификатор ученых степеней)
zvanie2 Ученое звание руководителя №2 (классификатор ученых званий)
Таблица 2
Логическая структура таблицы, содержащей данные о мероприятиях конференции
Название поля (тег) Назначение поля
rome number Номер конференции римскими цифрами
date month Дата конференции
year Год конференции
group sections Группы секций
section name Название секции
subsection name Название подсекции
predsedatel name ФИО председателя секции или подсекции
predsedatel group Группа председателя
secretar name ФИО секретаря секции или подсекции
secretar group Группа секретаря
nauchruk1 Научный руководитель секции или подсекции №1
step zvan1 Ученая степень и звание руководителя №1
nauchruk2 Научный руководитель секции или подсекции №2
step zvan2 Ученая степень и звание руководителя №2
date Дата проведения секции или подсекции
hours Часы
minutes Минуты
chamber Аудитория
При разработке программной платформы используется модуль шаблониза-ции Боех1р1, поэтому текстовая часть документов ёоех, используемых в качестве шаблонов, должна быть составлена по синтаксическим правилам языка 1щ|а2.
В процессе работы над проектом было подготовлено 4 шаблона:
- шаблон титульного листа;
- шаблон заголовочного блока мероприятия (рис. 2);
- шаблон блока доклада;
- шаблон сертификата участника (рис. 3).
Такое деление обусловлено зависимостью структуры программы конференции от регистрационных данных, которая также во многом определяет технологическую последовательность заполнения и сборки шаблонов.
Формирование программы конференции начинается с автоматического создания главного шаблона документа. Он включает только теги, обозначающие взаимное расположение всех блоков программы. Далее заполняется шаблон титульного листа и сохраняется в специальной папке под именем 100000. ёоех, которое также используется в качестве тега в главном шаблоне для обозначения его позиции. Следующим заполняется шаблон заголовочного блока первого мероприятия и сохраняется под именем, соответствующим очередному тегу в главном шаблоне. По такому же принципу заполняются шаблоны для каждого доклада. В результате происходит заполнение и сохранение отдельных структурных блоков программы и одновременно с этим формируется главный шаблон программы, определяющий их взаимный порядок в итоговом документе. После
заполнения всех отдельных элементов происходит финальная сборка программы конференции.
{{^roup_sections -}}Ц
1
{%p-endif-%}!
{%р if-display_sectian-%}f
1
{%pendif-%}|
{%p-if-displary_subsection-%}1[
I
{%f>endif%}| {%p -if-display_mfo-%
Председатель: -> {L.-Oisdsedatel паше }}- — студ.- гр.- {{- predse
datel_group }),-СГУГнГ*"
Секретарь: -> {ХжиШГ^ште >} —студ. гр. {{secretar group )}
СГУГнТ*"
{%p-if-display_nauchiuk-= 1
Научный-руководитель: -> iiffiHtfaljii.l }} - {{ b1ep_z\aiil 5}Ц {%pendif-°-ti}!
{%р -if-display_nauchiuk -= 2 -°'o}lf
Научные-руководители: -> ИЖЙСЬшЬД -}}—{{-s-tep_zvan l j j ,Ц
{%pendif-c,'t,}| r
{%peildjf %}f
СЕКЦИИ ГУМАНИТАРНЫХ НАУК
Секция истории
Председатель: Иванов П.Л. - студ. гр. БИ-11, СГУГнТ
Секретарь: Петров К.Н. - студ. гр. БИ-12: СГУГнТ
Научный руководитель: Баулин Р. Д. - кт.н., доцент
12 апреля в 12 часов 10 минут, ауд. 429
Рис. 2. Пример текста шаблона заголовочного блока мероприятия и результата
его заполнения
Разработка пользовательского интерфейса была выполнена с помощью графического конструктора Qt Designer, что обеспечило возможность в интерактивном режиме создать и настроить все визуальные элементы окна главного модуля платформы. Использование Qt Designer также позволило отделить модуль пользовательского интерфейса от программной реализации остальных модулей платформы, что в дальнейшем существенно упростит процесс расширения функциональных возможностей платформы «Кронос».
Для обеспечения комфортной работы пользователя система поддерживает многопоточные вычисления (Multithreading). Алгоритмы, реализуемые модулями платформы, а также функции пользовательского интерфейса выполняются в разных потоках. Такой подход не дает существенного выигрыша в скорости работы программного обеспечения, но обеспечивает независимость интерфейса от выполняемых операций по заполнению шаблонов. Внешний вид главного окна показан на рисунке 4.
Рис. 3. Шаблон сертификата участника
Кронос
СИ
Т) Кронос
Экономим время
Конференция СНК, СГУГиТ, Бугаков
1К, вер. 1.0 П.Ю., 2021
ЦЕНТР ТРАНСФЕРА ТЕХНОЛОГИЙ СГУГИТ
Статистика Лог Настройки
Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен
шаблон: шаблон: шаблон: шаблон: шаблон: шаблон: шаблон: шаблон: шаблон: шаблон: шаблон: шаблон: шаблон:
D:\Pycharm ¡\Pycharm \Pycharm \Pycharm \Pycharm \Pycharm \Pycharm \Pycharm \Pycharm \Pycharm \Pycharm \Pycharm \Pycharm
Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви
16 «\tern р\100700. с! осх I с! ег\1ет р\100701. с! осх Нег^ет р\100800. с! осх Ыег\1етр\100801. с! осх 16 ег^ет р\100900. с! осх Ыег\1етр\100901.с1 осх I с! ег\1ет р\101000. с! осх Ыег\1етр\101001.с1осх Ыег\1етр\101100.с1осх Иег^етрМ01101^осх I с! ег\1ет р\101200. с! осх Иег^етр\101201^осх МегЦетрМ01300. d осх
Заполнен шаблон: □
\Ру сИ а гт Р го] ес15\Р год га т Вш1 с! ег^ет р\101301. с! осх
Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен Заполнен
шаблон: шаблон: шаблон: шаблон: шаблон: шаблон: шаблон:
\Pycharm \Pycharm \Pycharm \Pycharm \Pycharm \Pycharm D:\Pycharm
Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви Р го] ейэХР год га т Ви Р го] ей5\Р год га т Ви Р го] ей5\Р год га т Ви
Ыег\1етр\101400.с1осх 1с1ег\1ет р\101401. с! осх I с! ег\1ет р\101500. с! осх Иег^етр\101501^осх Мегиетр\101 бОО.с! осх Ыег\1етр\101601.с1осх Ыег\1етр\101700.с1осх
Сборка программы
Сформировать сертификаты
Рис. 4. Главное окно модуля визуализации
Заключение
В результате выполненных работ были решены следующие задачи:
- описана концептуальная модель и структурная схема программной платформы «Кронос», определен перечень ее функциональных возможностей;
- выбраны инструментальные средства разработки;
- сформирована логическая структура таблицы регистрации участников конференции, выполнена разработка соответствующей web-формы;
- сформирована логическая структура таблицы, содержащей данные о мероприятиях конференции, разработана web-форма для сбора данных;
- подготовлены шаблоны структурных элементов (титульного листа, заголовка секции или круглом столе, списка докладов) программы конференции;
- выполнена программная реализация базовых модулей платформы «Кронос»;
- выполнено тестирование программной платформы «Кронос» при проведении Студенческой научной конференции 2022 года.
Тестирование программной платформы включало в себя формирование программы конференции и сертификатов участников, а также выполнение следующих статистических расчетов:
- подсчет количества докладов по секциям и подсекциям;
- подсчет количества докладов по образовательным учреждениям;
- подсчет количества докладов по каждому участнику;
- подсчет количества участников и докладов из каждого образовательного учреждения по секциям.
Системообразующий программный код программной платформы «Кронос» прошел государственную регистрацию в Федеральном институте промышленной собственности, в результате чего было получено свидетельство №2021680232 от 08.12.2021 [15].
В дальнейшем планируется разработка программного модуля для автоматизированной рассылки информационных писем и материалов конференции.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Богомолов, А. С. Выбор системы автоматизации документооборота учебного заведения // Наука и образование : сб. XX Междунар. конф. студентов, аспирантов и молодых ученых в 5-ти томах. - Том. I. Естественные и точные науки. - ТГПУ, Томск, 2016. - С. 263-266.
2. Клишин, А. П. Подходы к автоматизации документооборота в вузе / А. П. Клишин, Н. Р. Волкова, Н. Л. Еремина, А. А. Мытник, Е. Н. Клыжко // Вестник Новосибирского государственного университета. Серия: Информационные технологии. - Новосибирск, 2017. -Том 15. - № 1. - С. 36-46.
3. Курденкова, Я. Г. Разработка системы поддержки проведения конференции / Я. Г. Курденкова, И. П. Бурукина // Новые информационные технологии и системы : сб. науч. статей XIV Междунар. науч.-техн. конф. - Пенза, 2017. - С. 335-337.
4. Тихонов, Э. Ю. Разработка веб-сервиса для проведения научных конференций и подготовки метаданных для размещения в РИНЦ / Э. Ю.Тихонов, А. Н. Вильданов // Приамурский государственный университет им. Шолом-Алейхема. - Биробиджан, 2018. - № 6 (32). - С. 53.
5. Смыслина, А. И. Автоматизация процесса подачи тезисов докладов на научно-практическую конференцию // Радиоэлектроника, электротехника и энергетика : сб. тезисов XXV междунар. науч.-техн. конф. студентов и аспирантов «Радиоэлектроника, электротехника и энергетика». - Москва, 2019. - С. 270.
6. Макарова, О. Н. Автоматизация документооборота в рамках учебно-методической деятельности в вузе // Инновационные технологии в науке и образовании : сб. статей победителей IV Междунар. науч.-практ. конф. в 3 ч. - Пенза, 2017. - Ч. 1. - С. 135-137.
7. Кублашвили, О. В. Выбор оптимальной системы автоматизации документооборота // Известия высших учебных заведений. Проблемы полиграфии и издательского дела. - Москва, 2010. - №6. - С. 164-171.
8. Гаврильченко, А. А. Автоматизация документооборота: преимущества и недостатки // Научные исследования. теоретический и практический аспект : сб. стат. по ма-тер.науч.-практ. конф. - Ставрополь, 2017. - С. 42-46.
9. Бурукина, И. П. Использование инструментов интернет-маркетинга при организации конференций / И. П. Бурукина, Я. Г. Курденкова, А. И. Кириллов // Университетское образование (МКУ0-2016): сб. ст. - Пенза, 2016. - С. 90-92.
10. Автоматизация создания документов Word по шаблону // Excelstore.pro. - Режим доступа: https://excelstore.pro/examples-of-workword-powerpoint/automate-the-creation-of-word-documents-from-template.html (дата обращения: 01.04.2022).
11. Гаммершмидт, С. А. Применение OLE-технологии в решении задачи автоматизации процесса печати сертификатов олимпиад / С. А. Гаммершмидт, А. В. Сухоруков, Т. А. Михайлова // Математическое моделирование процессов и систем: сб. материалов V Всерос. науч. -практ. конф.- Стерлитамак, 2016. - Ч. II. - С. 175-180.
12. Надстройка FillDocuments для MS Excel // ExcelVBA. - Режим доступа: https://excelvba.ru/programmes/FillDocuments (дата обращения: 01.04.2022).
13. Поддержка OLE // Microsoft. - Режим доступа: https://docs.microsoft.com/ru-ru/cpp/mfc/ole-background?view=vs-2017 (дата обращения: 27.03.2022).
14. Шаблоны документов // Life.mosmetod. - Режим доступа: http://life.mosmetod.ru/index.php/item/shablony-dokumentov (дата обращения: 29.03.2022).
15. Свидетельство о государственной регистрации программы для ЭВМ 2021680232 Российская Федерация. Шаблонизатор для составления программ конференций / П. Ю. Буга-ков, А. А. Колесников ; заявитель и правообладатель Федеральное государственное бюджетное образовательное учреждение высшего образования «Сибирский государственный университет геосистем и технологий». - № 2021669947 ; заявл. 08.12.2021 ; опубл 08.12.2021. - 1 с.
© П. Ю. Бугаков, Т. Ю. Бугакова, А. А. Колесников, А. А. Шарапов, 2022