О сайте

↩ на главную

Зачем?

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

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

Основные фичи данного проекта:

Если вы являетесь старостой, свяжитесь с ответственным за работу с расписанием для установки пароля и предоставления доступа к кабинету.

Как? - Технологии

Ничего необычного тут нет. Сервис использует 2 языка программирования: PHP и JS. Стек немного устаревший, но почему бы и нет (все таки изначально расписание было написано за пару часов, потому что мне дико не понравился интерфейс оригинального). Все это стоит на чудном хостинге bomjar.ga.

Как это работает? Да очень просто. Все запросы отправляются к API расписания иктиба http://ictis.sfedu.ru/schedule-api/. Мы не храним оригинальное расписание у себя, это позволяет всегда отдавать самую актуальную информацию, но с небольшой потерей в скорости работы сайта. Расписание, созданное старостой (мы его называем дополнительное расписание) хранится на сервере. Когда вы открываете страницу, приложение берет 2 этих расписания и накладывает друг на друга.

Мега обнова 17.05.2021. Теперь все работает сложно. Расписание у иктиба лежало 3 дня подряд, это никуда не годится. Поэтому я наконец решил прикрутить сюда MySQL. Теперь все хранится у нас в базе данных, а не берется напрямую с ИКТИБа. Это дает кучу преимуществ: сайт теперь открывается моментально (не надо ждать прогрузки с внешнего сервера), если иктиб ляжет, то у вас никуда не денется доступ к расписанию, у меня теперь вся информация хранится в одном месте, а не в куче файлов.
Как это работает? Когда вы открываете страницу расписания, сайт берет информацию из локальной базы. Если информация в базе была получена с сервера иктиба более часа назад, то сайт отправляет запрос на сайт иктиба и получает актуальную информацию, заносит её в базу. Таким образом, база постоянно обновляется и синхронизируется с иктибом.
Проблема может возникнуть только если расписание на самом иктибе было изменено за последние несколько минут. Тогда надо ждать пока не пройдет час с последнего запроса, чтобы база засинхронизиловалась.

Если вы хотите сделать что-нибудь свое, вот немного документации, а вообще лучше напишите Алексу

API
Получение расписания
https://ictis.ru/api?request=schedule&group=_GROUP_&week=_WEEK_
Где group - id группы в формате 1.htm, week - номер учебной недели (опционально)
Производит поиск по локальной базе. Если расписание еще не загружено, то автоматически загружает его с сервера иктиба и отдает.
Возвращает JSON

Получение расширенного расписания, созданного старостой
https://ictis.ru/api?request=extdata&group=_GROUP_&week=_WEEK_
Где group - id группы в формате 1.htm, week - номер учебной недели (опционально)
Возвращает JSON с дополнительной информацией к основному расписанию

Обновление расписания
https://ictis.ru/api?request=update&group=_GROUP_&week=_WEEK_
Где group - id группы в формате 1.htm, week - номер учебной недели (опционально)
Производит обновление расписания выбранной группы на неделю с сервера ИКТИБ
Возвращает bool

Поиск
Прямое обращение к серверу ИКТИБ
http://ictis.sfedu.ru/schedule-api/?query=_QUERY_
Где query - поисковый запрос
Возвращает JSON

Кто? - Команда и авторы

А вот дрим тим, которая стоит за этим чудом:
Алекс (ВК) - По всем вопросам
Баир
Никита