Разработка двухстороннего конвертера Markdown-Google Documents

Знакомство с особенностями разработки двухстороннего конвертера Markdown-Google Documents, способного упростить рабочий процесс пользователя. Анализ способов упрощения взаимодействия конечного пользователя в вики-проектах по редактированию контента.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.12.2019
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

Один из лучших инструментов, существующих на сегодняшний день, позволяющих грамотно, удобно и быстро организовывать справочную информацию в сети, - это вики-движок. Данная система управления содержимым предоставляет пользователям возможность совместно организовывать рабочую среду для создания, редактирования и управления создаваемым контентом. Стандартные инструменты, позволяющие обрабатывать содержимое вики-страниц, к сожалению, не отвечают всем запросам пользователя в 2019 году.

Основной целью данной работы является реализация инструмента, который создает связанный документ в известной многим рабочей среде Google Documents и осуществляет прямую и обратную конвертацию содержимого документа. Для ее достижения были исследованы особенности работы с веб-страницами, а также принципы передачи информации.

Для реализации поставленной цели были выбраны некоторые языки программирования. Главными средствами являются PHP и JavaScript, на которых и будет создан исходный код программы. В качестве примера реализации, разрабатываемый конвертер будет работать на базе вики-движка MediaWiki версии 1.32.х.

Многие организации нуждаются в сервисах, которые предоставляют возможность хранить и управлять  контентом, обеспечивают комфортное обслуживание рабочей среды, имеют функциональность, хранящую историю версий данных и могут масштабироваться. Одним из таких сервисов можно назвать вики-движок. У сервиса множество достоинств, пользователям даётся возможность отслеживать все совершаемые изменения над той или иной вики-страницей, учитывать версии страницы, формировать какого-либо типа контент совместно с другими авторами, настраивать и добавлять новые инструменты, позволяющие взаимодействовать как с вики, так и с контентом. Именно благодаря тому, что программное обеспечение Вики имеет открытый исходный код есть возможность решить одну из основных недостатков вики-движка - редактирование вики-страниц. Для редактирования контента на вики-страницах необходимо знать синтаксис вики-разметки, которая используется для оформления текста на веб-сайтах. Язык разметки основан на правилах языка HTML и поддерживает схожие инструменты разметки. В большинстве случаев, ответственными за заполнение вики-проектов содержимым назначают специалистов по написанию документации, что не всегда подразумевает владение навыками вики-разметки, основанной на HTML. Даже среди пользователей, которые разбираются в синтаксисе, существующий способ редактирования вики-страниц не считается удобным.

Google Documents является одним из самых лучших аналогов всемирно популярного текстового редактора от корпорации Microsoft Word. Из-за схожести интерфейсов и инструментов редактирования документов Google Documents и Word любые правки, которые будет необходимо внести в документ могут быть быстро и легко обработаны в Google Documents. Все способы редактирования интуитивно понятны каждому пользователю, имеющему базовые навыки обработки контента.

Именно поэтому для того, чтобы облегчить процесс редактирования контента в вики-пространстве обозначена цель разработать конвертер, позволяющий транспортировать содержимое вики-страницы в удобный для пользователя текстовый документ в среде Google Documents. Таким образом при помощи разработанного конвертера получится сократить время работы пользователя и облегчить задачу, исключив необходимость изучения синтаксиса вики-разметки.

В настоящее время существуют расширения для вики, позволяющие установить в рабочую среду текстовые редакторы от сторонних разработчиков. Данные редакторы умеют преобразовывать графическую разметку в синтаксическую и имеют удобный интерфейс. Но, к сожалению, эти редакторы не решают проблему совместного редактирования документа в режиме реал-тайм и не обладают настолько обширным инструментарием, каким обладает Google Documents.

Всё вышеуказанное подтверждает актуальность и необходимость создания инструмента, позволяющего транспортировать данные в обе стороны между такими средами как MediaWiki и Google Documents.

1.Степень разработанности

