Прототип інструменту CourseYard

http://courseyard.com/

Метою проєкту було створення прототипу інструменту для електронних публікацій, який буде використовуватися в сервісі для онлайн-навчання.

У сучасному світі онлайн-навчання надає великі можливості як для самих учнів, так і для освітніх установ і комерційних організацій. Завдяки йому організації можуть значно скоротити витрати на навчання та перекваліфікацію, а учні ефективно використовувати час, вивчаючи матеріали та виконуючи завдання з будь-якої точки світу.

CourseYard - це сервіс онлайн-навчання для вчителів та учнів, а також навчальних закладів, бібліотек та видавців. Він надає послуги зі створення впровадженого CourseWare (підручник + мультимедіа + інтерактивна взаємодія).

Ми розробили таку структуру функціоналу для інструменту створення електронних публікацій CourseYard:

Структура функціоналу CourseYard

Дизайн конструктора та готової публікації

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

Головний екран CourseYard

Конструктор демонстрував основні функції, а саме створення та редагування публікації. Ми підготували приклад публікації для того, щоб користувачеві було зрозуміло, як усе влаштовано.

Приклади шаблонів CourseYard

Публікація може містити в собі такі віджети:

  • текстовий блок;
  • зображення або слайд-шоу;
  • відео;
  • інтерактивний тест.

Перевага конструктора полягає в тому, що публікація створюється і редагується "на льоту". При цьому автор одразу бачить, який вигляд матиме остаточний результат. Той чи інший віджет можна змінити або прибрати, просто клікнувши його. Щоб редагувати текст, необхідно виділити певну ділянку. Над нею одразу відкриється вікно редагування стилю. За допомогою віджета зображень можна додавати чи прибирати фото або змінювати порядок їхнього відображення.

Інструменти редагування CourseYard

Усю введену інформацію тут же зберігають у фоновому режимі за допомогою функції автозбереження. Таким чином, автор ніколи не втратить зроблені ним зміни. Також у конструкторі передбачена можливість спільної роботи над публікацією.

Після публікації автори можуть збирати статистику використання. З'ясовувати, які розділи були цікавіші читачам, які фотографії вони переглядали, які тести проходили і з якими результатами.

Статистика в CourseYard

Звісно, будь-яка публікація, навіть електронна, повинна мати обкладинку. Створення обкладинок також передбачено в конструкторі:

Обкладинка книги в CourseYard

Готові публікації розміщуються на "книжковій полиці":

Книжкова полиця в CourseYard

Робота над бек-ендом

Функціонал бек-енду розроблявся на популярному PHP-фреймворку Symfony2.

Чому ми надали перевагу Symfony2? Для цього є декілька причин:

  • висока продуктивність;
  • надійність і безпека;
  • простота розширення.

Важливою частиною функціоналу була можливість спільної роботи над публікаціями. Для реалізації спільної роботи над публікацією в режимі реального часу ми використовували протокол WebSocket. Завдяки йому можна дуже швидко виконувати синхронізацію даних між редакторами, відкритими на пристроях різних авторів.

Для більшої гнучкості у взаємодії із сервером було написано RESTful API. Це дало змогу не витрачати багато часу на зв'язування бек-енду з фронт-ендом і оперативно створити мобільний застосунок для проєкту.

Можливості Android-додатку

Сучасний сервіс електронного навчання буде неповноцінним без можливості працювати з ним за допомогою мобільного пристрою. Тому для CourseYard ми також розробили Android-додаток, розрахований на учнів, які хочуть займатися в дорозі або просто надають перевагу мобільним пристроям.

В Android-додатку можна переглядати публікації, оформлені на сайті. Сервіс запам'ятовує останню відкриту вами книжку, і вона одразу ж відкривається в додатку.

Над проектом працювали:

  • Oleg
    Oleg

    Дизайнер

  • Саша Ленський
    Саша Ленський

    Backend розробник

  • Ігор Богдосаров
    Ігор Богдосаров

    Frontend розробник

  • Олександр
    Олександр

    Android розробник

  • Артур Мкртичян
    Артур Мкртичян

    Керівник проєктів