Расписание вузов на телефоне — как поддерживать актуальность

в 10:19, , рубрики: Без рубрики

image

Этот пост про то, как изменчиво учебное расписание. А может и любое расписание, именно поэтому, как нам кажется, так мало проектов, которые занимаются каким-либо расписанием. А если и занимаются, то жалуются на его неактуальность.

Мы занимаемся расписанием вузов в мобильных приложениях (мы уже писали о нем), у нас есть приложения под iOS и Android, вот-вот выйдет под Windows Phone. Чтобы все расставить по местам, сначала напишем, как все происходит, а точнее — откуда у нас берется расписание.

Добавление расписания

Если мы хотим в наших мобильных приложениях публиковать расписания вуза/факультета, то нам необходимо получить его в нашем формате. Для этого мы предоставляем вузу нашу спецификацию по JSON (на случай, если у него есть расписание в электронной базе) или шаблон в excel-файле (если нет).

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

Изменения в расписании

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

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

Ну, и вот тут столкнулись со следующим: студенты присылают ошибку в расписании, но на сайте вуза она не отражена. Это может происходить по разным причинам. Например, потому что студенты сами договорились с преподавателем, а кафедру/деканат/диспетчера в известность поставить забыли. Или не забыли, но диспетчер у себя пометил на листочке, а отдавать это в электронную базу уже необязательно. Если мы обновляем расписание через JSON этого вуза, то все ошибки, которые были внесены студентами, затираются. Что не очень правильно с точки зрения того, что студенты часто имеют больше информации о своем расписании, чем деканаты.

Решили сделать систему приоритетов: если на факультете вуза в базе есть флажок, то проверяется, вносили ли исправления, и если вносились, то не обновляется. Если флажка нет, то сразу обновляется через JSON. Понимаем, что система несовершенна.

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

Самостоятельное редактирование расписания

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

— Чтобы изменять расписание, студенту необходимо авторизоваться. Например, через Вконтакте или в нашей собственной регистрации.
— Он может нажать на пару и в появившемся меню выбрать «Редактировать».
— Там он может изменить все параметры для пары и поставить галочку «Предложить остальным», которая подразумевает — предложить это изменение расписание остальным свои одногруппникам.
— Если он галочку поставил, то у одногруппников всплывает уведомление с кнопкой «принять изменение». Если на нее нажмут хотя бы три человека, изменение вступит в силу не только у этих студентов, но и у всей остальной группы.
— Преподавателю всплывает только уведомление, что пара изменена по таким-то параметрам.

Что вы думаете? Есть ли у вас опыт, которым вы бы хотели поделиться, или любые другие комментарии?

Автор: vuzarium

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js