На данный момент продукт разработан и установлен на облачном сервисе vscale.io. На сервере развернута MediaWiki версии 1.32 и доступна по адресу wikiwork.site. Планируется использование вики для создания справочной документации по разрабатываемым студентами проектам и для сопровождения проектов внутри университета. На данный момент Вики настроена таким образом, что доступ к ней есть у любого пользователя, но возможность редактирования и создания новых статей предоставлена только авторизованным в вики пользователям, у которых адрес электронной почты содержит домен «miem.hse.ru». Для переадресации из вики в Google Documents необходимо первоначально создать страницу в вики и записать изменения. Вместе с первичной записью изменений создается связанный документ в Google Documents. Каждый клик авторизованного пользователя по кнопке «Edit in Google Docs» приравнивается к клику по ссылке, которая даёт пользователю доступ на просмотр и редактирование документа в Google Documents.

2.Цели и задачи

Одним из основных аргументов в пользу выбора темы проекта стало развитие в нашем университете проектной деятельности. Для каждого проекта, создаваемого в рамках какой-либо образовательной программы необходимо вести сопроводительную документацию. Для этих целей была выбрана MediaWiki. К сожалению, редактирование контента для конечных пользователей при помощи стандартных инструментов MediaWiki из коробочной версии трудозатратно и не практично. В связи с этим было принято решение разработать конвертер, способный достичь установленные цели.

Основной целью данной работы является разработка нового инструментального средства, способного упростить рабочий процесс пользователя. Иными словами, минимизировать потраченное время для достижения поставленного результата.

Чтобы достичь поставленную цель, также необходимо реализовать некоторые подзадачи:

1. Изучить и проанализировать соответствующие литературные сведения, которые помогут в последующем осуществлении функционального программного средства и понимании реализуемых процессов. Реализуемый инструмент, должен будет включать в себя весь необходимый функционал. А точнее: автоматическое создание нового документа в Google Documents при записи новой страницы в mediawiki и добавление ссылки на документ при создании новой страницы, замена содержимого документа при сохранении новой или существующей страницы, публикации содержимого документа на страницу, а также наличие простого и комфортного пользовательского интерфейса.

2. Оценка программных средств со схожим принципом работы. Цель текущей подзадачи носит аналитический характер. Проанализировав несколько подобных инструментов, будут выявлены теоретические и практические недостатки того или иного программного средства, для нахождения возможных решений и их последующем устранении.

3. Применение полученных знаний при создании программного кода, реализуемого через такие языки программирования, как JavaScript и PHP. Вдобавок будет изучен и применен язык редактирования веб-страниц (вики-разметка), используемый при придании структуры и виду тексту, расположенному на веб-странице.

4. Разработка удобного пользовательского интерфейса. Продумывание различных аспектов, создающихся для упрощения рабочего процесса пользователя. Необходимо воспроизвести наиболее понятный и простой интерфейс, который будет удовлетворять требования как новых, так и опытных посетителей сайта создания веб-страниц. Текущая подзадача имеет место быть потому, что новые пользователи, зайдя на веб-сайт впервые, столкнутся с проблемой непонимания возможностей интерфейса, в связи с чем и будут тратить время и прикладывать большее количество сил на поиск всевозможных решений для поставленных ими задач.

Главным результатом данной работы будет являться программа, представляющая собой расширение для MediaWiki, которая будет предназначена для применения в целях редактирования вики-страниц и дополнение для Google Documents, которое будет предназначено для публикации в среду MediaWiki внесенных в документ правок. Конечными пользователями являются редакторы Вики-страниц.

Функциональным назначением разработки является предоставление пользователю возможности изменения контента вики-страниц посредствам синхронизации с содержимым документов в Google Documents.

3.Теоретическая и практическая значимость

Основная практическая значимость разрабатываемого конвертера заключается в упрощении рабочего процесса для пользователя и сокращении времени, затраченного на обработку контента. Помимо основного практического преимущества доработки существуют и дополнительные особенности, которые значимы для рабочего процесса между средами. Благодаря конвертеру, который по сути выполняет роль интеграционного моста между двумя средами MediaWiki и Google Documents расширяются существующие базовые функциональность сервиса MediaWiki, такие как контроль версий и возможность редактирования одной вики-статьи несколькими авторами.

