Оригинальное расписание не очень юзер френдли: надо сделать кучу кликов, постоянно вручную вводить номер своей группы в поиск, нельзя добавить страницу в закладки.
Эти проблемы призван устранить данный сайт.
И расписание может часто меняться. Дирекция не пишет об отменах пар и мелких перестановках. Для этого здесь есть кабинет старосты - новый способ управления учебной группой.
Староста может сообщать о переносах, изменениях аудиторий, перестановках, добавлять новые пары и мероприятия. И все это в едином интерфейсе календаря расписания пар.
Основные фичи данного проекта:
Ничего необычного тут нет. Сервис использует 2 языка программирования: PHP и JS. Стек немного устаревший, но почему бы и нет (все таки изначально расписание было написано за пару часов, потому что мне дико не понравился интерфейс оригинального). Все это стоит на чудном хостинге bomjar.ga.
Как это работает? Да очень просто. Все запросы отправляются к API расписания иктиба
http://ictis.sfedu.ru/schedule-api/
. Мы не храним оригинальное расписание у себя, это позволяет всегда отдавать самую актуальную информацию, но с небольшой потерей в скорости работы сайта. Расписание, созданное старостой (мы его называем дополнительное расписание) хранится на сервере. Когда вы открываете страницу, приложение берет 2 этих расписания и накладывает друг на друга.
Мега обнова 17.05.2021. Теперь все работает сложно. Расписание у иктиба лежало 3 дня подряд, это никуда не годится. Поэтому я наконец решил прикрутить сюда MySQL. Теперь все хранится у нас в базе данных, а не берется напрямую с ИКТИБа. Это дает кучу преимуществ: сайт теперь открывается моментально (не надо ждать прогрузки с внешнего сервера), если иктиб ляжет, то у вас никуда не денется доступ к расписанию, у меня теперь вся информация хранится в одном месте, а не в куче файлов.
Как это работает? Когда вы открываете страницу расписания, сайт берет информацию из локальной базы. Если информация в базе была получена с сервера иктиба более часа назад, то сайт отправляет запрос на сайт иктиба и получает актуальную информацию, заносит её в базу. Таким образом, база постоянно обновляется и синхронизируется с иктибом.
Проблема может возникнуть только если расписание на самом иктибе было изменено за последние несколько минут. Тогда надо ждать пока не пройдет час с последнего запроса, чтобы база засинхронизиловалась.
Если вы хотите сделать что-нибудь свое, вот немного документации, а вообще лучше напишите Алексу
https://ictis.ru/api?request=schedule&group=_GROUP_&week=_WEEK_
group
- id группы в формате 1.htm,
week
- номер учебной недели (опционально)https://ictis.ru/api?request=extdata&group=_GROUP_&week=_WEEK_
group
- id группы в формате 1.htm,
week
- номер учебной недели (опционально)https://ictis.ru/api?request=update&group=_GROUP_&week=_WEEK_
group
- id группы в формате 1.htm,
week
- номер учебной недели (опционально)http://ictis.sfedu.ru/schedule-api/?query=_QUERY_
query
- поисковый запрос
А вот дрим тим, которая стоит за этим чудом:
Алекс (ВК) - По всем вопросам
Баир
Никита