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

Авторизация пользователя производится путем проверки бизнес логики заложенной в самом приложении:
  • Пользователь должен быть добавлен в организацию
  • Пользователь должен быть подтвержден в организации
При соблюдении всех условий валидации при авторизации пользователя, пользователю доступны задания выбранной им организации.

Акции
Акция - это контентная единица с обучающими материалами.
Акции отображаются в мобильном приложении пользователя в виде обучающих презентаций.
Все доступные обучающие акции находятся на главном экране раздела “Акции”. Все акции разделены на 4 блока:
  1. “Новые акции”. В блоке отображаются акции, созданные в течение последних 7 дней, независимо от участия пользователя в них. При тапе на кнопку “Все” открывается полный список новых акций.
  2. “Доступные акции”. В блоке отображаются акции, которые доступны пользователю, но в которых он ещё не принимает участие. При тапе на кнопку “Все” открывается полный список акций, доступных пользователю.
  3. “Акции с вашим участием”. В блоке отображаются акции, в которых пользователь участвует в данный момент. При тапе на кнопку “Все” открывается полный список акций, в которых участвует пользователь.
  4. “Завершенные акции”. В блоке отображаются акции, у которых исчерпан бюджет, завершился срок или которые были деактивированы вручную через панель администрирования. При тапе на кнопку “Все” открывается полный список завершенных акций пользователя.



Мобильное приложение не может менять состояние акции самостоятельно, кроме промежуточного.

Состояние акций клиент получает с сервера посредством синхронизации агрегата QuestProgress или получения событий типа QuestProgress через SignalR, при этом синхронизируя локальное состояние с серверным.

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

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

Контент
В основе понятия "контент" в ЯЭксперт, лежит интерактивная презентация (приложение). Приложения для ЯЭксперт - это Web-приложения создаваемые с использованием веб-технологий, таких как HTML, CSS, и JavaScript. Приложения состоят из слайдов, медиафайлов и пакета с ассетами.
Каждое приложение находится в клиенте ЯЭксперт. Для того что бы получить доступ к контенту через API, нужно иметь необходимые права в клиенте к которому принадлежит приложение. Помимо прав, клиент и приложение должно быть в активном состоянии.

Структура презентации

  1. Презентация загружается в систему в виде архивированного пакета;
  2. Поддерживает только формат .zip (форматы .7z, .rar, др. не поддерживаются);
  3. Презентация всегда должна содержать файл index.html (при старте презентации на планшете, открывается именно этот файл);
  4. Возможно использовать любую структуру файлов и каталогов;
  5. Рекомендуется использовать .html файлы в качестве слайдов презентации (см. пункт «Слайды презентации»);
  6. Слайды презентации необходимо класть в «корень» вместе с index.html для того, чтобы система распознала их и включила сбор количественных метрик по ним;
  7. Файлы с расширением .html могут находиться не только в корне презентации, но в таком случае они не будут считаться в системе «слайдами» и соответственно, по ним не будет автоматически собираться статистика, и они не будут включены в системную карту презентации (если она используется);
  8. Медиафайлы (аудио, видео) необходимо класть в каталог с названием medifiles (см. пункт «Медиафайлы»);
  9. Медиафайлы также можно загружать отдельно от архива (в панели администратора);
  10. В архиве не должно быть файлов недопустимых форматов (см. пункт «Недопустимые файлы»);
  11. Для правильного отображения содержимого текстовых файлов, они должны быть в кодировке UTF-8;
  12. Следует использовать латиницу в названиях файлов и каталогов в пакете для корректного отображения их имени;
  13. Презентация может не содержать слайдов совсем (необходим только контент или используется как источник данных через API);
  14. Пакеты не имеют ограничений по размеру;
  15. Название файла слайда имеет ограничение в 256 символов;
  16. Название файла слайда может содержать символы любого регистра (кроме index.html);
  17. Расширение слайда должно быть .html (в нижнем регистре);
  18. Система позволяет использовать возможности HTML5, CSS3 и любые JavaScript библиотеки, которые поддерживаются JS-движком компонента UIWebView;
  19. Код и верстка должны быть оптимизированы как для Mobile Safari;
Made on
Tilda