Существующие стандартные инструменты редактирования страниц в MediaWiki не позволяют редактировать одну и ту же страницу нескольким авторам в режиме реального времени, в связи с тем, что для каждого пользователя, желающего внести правки открывается только крайняя опубликованная версия страницы и доступа к правкам, которые в это же время вносит другой автор нет. В связи с этим при единовременном редактировании одной и той же страницы несколькими пользователями могут возникнуть конфликты при публикации. Благодаря интеграции с Google Documents конфликты при редактировании в реальном времени исключаются стандартными инструментами среды Google Documents и каждому автору видны все действия других авторов вплоть до местоположения курсора.

Стандартный функционал контроля версий расширен следующим образом:

Допустим, создана первая версия страницы в вики, далее наполнение и редактирование страницы перешло в среду Google Documents, несколько авторов в режиме реального времени внесли свои правки и в итоге страницу с изменениями опубликовали в вики. Итого помимо стандартных двух версий, хранимых внутри самой вики есть возможность отследить историю изменений в связанном документе Google Documents, где более детально логируются все изменения каждого автора и способ отображения изменений более дружелюбный для пользователя, чем в вики.

4.Положения, выносимые на защиту

В ходе функционального тестирования разработки возникли следующие трудности. Необходимо было решить, каким образом определять, какие связанные документы каким пользователям будут доступны. В первой версии реализация была следующая: при создании учетной записи в вики создавался массив с уникальными идентификаторами существующих связанных документов в Google Documents и для каждого элемента массива выполнялся REST-запрос на получение доступа на редактирование конкретного документа для нового созданного пользователя с конкретным почтовым адресом.

Было принято решение изменить метод установки доступов на редактирование в связи с рисками, которые нельзя было избежать. А именно: процесс создания пользователя мог затянуться на неопределенное время в зависимости от длины массива и скорости работы API. Было реализовано следующее решение:

Теперь всем пользователям доступна переадресация в Google Documents по кнопке “Open in Google Docs”. Клик по кнопке приравнивается к клику по ссылке, которая дает права только на чтение документа. Для того, чтобы авторизованному пользователю с почтой привязанной к аккаунту, домен которой miem.hse.ru, отредактировать страницу необходимо сначала открыть страницу в вики на редактирование и уже оттуда нажать на кнопку “Edit in Google Documents”, клик по которой приравнивается к клику по ссылке с выдачей прав на чтение и редактирование.

5.Постановка задачи

Основная цель данного исследования - упростить взаимодействия конечного пользователя в вики-проектах по редактированию контента. Учитывая это, в результате исследования будет разработано программное обеспечение, позволяющее передавать данные из Вики в Google Documents и обратно. Для достижения этой цели представляется целесообразным разделить всю проектную работу на несколько частей:

1. Провести теоретический анализ возможных решений и методов для реализации;

2. Создать расширение для MediaWiki;

3. Cоздать дополнение для Google Documents;

4. Провести тестирование работоспособности, с целью выявления недостатков для дальнейшей доработки;

5. Развернуть и настроить произведенное ПО;

6. Создать сопроводительную документацию.

Достичь наиболее эффективного и простого в реализации результата можно путем решения следующих задач:

1. Произвести анализ существующих аналогов;

2. Спроектировать возможность связи api google documents и wiki разметки;

2. Разработать основной модуль транзита google documents - media wiki;

3. Провести тестирование результатов;

4. Доработать обеспечение основываясь на полученном из тестирования опыте;

5. Поднять при помощи docker-compose созданные сервисы;

6. Настроить сервис mediawiki, наладить взаимодействие c сервисом database

7. Подключить необходимые расширения

8. Создать сопроводительную документацию

9. Записать видео по рабочему процессу конвертера

10. Опубликовать исходный код и сопровождающую документацию на ресурсе github

Вдобавок к этому, данный проект можно разделить на две основные части.

Первая часть носит исследовательский характер. Она включает в себя исследование, анализ и обобщение основных и возможных методов реализации. Основной целью данного исследования является составление алгоритма дальнейших действий.

Вторая часть является более сложной для выполнения, и состоит в том, чтобы разработать заявленное программное средство, опираясь на все существующие требования. Более того, необходимо произвести тестирование полученных результатов, по чьим результатам выполнить доработку, а также выявить недостатки.

При выполнении второй части необходимо учитывать, что проект на финальной стадии должен быть полностью упакован и может быть установлен любым пользователем, нуждающимся в соответствующем инструментарии.

