Проекты: Система тестирования знаний «Балл»

Николай Неустроев — Mar 29, 2016    development, workflow, projects

«Балл» — онлайн-система для проведения тестирования в школах.

История и цель проекта

Арвидас Жилинскас еще будучи студентом занимался репетиторством — помогал школьникам готовиться к ЕГЭ по математике. Не оставил он это занятие и после того, как получил диплом физика и устроился на работу в банк. Предпринимательские способности дали о себе знать, поэтому вскоре он открыл образовательный центр ARNA

Спустя некоторое время Арвидас понял, что пора подняться на новый уровень в деле школьного образования. Тут и начинается история его стартапа под названием Система Независимой Оценки Качества Общего Образования «Балл». Сокращенно — СНОКОО «Балл» или просто «Балл».

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

Для этого система должна предоставлять следующие возможности:

  1. Администраторы вносят в систему задачи для проверки знаний;
  2. Учителя назначают учеников на тестирование;
  3. Ученики проходят тестирование;
  4. Результаты проверяются: одна часть автоматически, другая — специальными людьми.

Арвид знал нашего директора Романа, потому что учился с ним на одном курсе, и поэтому он предложил нам взяться за разработку этого проекта. Мы начали в августе 2014 и уже через 2 месяца, к концу сентября, мы успешно проверили систему на настоящем тестировании.

Первая серьезная сессия была в феврале 2015, следующая — осенью, и затем декабре. В январе 2016 на системе “Балл.орг” была проведена олимпиада школьников по финскому языку.

Функции проекта

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

Возможности преподавателя

Учителю доступны 5 разделов:

  1. Доступные тестирования
  2. Активные тесты
  3. Завершенные тесты
  4. Статистика
  5. Обратная связь

Сценарий преподавателя для запуска теста

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

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

Сценарий ученика

У каждого ученика есть свой аккаунт в системе, в который он может войти в любой момент.

Он видит свои активные тесты (которые идут прямо сейчас), пройденные и предстоящие. Для будущих, конечно, показывается только дата, открыть их нельзя.

По нажатию на “Начать тестирование” ученик переходит на страницу теста, где он сразу видит первый вопрос.

Учащийся может свободно переходить между вопросами, в т.ч. и уже пройденными, чтобы изменить ответ. Состояние вопроса характеризуется цветом:

  • зеленый (ответ дан)
  • красный (просмотрено, но ответ не дан)
  • голубой (не просмотрено)

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

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

А когда сессия тестирования завершена, на этой же странице показывается статус каждого ответа ученика (верно или нет), выводятся правильные ответы и комментарии проверяющего.

Стоит заметить, что аккаунты полностью анонимизированы, и в системе не происходит хранение персональной информации и личных данных.

Сценарий преподавателя для завершенного теста

С завершенными тестами преподаватель может совершить следующие действия:

  1. Посмотреть или распечатать вопросы завершенных тестов
  2. Загрузить разом сканы или фотографии всех письменных ответов учеников (но обычно это должны делать сами учащиеся)
  3. Посмотреть результаты любого ученика — там показываются вопросы и ответы учащегося и правильные ответы системы.

Сценарий проверяющего

Цель проверяющего — оценить те вопросы, которые не могут быть проанализированы системой. Для него в интерфейсе есть 2 списка тестов: проверенные и непроверенные. Все тесты можно отфильтровать по тестированию, школе или ученику.

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

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

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

Возможности администратора

Административные функции нужны для наполнения системы и связывания всех пользователей в единый процесс.

Тесты и вопросы

Страница списка тестов позволяет создавать новые тесты и редактировать имеющиеся. Работа с тестом заключается в создании вопросов для него.

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

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

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

Кроме этого, администратор может управлять пользователями и справочниками (города, районы, школы, предметы и т.д.), видеть лог проверки, состояние системы и статистику.

Статистика

Статистику может смотреть как преподаватель, так и администратор системы, однако они имеют разные права доступа. Доступен десяток графиков:

  • Уровень достижений по предметам
  • Рейтинг школ
  • Успеваемость учеников
  • Аналитика по выбору предмета
  • Статистика посещаемости
  • Время выполнения
  • Результаты анкетирования
  • Статистика по преподавателям
  • Медиана
  • Динамика среднего балла
  • Динамика учеников (у преподавателей)
  • Динамика результатов в таблицах

Рабочие процессы на проекте

Проектирование

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

Итерационный подход

Итерации это периоды времени постоянной длительности, на которые делится все время работы. На этом проекте итерации были по неделям.

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

Инструменты обсуждения и учета задач

Система Балл стала первым проектом, на котором мы решили внедрить YouTrack для ведения задач по разработке.

