Решение
Мы создали веб-приложение, в котором исходные данные, занятия и опубликованное расписание связаны между собой. Работа строится последовательно: загрузка данных → редактирование сетки → проверка и оптимизация → публикация.
Переход с Excel без повторного ввода расписания
Одной из задач стал импорт существующих расписаний. У образовательных организаций разные шаблоны Excel: расположение групп, обозначения преподавателей, объединённые ячейки и способы указания дат.
Для разбора таких файлов мы подключили искусственный интеллект. Он помогает определить структуру таблицы и распознать сведения о занятиях. Полученный результат проходит предварительный просмотр: сотрудник проверяет данные и при необходимости корректирует их перед сохранением.
Так мы сохранили возможность начать работу с уже подготовленного расписания, не перенося каждое занятие вручную.
Редактор с учётом реальной структуры обучения
Одной ячейки с названием предмета недостаточно, чтобы описать расписание вуза. В одно время группа может делиться на подгруппы, несколько групп — объединяться в поток, а занятия — проводиться только по отдельным неделям или датам.
В редакторе предусмотрены группы, подгруппы и потоки, несколько учебных активностей в одном временном интервале и разные правила проведения занятий. Для каждой активности задаются дисциплина, вид занятия, преподаватель, аудитория и состав обучающихся.
Диспетчер работает с общей сеткой и открывает подробные настройки конкретного занятия по мере необходимости.
Проверка пересечений и ограничений
Мы связали занятия с данными о преподавателях, аудиториях и датах проведения. Это позволяет искать конфликты с учётом того, когда занятие действительно проходит.
Например, две записи в одном временном интервале не обязательно означают пересечение: они могут относиться к разным подгруппам или проводиться в разные недели. Проверка должна учитывать эти различия, чтобы предупреждения помогали диспетчеру принимать решения.
Система выявляет проблемные назначения и показывает их в контексте расписания.
Управление версиями и публикацией
Подготовка изменений отделена от публикации. Диспетчер работает с черновиком, проверяет его и затем публикует нужную версию.
На основе общих данных формируются представления расписания для групп и преподавателей. Предусмотрены экспорт в Excel, размещение на сайте через виджет и интеграция с MAX.
Это позволяет использовать одну опубликованную версию как источник расписания для нескольких каналов.
Архитектура и технологии
Система разработана на PHP, JavaScript и Python. Для хранения данных используется реляционная база данных, для взаимодействия компонентов и внешних интеграций — REST API.
Модульная архитектура позволяет развивать редактор, импорт, проверки и алгоритмы расстановки как части одного продукта. Предусмотрены облачное использование и развёртывание на сервере образовательной организации.