Требуется учитывать, что вики - место аккумуляции ноу-хау и результатов разработок. Там должны сохраняться как элементы технического знания для их обезличенной передачи всем нуждающимся (например, howto по подготовке к трансляции, примеры кода для решения какой-то типовой, часто повторяющейся задачи), так и отчеты по курсовым и дипломным работам. Таким образом, новые участники в проектах смогут продолжать с почти того же уровня, на каком закончили работу их предшественники, не приходилось «с нуля» вводить студентов в курс всех пластов задач, они знали, где взять необходимую информацию - от “как это сделать” до “какой IP у такого-то сервера”.

Таким образом, необходимо поддержать нагрузку на систему в размере от 300 новых уникальных пользователей в год. Входными параметрами для разработки являются непосредственно пользователи MediaWiki и вики-страницы, созданные в этом вики-проекте. Выходным параметром требуется считать уже обновленные после обработки в Google Documents вики-страницы.

6.Анализ предметной области

конвертер редактирование проект

Методология Wiki

В последнее время значительное количество исследований было посвящено проблеме использования и взаимодействия медиа культуры. В этой части проекта будут рассмотрены различные способы использования вики-движка для проектов. Прежде всего, необходимо уточнить, что этот движок, был написан специально для Википедии и используется во многих других проектах описанного фонда. Вики - это бесплатное серверное программное обеспечение. Для создания страниц используется текстовый формат Вики, поэтому пользователи могут легко их редактировать. Веб-сайты, основанные на вики-движке, сегодня широко распространены. Префикс Wiki (иногда постфикс) уже стал нарицательным. Так что для постоянных пользователей практически нет разницы между Википедией и любым веб-сайтом «вики». В этой среде люди могут создавать простой в использовании контент. Но финальный продукт требует изучения синтаксиса языка разметки. Тем не менее, вики-движок можно использовать для других целей. Именно эта функция управления медиа позволяет использовать движок для работы в группах (в классе). Однако у современной вики-технологии есть несколько проблем в том, как поддерживать совместную работу, например, как члены команды координируют свои действия друг с другом.

Вики предоставляют пользователям средства для простого добавления и редактирования контента: все, что требуется от пользователя, это иметь знания вики-разметки и веб браузер. Таким образом, пользователи могут публиковать контент без обращения к веб-мастерам. Другими словами, Вики - это веб-сайт, на котором пользователи могут изменять содержимое свободно, путем редактирования или удаления информации, пользуясь специальными инструментами, которые предоставляет веб-сайт. Более того, исправление текста и любой другой информации, содержащейся на сайте, возможно выполнить при помощи вики-разметки. Вики-разметка представляет собой язык разметки, который может быть применим для придания тексту определенного вида, а также она в разы упрощает подход к использованию языка программирования HTML. Веб-страницы, созданные при помощи вики-разметки конвертируются в HTML, для возможности просмотра страниц в веб-браузере. Данное преобразование реализуется при помощи специального программного средства под названием вики-движок.

Всего можно выделить три главных категории реализации вики технологий:

1. Публичные;

2. Корпоративные;

3. Персональные.

В связи с тем, что производится подробный анализ методологий вики, необходимо подробнее исследовать каждый из этих видов.

1. Публичные вики отличаются от других тем, что данный вид технологии предоставляет возможность внесения правок каждому пользователю. Такие вики создаются различными сообществами посетителей веб-сайта. Одним из самый известных примеров применения и реализации такого вида технологии является энциклопедия Википедия.

2. Корпоративные вики используются в различных компаниях для сохранения и обмена информации между сотрудниками той или иной организации. Яркими примерами текущего вида технологии принято считать Intel и Microsoft.

3. Персональные вики служат для пользования одним пользователем, который в свою очередь может вести формирование дневника или каких-либо заметок.

Вики дает возможность абсолютно всем пользователям изменять какую угодно страницу, а также создавать новые. При это, пользователю достаточно пользоваться обычным веб-браузером, совсем не обязательно использовать различные расширения. Вдобавок, вики поддерживает соединение между другими веб-страницами. Это происходит благодаря практически автономному формированию ссылок. Основой для работы веб-сайта вики является привлечение новых посетителей с целью продолжения процесса беспрерывного создания и изменения сайта.

