Прототип приложения «Электронный учебник» для провайдера образовательных услуг

ЭТАПЫ ПРОЕКТА
1. Анализ требований
2. Решение
3. Разработка
4. Развитие и поддержка
Объем работ
Около 800 человеко-часов
Команда
Руководитель проекта, 2 разработчика, UX-дизайнер, тестировщик
Сроки проекта
4,5 месяца
Заказчик
Провайдер услуг в сфере массового онлайн-образования. Сотрудничая с образовательными учреждениями, они предоставляют слушателям возможность проходить курсы, общаться с сокурсниками, сдавать тесты и экзамены.
Проблема
Так как система требует соединение с интернетом, это делает невозможным использование в режиме образовательного ресурса офф-лайн.
Задачи
Разработать прототип десктопного образовательного приложения для операционной системы Windows 7 и более поздних версий. Данные приложения, необходимые для прохождения курса (структура курса, текстовые материалы, графика, видео, задания и т.п.), описать в виде XML файла.
Результат
Мы разработали прототип десктопного приложения с обучающими курсами и всем необходимым для них: текстовые материалы, графика, видео, задания и т.п. Наша команда проработала удобный доступ Пользователю для просмотра всех своих данных (список курсов, задания, история ответов, баллы). Работает без интернета и полностью автономно.
Интерфейс разработанного программного продукта состоит нескольких частей: панель навигации, профиль пользователя, список курсов, домашние задания, оценки, форум, настройки и помощь.

На главном окне системы расположен список курсов. Панель навигации используется для переключения между разделами. Рабочая область используется для отображения внутреннего контента учебника. Некоторые курсы содержат тестовые задания, при прохождении которых пользователю начисляются баллы. Чтобы посмотреть набранное количество баллов за курс, нужно воспользоваться разделом «Оценки».
Особенности проекта:
Хранение данных, роутинг, обработка заданий клиента, воспроизведение видео, список экранов
Хранение данных
— Логин пользователя.
— Хэш пароля пользователя.
— Адрес последнего посещенного раздела курса.
— Данные о прохождении курса фиксируется в виде key-value коллекции.
— Суммарные значение попыток и набранных баллов.

Pоутинг
производится через IronRouter

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

Воспроизведение видео
При прохождении курса некоторые разделы могут включать в себя блок «Видео». Воспроизведение блока с видео происходит через плеер dash.js. При запуске плеера происходит скашивание видео по его id и его сохранение в кэше. При разрыве сети и отсутствию нужного файла производится уведомление о невозможности загрузить файлы.

Список экранов
— Экран входа.
На данном экране происходит идентификация пользователя c помощью логина и пароля.
— Экран выбора курса.
Выводится список курсов в виде плитки. При выборе происходит загрузка xml файла и его преобразования в отображение для шаблона.
— Экран титульной страницы курса.
Выводится название курса, изображение, дата начала, название организации, содержание в виде раскрывающегося двухуровневого дерева (раздел/подраздел).
— Экран раздела.
Экрану раздела соответствует сущность vertical или sequential в спецификации OLX.
— Экран пользователя.
На экране пользователя выводится информация о проходимых им курсов, а также об количестве пройденных заданий.
Архитектура:
XML, JSON, Node-webkit, Meteor, AngularJS, Electron
XML используется только как источник данных. Контроллеры приложения для рендеринга шаблонов получают данные из XML файла, которые преобразуют их в JSON и направляют в шаблон.

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

Приложение запускается в контейнере node-webkit и работает офф-лайн. В качестве фреймворка используется Meteor, позволивший придать интерфейсу эстетичности и удобства. Запись и чтение данных производится через встроенный ORM.

Основной сложностью для нас было создание парсера XML-файлов с курсами. Парсер, как и остальная серверная часть, был реализован с помощью фреймворка Meteor. Клиентская часть сделана на AngularJS с поддержкой "реактивности".

Помимо веб-приложения нам удалось сделать еще и desktop версию, которая может работать без интернета полностью автономно. В этом нам помог сборщик Electron.
Хотите автоматизировать внутренние процессы компании или запустить собственный продукт, но вам не хватает технических компетенций для запуска и нужен надежный исполнитель с экспертными навыками?
Made on
Tilda