Основная работа велась в модуле Agile Boards, основанном на принципе Канбан-досок. В таком случае экран делится на несколько столбцов, каждый из которых соответствует определенному возможному статусу задачи:

  • Open — задача готова к работе, но не начата
  • In Progress — задача в работе
  • Code check — проверка кода другим разработчиком
  • Fixed — готова и загружена на тестовый сервер
  • Verified — проверена менеджером

Дополнительные статусы

  • To be discussed — возник вопрос, требущий уточнения у менеджера или клиента
  • Reopened — открыта заново (если что-то нужно исправить)

Таким образом, задача по мере работы над ней перемещается из крайнего левого столбца в крайний правый.

С сентября 2015 года мы перешли в другой сервис — Trello, сохранив те же принципы работы. Его преимущество в том, что он удобен как для разработчиков, так и для клиентов. А раньше нам приходилось вести общение с заказчиком в Basecamp и потом дублировать информацию в Youtrack.

Технологии

Проект работает на Symfony2. Разработка проекта была начата на версии 2.3, сейчас используется 2.7. Кроме стандартных компонентов мы задействовали следующие сторонние библиотеки:

  • doctrine/doctrine-fixtures-bundle — для организации загрузки тестовых данных,
  • doctrine/doctrine-migrations-bundle — для управления изменениями структуры базы (используем по-умолчанию во всех наших проектах),
  • evercodelab/hipchat-monolog-bundle — наш бандл для отправки уведомлений об ошибках, возникающих в ходе работы проекта, в наш рабочий чат,
  • pugx/multi-user-bundle — чтобы обеспечить разные типы пользователей,
  • phpoffice/phpexcel — для работы с excel-файлами.

Для визуального оформления системы мы взяли Bootstrap, позволяющий быстро и без помощи дизайнера создавать нормальный интерфейс. Для графиков использовали highcharts.js. В моменты нагрузок состояние сервера отслеживалось через New Relic.

Команда

  • Арвидас Жилинскас — заказчик
  • Дмитрий Константинов — основной разработчик
  • Никита Мовшин — менеджер
  • Сергей Лунев — разработчик
  • Роман Лапин — присматривал и помогал

Заключение

С момента запуска системы в работу осенью 2014 по начало 2016 года было проведено 4 сессии тестирования по 10 предметам и еще 3 сессии по двум основным предметам — русскому языку и математике, в которых принимало участие 84 школы и более 5,5 тысяч учеников.

Реализован полный цикл работы по контролю качества знаний: написание тестов специалистами, прием ответов от ученика, ручная и автоматическая обработка ответов, разные формы статистики и отчетов.

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

Не будем скрывать, что проект Балл.орг — один из наших самых любых.

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

Отзыв заказчика

Арвидас оставил нам один из самых крутых и запоминающихся отзывов. Обязательно почитайте:

Кто такие программисты, и почему важно иметь в офисе вкусные пряники

«Кто такие программисты? Что это за люди? Каких принципов в работе они придерживаются?» Эти вопросы задавал я себе, анализируя предложения по выполнению услуг в сфере программирования. Я всегда, выбирая подрядчика для выполнения своих проектов, пытаюсь понять, как же на самом деле построена работа и устроена система ценностей в компании, которая будет выполнять для меня задачи.

Все исполнители кричат: «качество, сроки, цена!» Но что на самом деле они думают? Можно ли им доверять? Читатель, согласись — важна искренность. И только она одна.

Искренность в диалоге с клиентом (то есть со мной), появляется, когда мне действительно хотят помочь. Когда люди живут своей работой, знают ее и умеют ее хорошо выполнять и организовывать. А все остальное — это маркетинг, который для нас (клиентов) не влияет на добавленную стоимость программного продукта. Поэтому в первую очередь я благодарен ребятам из Everсode Lab за искренность в работе на 95 %, и за маркетинг на 5%, а не наоборот, как у многих других. (Конечно же маркетинг тоже должен быть : -) )

Основываясь на том, что Everсode Lab создали для меня сложнейшую систему тестирования, как часть системы независимой оценки качества общего образования, которой на данный момент пользуется около 4000 школьников на постоянной основе, сотрудникам этой организации точно можно доверить выполнение сложной и ответственной задачи. Поверьте, то что сделали для меня ребята, гораздо сложнее, чем вам может показаться на первый взгляд. Спасибо им за это. Спасибо!

P.S. Пряники в офисе отменные.

«C благодарностью в душе к терпеливому ежедневному профессиональному труду сотрудников компании Everсode Lab» Жилинскас А.А.

Evercode Lab

Close