Таким образом, по произведенному анализу методологий вики, можно прийти к выводу, сможет ли программный инструментарий, описанный в этой работе, быть реализован, используя вики основу.

7.Методология Google Documents.

Не менее мало важной частью текущего проекта является такой онлайн-офис, как Google Документы. Документы Google - это программное обеспечение, работающее в веб-браузере, при этом без установки на компьютер пользователя. Отличительной особенностью данного онлайн-пакета офисных приложений, является то, что авторы редактируют документ, хранящийся в репозитории Google, с помощью простого браузерного редактора, разработанного с использованием методологии AJAX (фоновый обмен данными с браузера в веб-браузер). Пользователи регистрируются один раз в службе, а затем могут создавать документы и приглашать соавторов, которые могут обновить документ. Существует также пользователи категории «зритель»; они могут только читать документ. Изменения в документе автоматически передаются на сервер, это происходит примерно через 30 секунд, если возникает конфликт, конфликтующее изменение отменяется, и текущее состояние документа отображается вместе с сообщением, отображающим конфликтующий текст. При необходимости это можно повторно применить к документу.

Из-за высокой частоты применения обновлений к хранилищу конфликты маловероятны. Если конфликт действительно возникает, он, вероятно, будет очень незначительным, и поэтому с ним легко разобраться. Также, сохраняется обширная история изменений и у пользователя есть возможность просмотреть весь документ, как он изменялся в любое время. В связи с этим, автор может решить вернуться к более ранней версии документа, если возникают разногласия. Существуют также инструменты для сравнения любых двух версий документа, они могут быть сохранены на компьютер пользователя в различных форматах, таких как PDF, HTML и Microsoft Word. Пользуясь Google Документами для совместной работы , выяснилось, что интерфейс удобный, эффективный и действенный. Кроме того, было очень легко наладить сотрудничество с коллегами. Подводя итог, можно сделать вывод, что Google Документы является отличной платформой для совместной работы над созданием документов.

8.Анализ аналогичных методологий

конвертер редактирование проект

На сегодняшний день процесс создания различных веб-страниц определенно перешел на новый уровень, в связи с тем, что у пользователей появился огромный выбор различных программных редакторов и онлайн сайтов для создания своих веб-страниц в сети интернет. Поэтому необходимо разобраться в основных методах создания веб-страниц, а также выявить их недостатки. Сегодня существует три ключевых вида редактора, позволяющих работать с веб-страницами: онлайн редактор, офлайн редактор и визуальный редактор.

1. Онлайн редакторы представляют из себя сайты, которые создаются при помощи хостинга в интернете (хостингом является предоставление места для размещения информации на сервере). Более того, существует огромное множество различных шаблонов создания страниц, которые являются простыми в освоении и общедоступными к использованию.

2. Офлайн редакторы по своей сущности являются программами, которые устанавливаются на отдельный компьютер. В связи с этим главное отличие таких редакторов от предыдущего вида представляет собой привязанность к одному компьютеру (такой компьютер не обязательно должен быть оснащен доступом в интернет). Главным преимуществом текущего вида редакторов является то, что такие программы позволяют пользователю создавать более трудные и многогранные проекты, не имея подключения к интернету (собственно, отсюда данный вид и берет свое название).

3. Следующим видом упомянутых редакторов является визуальный редактор. Текущий вид позволяет создавать веб-страницы, без большой необходимости в знаниях языка программирования HTML. Однако несмотря на свою простоту, такой тип редакторов будет полезен как для новых, так и для опытных пользователей.

К недостаткам визуальных редакторов можно отнести то, что веб-страницы, созданные по принципу таких редакторов, будут выглядеть просто и скромно. Это может оттолкнуть посетителей веб-страницы. В то время, как основным недостатком HTML редакторов будет являться сложность в исполнении. Пользователь, который выбрал исполнение веб-страницы при помощи HTML редактора должен изучить многие особенности языка программирования HTML, обычно данный вид редактора принято считать для профессионалов. Поэтому и был выбран визуальный редактор вики как рабочая среда для выполнения работы, из-за ее простоты и удобности использования.

