Мы работаем в компании «Расписание вузов», делаем мобильные приложения (iOS, Android, Windows Phone), в которых публикуется учебное расписание студентов и преподавателей.
Одним из главных вопросов нашего проекта остается — как сделать так, чтобы студент мог как можно проще и быстрее ввести свое расписание в нашу базу. Перебивать вручную расписание долго и муторно. Хорошо, если у ВУЗа электронное расписание и они сделали интеграцию с нашим сервисом, но 90-93% ВУЗов в России не имеют электронного расписания. А сделать интеграцию не спешат еще больше. Ничего не остается как перебивать его вручную.
![](https://habrastorage.org/r/w1560/files/6e8/fd6/283/6e8fd6283c8e446c97aaea34a2ea90d2.png)
Поначалу мы использовали excel-шаблоны с макросами, к ним прилагалась инструкция на пару страниц, могло запугать кого-угодно. Весной мы сделали веб-форму, чтобы сделать процесс перебивки своего расписания более дружелюбным. С конца августа мы начали получать по сотне расписаний в день через эту веб-форму и снова обратили внимание на этот процесс. Модерация происходила в ручном режиме, и нас завалило потоком расписаний. Надо было автоматизировать, а чуть позже, когда поток расписаний уменьшился, то и оптимизировать.
Мы переделали форму целиком. Теперь она показывается в виде привычной для студента таблицы, которую он часто видит на стене возле деканата, и эту таблицу можно заполнять свои парами.
Чтобы не заполнять на каждый день одно и то же, мы сделали отдельный ввод для расписания звонков.
![](https://habrastorage.org/r/w1560/files/306/29f/c37/30629fc37f5a4a29a960569bfe6b0896.png)
Если ввести время начало первой пары, веб-форма сама предложит окончание пары сделать через полтора часа, а перерыв между парами — по 15 минут. Если в ВУЗе это не так, то как только пользователь начнет в первый раз вводить свои интервалы, дальше веб-форма «научиться» предлагать значения по сетке звонков этого ВУЗа.
Наша система поддерживает четность/нечетность занятий в периодическом расписании, и «конечные курсы» в модульном расписании (курс дисциплин, который идет с даты по дату, или только в определенные даты). Реализовали таким образом:
![](https://habrastorage.org/r/w1560/files/78f/fea/19e/78ffea19efb149fcb9db2f3c680bfa6e.png)
При переделке этой формы решили, что она должна быть наглядной и привычной не только после заполнения, но и во время. Выглядит вот так (заполненная на один день):
![](https://habrastorage.org/r/w1560/files/5ea/db1/fbb/5eadb1fbba1e4d5384d56b7e4cb796b0.png)
Если ВУЗ и факультет уже существовали в нашей базе, то проверка расписания произойдет гораздо быстрее. Если ВУЗа или факультета нет в нашей базе, то нам его придется самим создавать. Отдать это пользователям мы пока боимся, т.к. они часто пишут сокращенные названия, не полные, возникает много дубликатов — база захламляется.
К сожалению, мы понимаем, что хоть технически сюда можно перебить почти любое расписание, но не всегда это делать удобно. Например, циклическое расписание, которое используется в медицинских вузах. Или расписание сессии, которое по сути является календарным и слабо привязано к дням недели. В этом направлении будем работать.
Будем Вам благодарны, если укажете на недостатки и частные случаи других видов расписаний, которые у нас не поддерживаются.
Одним из главных вопросов нашего проекта остается — как сделать так, чтобы студент мог как можно проще и быстрее ввести свое расписание в нашу базу. Перебивать вручную расписание долго и муторно. Хорошо, если у ВУЗа электронное расписание и они сделали интеграцию с нашим сервисом, но 90-93% ВУЗов в России не имеют электронного расписания. А сделать интеграцию не спешат еще больше. Ничего не остается как перебивать его вручную.
![](https://habrastorage.org/files/6e8/fd6/283/6e8fd6283c8e446c97aaea34a2ea90d2.png)
Поначалу мы использовали excel-шаблоны с макросами, к ним прилагалась инструкция на пару страниц, могло запугать кого-угодно. Весной мы сделали веб-форму, чтобы сделать процесс перебивки своего расписания более дружелюбным. С конца августа мы начали получать по сотне расписаний в день через эту веб-форму и снова обратили внимание на этот процесс. Модерация происходила в ручном режиме, и нас завалило потоком расписаний. Надо было автоматизировать, а чуть позже, когда поток расписаний уменьшился, то и оптимизировать.
Мы переделали форму целиком. Теперь она показывается в виде привычной для студента таблицы, которую он часто видит на стене возле деканата, и эту таблицу можно заполнять свои парами.
Расписание звонков.
Чтобы не заполнять на каждый день одно и то же, мы сделали отдельный ввод для расписания звонков.
![](https://habrastorage.org/files/306/29f/c37/30629fc37f5a4a29a960569bfe6b0896.png)
Если ввести время начало первой пары, веб-форма сама предложит окончание пары сделать через полтора часа, а перерыв между парами — по 15 минут. Если в ВУЗе это не так, то как только пользователь начнет в первый раз вводить свои интервалы, дальше веб-форма «научиться» предлагать значения по сетке звонков этого ВУЗа.
Четность недели в периодическом расписании, поддержка модульного расписания.
Наша система поддерживает четность/нечетность занятий в периодическом расписании, и «конечные курсы» в модульном расписании (курс дисциплин, который идет с даты по дату, или только в определенные даты). Реализовали таким образом:
![](https://habrastorage.org/files/78f/fea/19e/78ffea19efb149fcb9db2f3c680bfa6e.png)
При переделке этой формы решили, что она должна быть наглядной и привычной не только после заполнения, но и во время. Выглядит вот так (заполненная на один день):
![](https://habrastorage.org/files/5ea/db1/fbb/5eadb1fbba1e4d5384d56b7e4cb796b0.png)
Если ВУЗ и факультет уже существовали в нашей базе, то проверка расписания произойдет гораздо быстрее. Если ВУЗа или факультета нет в нашей базе, то нам его придется самим создавать. Отдать это пользователям мы пока боимся, т.к. они часто пишут сокращенные названия, не полные, возникает много дубликатов — база захламляется.
К сожалению, мы понимаем, что хоть технически сюда можно перебить почти любое расписание, но не всегда это делать удобно. Например, циклическое расписание, которое используется в медицинских вузах. Или расписание сессии, которое по сути является календарным и слабо привязано к дням недели. В этом направлении будем работать.
Будем Вам благодарны, если укажете на недостатки и частные случаи других видов расписаний, которые у нас не поддерживаются.