Домашняя страница
/

Проект

Приложение для экзаменов (NDA)

Экзамены онлайн: приложение и библиотека прокторинга

silver23
bronze23

О проекте

О проекте

О проекте

К нам обратился владелец платформы для организации и проведения онлайн-тестов и экзаменов (NDA). Сервис пользуется спросом и авторитетом — с его помощью, к примеру, принимаются экзамены уровня мини-MBA у топ-менеджмента в крупных банках, а ежемесячная нагрузка — более 200 000 сессий.

Как проходит онлайн-экзамен? Сотрудник-проктор в реальном времени идентифицирует и подтверждает личность студента, а затем следит за ходом испытания и может прокомментировать действия студента в отдельном чате. Задача проктора — предотвратить возможные нарушения и обеспечить прозрачность процедуры. Студент через планшет или телефон подключается, проходит идентификацию и сдает экзамен в удобном месте, не будучи привязанным к стационарным устройствам.

Сервис имеет и десктопную версию (для проктора), и мобильную. Но работой мобильного приложения заказчик был недоволен: тормозит, связь обрывается, постоянные перебои в передаче данных. Страдает не только репутация компании, но и студенты — интерфейс неудобен и неинформативен: например, обрыв связи не отображается. Заказчик обратился в Doubletapp, чтобы привести в порядок свое мобильное приложение под iOS и Андроид, повысить скорость и производительность, исключить риски от потери данных.

Задача

Задача

Задача

Изначально заказчик сформулировал задачу так: у нас есть мобильное приложение, приведите его в рабочий вид. Одновременно клиент поручил нам написать библиотеку прокторинга* под каждую мобильную платформу и на ее основе разработать новое приложение — вначале как MVP, чтобы посмотреть библиотеку в деле. Библиотека предназначена к продаже как отдельный продукт, в ней должна быть уже простроена бизнес-логика, чтобы можно было лишь спроектировать визуальную часть и получить готовое работающее приложение. Запрос по функционалу библиотеки: записи видео с фронтальной камеры и экрана чанками, а также последующая загрузка этих чанков на сервер; управление состоянием сессии, отправка всех запросов, связанных с началом и закрытием сессии, пингами, месседжами, фотографиями, комплитом и прочим.

*Библиотека прокторинга — инструмент, обеспечивающий одновременную запись с экрана мобильного устройства, его фронтальной камеры и звука с микрофона. Запись ведется непрерывно, а уже готовые отрезки (чанки) отправляются на сервер. После окончания экзамена и обработки на сервере получается цельная запись

1
2
3
4
5

Решение

Решение

Решение

Если рассматривать проект поэтапно, то маршрут у него такой: в первую очередь разработчики Doubletapp поставили на ноги имеющееся приложение клиента и зарелизили обновленную версию. Затем началась работа над библиотекой прокторинга и MVP (Minimal Viable Product) для проверки возможностей библиотеки.

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

nda

Результат

Результат

Результат

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

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

Специалисты Doubletapp закрыли потребность заказчика в качественных специалистах и продолжают поддерживать и дорабатывать приложение.

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

QA

Firebase
Firebase

Firebase

Qase
Qase

Qase

Charles
Charles

Charles

TestFlight
TestFlight

TestFlight

iOS

Swift
Swift

Swift

Swinject
Swinject

Swinject

Наша суперкоманда

АнтонiOS
ЯрославiOS
ДмитрийQAНиколайQAДенисAndroidДмитрийAndroid
ИванAndroid
АлександрAndroid
ДмитрийAndroid

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

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

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

Команда тестирования сопровождала и подстраховывала проект на всех этапах работы. Начали с классики — тестировали ТЗ на соответствие к требованиям, предъявляемым к ПО. Так как в работу взяли вначале библиотеку как отдельный продукт, ее функционал тестировали отдельно: проверяли, как реализуется запись экрана, фронтальной камеры и микрофона, как происходит сжатие, нет ли проблем с отправкой данных на сервер — нужно было убедиться, что нет фундаментальных проблем.

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

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

Менеджмент

Менеджмент

Менеджмент

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

Давайте работать вместе!

Прикрепить файл