В связи с тем, что существует огромное количество различных программных средств для реализации веб-страниц, сравним вики редактор с любым HTML редактором, например Dreamweaver (DW). DW относится к разряду лучших HTML редакторов создания веб-страниц, программа весьма многогранна и дает возможность пользователю писать от простых до действительно непростые конструкции для управления контентом. Пользовательский интерфейс оснащен внушительным рядом дополнительных функций, также присутствуют особенности присущие практически всем редактором на HTML, а именно подсветка синтаксиса и интеллектуальный ввод. Пример такого интерфейса представлен на рис. 1.

Рис. 1. Пользовательский интерфейс HTML редактора DreamWeaver.

Однако, как указывалось выше основной целью данной работы является разработка нового инструментального средства, способного упростить рабочий процесс пользователя. В связи с чем и была выбрана вики платформа как основание для создания двухстороннего конвертера.

9.Обзор решения

конвертер редактирование проект

Для того, чтобы реализуемое программное средство могло выполнять все поставленные требования и задачи, необходимо разобраться, как именно будет выглядеть работа инструмента. Разделим весь рабочий процесс на 5 шагов.

Шаг 1. Предоставляется ссылка для администратора (которым будет являться один из студентов, либо уполномоченное лицо), который в свою очередь создает учетную запись пользователя. Примечание: адрес электронной почты должен быть зарегистрирован в домене miem.hse.ru, для выдачи пользователю прав доступа на редактирование страниц через Google Documents.

Шаг 2. Установка дополнения. Пользователю необходимо установить дополнение, предоставляемое по ссылке и разрешить доступ к аккаунту Google.

Шаг 3. Создание страницы. Для создания страницы необходимо перейти в личный кабинет, нажав на имя пользователя в верхнем правом углу. Находясь в личном кабинете, перейти на страницу создания статьи, нажав на кнопку “Создать”. Информацию по разметке статьи можно найти, нажав на кнопку “Справка” в верхнем меню окна редактирования. При повторном редактировании статьи необходимо указать в специальном поле выполненные изменения для дальнейшего отслеживания версий статьи. Пример создания страницы представлен на рис. 2.

Рис. 2. Создание страницы на веб-сайте вики.

Шаг 4. Редактирование статьи в Google Documents. Для редактирования статьи непосредственно на Google Documents, необходимо нажать на интересующей вас странице нажать кнопку «Править» и перейти по ссылке “Edit in Google Docs”, расположенной внизу страницы выбранной статьи и быть авторизованным с помощью почты, указанной при регистрации аккаунта. Пример редактирования статьи представлен на рис. 3.

Рис. 3. Редактирование статьи на Google Documents.

Шаг 5. Выгрузка статьи. После завершения редактирования статьи необходимо перейти в верхнем меню Дополнения - Docs To Wiki Add-on Private - Публикация

В случае первичного использования расширения в появившемся боковом меню справа необходимо авторизоваться на сайте Вики и предоставить разрешение на выполнение следующих действий от Вашего имени на всех проектах этого сайта. В появившемся меню справа при необходимости добавьте описание изменений, либо поставьте отметку “Изменения незначительные”. После нажатия на кнопку “Загрузить страницу” исходная страница на Вики обновится в соответствии с итоговой версией документа на Google Documents.

Общий принцип работы конвертера представлен на рис. 4.

Рис. 4. Общий принцип работы конвертера

10.Схема решения и поток данных

Схема разрабатываемого решения представлена на рис.5.

Для удобной авторизации в вики добавлено расширение GoogleLogin. При создании страницы в вики совершаются два действия: запись в БД о новой странице и обращение к Docs to Wiki API для создания нового связанного документа. В приложении 2 приведен фрагмент программного кода по созданию связанной страницы. Далее при попытке редактирования страницы происходит проверка на домен пользователя через взаимодействие с БД, в случае, если проверка выполнена успешно происходит запрос к Docs to Wiki API на получение ссылки на редактирование Google Документа. В приложении 3 приведен фрагмент программного кода по запросу ссылки на редактирование. В случае неуспешной проверки на домен пользователя выдается ссылка с доступом только на чтение.

