Разработка модуля синхронизации пользовательского интерфейса взаимодействующих клиентов для системы управления задачами в инженерно-проектных организациях
ОПРЕДЕЛЕНИЯ 9
ВВЕДЕНИЕ 11
1. Конструкторская часть 14
1.1 Общая структур а си стем ы 14
1.1.1 Организация взаимодействия слоёв 15
1.1.2 Прокси-сервер 15
1.2 Разработка сценариев взаимодействия слоев приложения 16
1.3 Разработка форматов взаимодействия между слоями системы . 20
1.4 Взаимодействие компонентов клиентского слоя 21
1.5 Проектирование структур данных для взаимодействия с
локальным хранилищем данных 22
1.6 Разработка системы компонентов 23
1.6.1 Компонент «Conferences» 23
1.6.2 Компонент «ConferenceHeader» 24
1.6.3 Компонент «ConferenceList» 25
1.6.4 Компонент «ConferenceItem» 26
1.6.5 Компонент «ConferenceCall» 27
1.7 Сценарии взаимодействия пользователя с клиентским слоем ... 28
1.7.1 Просмотр списка совещаний 28
1.7.2 Редактирование списка участников совещания 29
1.8 Разработка механизма синхронизации пользовательского
интерфейса 31
1.8.1 Кодирование активного компонента приложения в URL 32
1.8.2 Синхронизация узлов и журналов совещаний 33
1.8.3 Синхронизация пользовательского интерфейса 33
2. Технологическая часть 35
1.9 Обоснование выбора 35
1.9.1 Фреймворк для создания пользовательского интерфейса 35
1.9.2 Фреймворк для управления состоянием данных 39
1.9.3 Библиотека для реализации маршрутизации в приложении ..42
1.9.4 Модуль для сборки проекта 43
1.9.5 Компилятор для транспиляции JavaScript 43
1.9.6 Типизация 43
1.10 Используемые методологии 44
1.10.1 Блок, Элемент, Модификатор 44
1.10.2 Непрерывная интеграция 45
1.11 Используемые технологии 46
1.11.1 Система контроля версий 46
1.11.2 Яндекс-коннект 47
ЗАКЛЮЧЕНИЕ 48
Список использованных источников 49
ПРИЛОЖЕНИЕ А 51
При работе над проектами инженерам необходимо согласовывать чертежи и другую техническую документацию.
Типичный сценарий, когда инженеры встречаются для обсуждения чертежей. Инженеры могут обсуждать один и тот же чертеж много раз, забывая, что на нем изменилось с прошлых встреч и зачем были сделаны те или иные изменения.
С современными технологиями можно автоматизировать процесс работы над проектированием технических объектов. Появилась идея разработать информационную систему с функционалом для проверки и рецензирования инженерных документов. Система позволяет хранить отдельные документы и целые проекты в коллективном «облаке». Предлагается удобный интерфейс для отображения структуры проектов, гибкой навигации и поиска по базе. Этот интерфейс по функционалу и отображению очень похож на «проводник» в современных операционных системах. В разработанной системе понятие «файл» расширено до объекта, который содержит всю информацию о техническом документе: все загруженные в систему версии, как исходные, так и для печати, пояснительные документы (текстовые файлы, изображения и др.), что позволяет хранить в одном месте всю необходимую информацию о документе.
Система позволяет сравнивать между собой версии, а по комментариям и пометкам на чертеже восстанавливать ход принятия решений и определять, почему итоговый документ, чертеж или дизайн именно такой, кто и когда принимал те или иные решения. Можно скачать исходный файл модели или версию для печати. В этой информационной системе можно позиционировать чертеж, таким образом, чтобы удобно было увидеть проблемный участок; имеется возможность выделить его, оставить пометку и комментарии. Инженеры работают с изображением модели в версии для печати.
На основе пометок на чертеже, документе или рисунке автоматически формируется «задача». Задачи имеют статусы: поставлено в работу, выполнено, принято или отклонено и др. Таким образом, реализуется организация контролируемого производственного процесса. Уведомления о поставленных задачах и изменениях их статусов автоматически приходят участникам производственного процесса. Таким образом, инженеры могут проверять друг друга, точно выделять нужные участки на чертеже и оставлять замечания.
В рамках данной работы была поставлена задача разработать модуль для удаленной коммуникации между инженерами при обсуждении технической документации, выработки требований к проектированию. Это позволит инженерам минимизировать количество встреч и быстрее обсуждать актуальные задачи.
При проведении совещаний в таком формате появляется возможность всё обсуждение и происходящее на экране сохранить. Причем такая запись совещаний требует гораздо меньше компьютерной памяти, чем альтернативная запись видео. Все прошедшие совещания можно просмотреть в так называемом плеере. В этом плеере существуют якоря - отметки на плеере с ключевыми моментами, по которым можно удобно перемещаться. Если инженеру понадобиться еще раз прослушать обсуждение конкретного чертежа, он быстро найдет нужный якорь и прослушает интересующую часть совещания.
У каждого совещания выделяется ведущий - модератор. Во время проведения совещания он перемещается по системе, открывает чертежи, позиционирует их сообразно своим словам. У остальных участников совещания состояние системы синхронизируется относительно модератора таким образом, что все участники видят, о чем сейчас говорит модератор. В процессе совещания модератор может передать своё право вести совещание другому участнику.
Система позиционируется как task-менеджер для чертежей и документов с возможностью навигации по ним. Весь остальной функционал системы предоставляет конечному пользователю удобный интерфейс для использования системы.
Крупные компании могут установить это программное обеспечение на своих серверах, чтобы быть уверенными, что их интеллектуальная собственность не попадет в руки конкурентов или в какой-то момент станет недоступной.
Предполагается, что конечными пользователями данной системы являются инженеры, проектировщики. Также не отменяется возможность использования данной системы в учебных целях. К примеру, преподаватель будет дома проверять чертежи студентов, создавать пометки с замечаниями. При проведении конференции он может студенту наглядно показать, где была ошибка или указать на то место, которое следует отредактировать.
В результате проделанной работы был разработан модуль проведения совещаний для системы управления задачами в инженерно-проектных организациях. В рамках этого модуля был реализован пользовательский интерфейс для проведения совещаний. Был разработан функционал для проведения и записи совещаний, а также синхронизации пользовательского интерфейса взаимодействующих клиентов.
Было приведено обоснование выбора средств разработки. Описаны их ключевые особенности. Получен опыт создания web-приложения на языке программирования JavaScript с использованием технологий React и Redux.