В обратную сторону при помощи дополнения Docs To Wiki Add-On Private в первую очередь происходит авторизация в MediaWiki при помощи установленного расширения OAuth, после авторизации по нажатии на кнопку «Публикация» на стороне Google scripts происходит конвертация текста в необходимую wiki-разметку и посредствам обращения к MediaWiki API происходит публикация созданного текста. В приложении 4 приведена логика соблюдения разметки в программном коде.

Рис. 5. Схема работы конвертера.

11.Авторизация wiki

Поскольку в проекте важно отслеживать изменения, вносимые каждым участником, сам собой встает вопрос авторизации этих участников. И если для первоначального эскизного проекта было достаточно импровизированной системы авторизации, то в реальных условиях с потенциальными тысячами пользователей необходимо тщательно подойти к этому вопросу. Изначально регистрация производилась по email с дальнейшей привязкой к учетной записи. Но даже если предположить, что изначально все имеющиеся пользователи(студенты и преподаватели) будут внесены в базу, стоит вопрос их дальнейшего добавления в больших количествах. Система авторизации может базироваться либо на библиотеках wiki-движка, либо на нативном модуле от GoogleOAuth. В качестве наиболее оптимального был выбран OAuth. Все пользователи имеют домен miem.hse.ru. Пользователь проходит первичную регистрацию, затем после добавления его данных в базу можно производить вход либо по своему логину, либо через почту.

Доработка выдачи прав на чтение и редактирование в Google Documents.

В начальной версии права на редактирование всех google-документов и связанных с ними вики-страниц выдавались единоразово. В программе формировался массив с idgoogle-документов и по каждому уходил запрос через googleapi. Происходило это на этапе регистрации. Теперь же кнопка «Открыть» на странице google-документа выдает пользователю ссылку только на чтение. А лишь при переходе в «Edit» отправляется запрос по конкретному документу на выдачу прав на редактирование.

12.Развёртывание проекта

Для развертывания разработки в самом простом случае подойдет связка ssh + git pull + docker-compose на сервере. В этом случае на сервер будут доставлены патчи коммитов, которые есть в репозитории, но еще не появились на сервере, т.е. «только обновления файлов, которые сейчас существуют». Этот метод используется довольно часто.

Далее необходимо при помощи docker-compose собрать контейнеры и поднять используемые сервисы. После этого необходимо при помощи браузера и обращения к домену wiki.auditory.ru настроить развернутую вики, подключить базу данных и добавить необходимые расширения. После проведения настройки будет сформирован файл LocalSettings.php, который необходимо разместить в корневой директории проекта на сервере. Далее требуется для администратора вики-проекта подтвердить адрес электронной почты. После этого необходимо заполнить настройки клиентского подключения для OAuth и получить необходимые токены для обращения скриптов, используемых дополнением на стороне Google Documents, к вики. После внесения токенов в scripts.google.com в main.gs для проекта «Docs2Wiki Add-On Private». Остаётся только с учетной записи администратора вики одобрить подключение OAuth и можно начинать работу внутри вики с возможностью использования разработанного конвертера.

Инструменты достаточно просты, переход на них -- дело одного выходного дня, и может быть сопряжен со сложностями только в связи с новизной проводимых работ для пользователя.

Более детальную и технически точную инструкцию можно найти по ссылке в приложении 5.

13.Тестирование

Сначала необходимо определиться с методикой тестирования (Test Driven Development, Behavior Driven Development, Лень-Driven Development). Скорее всего, тесты будут выполняться на локальной машине, в процессе написания. Используя RSpecов связке с Guard. Guard отслеживает изменения в коде и запускает набор юнит-тестов, которые покрывают измененный код. Весь процесс занимает не больше минуты-двух, на затрудняя работу системы. Как только тест проходит неудачно, меняем код до тех пор, пока он не станет зеленым. Пока тестов мало (это не самый лучший знак), локального запуска перед деплоем достаточно -- например, чтобы проверить релиз на доступность критического функционала.

В какой-то момент речь может зайти о Continious Integration. Это возможность иметь стабильный билд в любой отрезок времени, а также принимать решение о годности каждого отдельного коммита. Сопряжено с деплоем кода на integration-сервер и запуском на нем тестов.

Результаты

В процессе выполнения дипломной работы были изучены такие языки программирования, как JavaScript и PHP, требующиеся для создания веб-страниц. Приобретены навыки, необходимые для разработки. Более того, было разработано программное средство, реализующее двухстороннюю передачу данных, а также минимизирующее рабочий процесс пользователя. Более того, разработанный продукт помимо поставленных целей решает проблему не только транспортировки данных и сокращения время работы пользователя над конкретными задачами, но и является интеграционным мостом между двумя рабочими средами MediaWiki и Google Documents.

Изначально проект начинался как групповой, работа была начата в октябре 2018 года. Первые версии приложения были созданы еще в феврале 2019 года. С тех пор некоторые студенты вышли из проекта по разным причинам, в связи с этим довольно трудно посчитать трудозатраты и человекочасы. Объем работы измеряется в 17726 строках кода, более подробная статистика на рисунке 6.

Рис. 6. Анализ репозитория github при помощи cloc.

Программный код продукта расположен в академическом репозитории, ссылка в приложении 1. Необходимая сопроводительная документация по правилам установки разработки доступна по ссылке в приложении 5. По ссылке в приложении 6 доступно подробное видео с инструкцией по установке (User Manual).

Итоговый результат проекта соответствует всем поставленным требованиям и критериям.

Список литературы и полезные ссылки

конвертер редактирование проект

Размещено на Allbest.ru


Подобные документы

  • Прикладное значение для проектирования приложения Google Earth, преимущества программы SketchUp. Алгоритм действий пользователя при импорте данных из Google Warehouse в Sketchup и экспорте проекта. Особенности моделирования объектов для Google Earth.

    курсовая работа [2,3 M], добавлен 23.02.2011

  • Описание Google Glass и выявление всех достоинств и недостатков данного аппарата. Технические характеристики устройства и интерфейс пользователя. Интеграция очков расширенной реальности во всех сферах жизни. Синхронизация Google Glass и Mersedes-Bens.

    реферат [349,5 K], добавлен 15.06.2017

  • Изучение истории и выявление ключевых точек развития сервисов Google. Определение назначения и функциональных возможностей Google Docs. Демонстрация возможностей приложения "Документ" сервиса Google Docs на примере разработки поздравительной открытки.

    курсовая работа [3,0 M], добавлен 22.05.2013

  • Идеи по использованию сервисов поисковой системы Google для совместной работы с учащимися в блоге "Учимся с Google". Организация коллективной деятельности с помощью сервисов Google. Характеристика функций основных сервисов, их достоинства и недостатки.

    реферат [24,5 K], добавлен 27.11.2012

  • Разнообразие сервисов и инструментов от компании Google - крупнейшей поисковой системы сети Internet: Web-интерфейс почтовой службы Gmail, картографический сервис Google Maps, универсальность переводчика Google Translate, видеохостинг от YouTube.

    доклад [15,9 K], добавлен 21.05.2012

  • Обеспечение высокой релевантности поиска с помощью поисковой системы Google. Быстрота и надежность работы, большее количество ссылок в русскоязычном секторе Интернета. Службы, отсутствующие у других поисковых систем. Google как законодатель моды.

    презентация [1,5 M], добавлен 10.03.2015

  • Порядок створення нового документа в текстовому редакторі. Виділення окремих елементів документу( слова, рядка, тощо). Використання програми Блокнот. Переваги редактора Google Documents. Значення та можливості створення документів та текстових редакторів.

    презентация [434,9 K], добавлен 17.05.2019

  • Понятие и история развития электронного офиса, основные принципы и закономерности его работы, существующие сервисы и оценка функциональности. Основные этапы зарождения и развития компании Google, направления ее деятельности, роль и значение на рынке.

    курсовая работа [459,0 K], добавлен 19.06.2014

  • Анализ возможностей поисковых систем Яндекс и Google, их сравнение с точки зрения полезности. История создания поисковых систем, характеристика их интерфейса, поисковых инструментов и алгоритмов. Формирование вопроса и критерий к ответу на него.

    реферат [30,0 K], добавлен 07.05.2011

  • Преимущества и недостатки облачного хранилища данных. Установление приложения на компьютер, устройство Android, iOS. Создание аккаунта. Начало работы с Google диском. Способы загрузки файлов на него. Предоставление доступа к файлам другим пользователям.

    курсовая работа [1,3 M], добавлен 31.05.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.