Инструкция. Телеграм Bot расписания Компьютерной академии ШАГ @ITStepZhitomir_bot

Инструкция. Телеграм Bot расписания Компьютерной академии ШАГ @ITStepZhitomir_bot

Руслан Новиков, Житомир

НАЗНАЧЕНИЕ

  • Присылать уведомления об изменениях в расписании;
  • Фильтр расписания по группам и преподавателям;
  • Общая загрузка академии по дням;

О ПРОЕКТЕ

  • Проект является практическим примером веб-разработки. На его примере несколько групп студентов заинтересовались темой "Телеграм ботов" и реализовали свои похожие проекты;
  • Данный телеграм Bot НЕ является официальным приложением компьютерной Академии Шаг (в отличии от мобильного приложения MyStat в Google Play).
  • Проект поддерживается и развивается на общественных началах и НЕ является альтернативой веб-порталов академии для студентов Mystat и преподавателей Logbook.
  • Данные о расписании, преподавателях и группах считывается каждый час с 09:00 до 21:00 с портала Logbook (парсер расписания). Данные сравниваются с теми что хранятся в локальном хранилище проекта и если есть различия - формируются сообщения и рассылаются по спискам подписчиков Телеграм бота.
  • Используется PHP фреймворк Yii2

РЕКОМЕНДАЦИИ

  • Гиперсылки в расписании активны?
    Да, имя преподавателя или название группы - активно для перехода. Но после каждого клика по гиперсылке, необходимо подтвердить переход, нажатием всплывающей кнопки START мессенджера.
Если кликнуть на любой ссылке, ниже надо подтвердить переход нажатием клавиши START
  • Если вы подписались на получение уведомлений об изменении в расписании того или иного преподавателя или группу - кнопки Неделя и +Неделя - на Главной, покажут расписание основного для вас преподавателя/группы. Основной преподаватель/группа - этот тот объект, на которого вы подписались для уведомлений самым первым (см. кнопку Настройки).
Главная страница Bot, если вы подписаны на уведомления
  • Чтобы подписаться на того или иного преподавателя или группу для получения сообщений об измнении в расписании. Зайдите в список Групп/Преподавателей по соответсующей кнопке. Выберите нужный вам объект. Нажмите Подписаться. Чтобы отписаться нажмите Отписаться.
Карточка преподавателя. Подписка / отписка
  • Сообщения об измненении будут приходить тут же в основной ленте Bot:
В этом примере пользователь подписан на соответсвующие группы и преподавателей, по этому здесь он получил уведомления об изменении в расписании
  • Я получаю уведомления о чужом преподавателе или группе
    Ответ: зайдите на страницу Настройки Bot и убедитесь что вы подписаны только на один объект. Т.к. если вы подписаны на какую либо группу, вам будет приходить расписание по этой группе тоже.
Страница Настройки
  • Если добавить Bot как нового участника в общем Telegram чате студентов, он сможет уведомлять в чате об изменениях выбранного расписания в их чате.
  • Когда входящие сообщения о измненении расписания скрывают блок "Главная страница", нажмите контекстное меню на клавиатуре мессенджера Telegram: [/] и пункт [/start] Вы снова попадете на Главную страницу Bot
Как вернуться на Главную под лавиной сообщений об измнении Расписания

ЛОГ ИЗМЕНЕНИЙ

  • 13/07 В списках Групп и Преподавателях теперь отображаются только те у кого есть пары в расписании.
  • 12/07 Парсер расписания. Провели исследование и нашли в Adminlb где брать базу групп будущих еще не состоявшихся пар. В старом источнике Logbook эти группы отсутствовали и в расписании показывались как Undefined. Параллельно исправлена проблема когда имя группы в расписании корректировалось. Это приводило к сбоям т.к. в старом источнике расписания Logbook - нет ID группы и ключем является имя группы. Теперь имя группы обновляется до актуального. Но еще предстоит переписать парсер и отказаться от Logbook.
  • 11/07 Текущая неделя для преподавателя/группы. По просьбам пользователей, перестали скрывать уже прошедшие дни текущей недели.
  • 12/06 Уведомления. "Кабинет изменен" теперь приходят только на ближайшие пары (т.к. изменение кабинета важно знать только на сегодня-завтра). Остальные типы уведомлений (Новая пара, Пара отменена, Замена пары, Замена преподавателя) - будут приходить по мере изменения в доступном расписании.
  • 10/06 На главной странице теперь выводится расписание пар которые еще только будут сегодня у основного преподавателя/ группы на которую вы подписаны.
    Основной преподаватель/группа - этот тот объект, на которого вы подписались для уведомлений самым первым (см. кнопку Настройки).
  • 05/06 Уведомления. Утром в понедельник шла лавина сообщений о новых парах на +4 неделю. Добавлена заглушка, блокирующая сообщения в понедельник утром.
  • 04/06 Парсер. Расписание теперь доступно вместо +1 неделя на губину + 4 недели
  • 01/06 Оформление. Даты формата "01-01-2019" заменены на "01 Января"
  • 15/05 Уведомления. Введена очередь сообщений, это позволяет при отправке уменьшить количество сообщений. Информация о идущих друг за другом похожих парах, отправляется в одном сообщении а не отдельно.
  • 22/03 Старт работы над проектом. Парсер расписания из Logbook портала. Авторизация парсером на Logbook. Наполнение справочников БД.

ПЛАНЫ ДЛЯ РАЗВИТИЯ - СРОЧНО ВАЖНО

  • Парсер. Необходимо сменить источник расписания с logbook на adminlb. Т.к. в текущем источнике ID группы определяется по ее названию. Также можно будет получить ID названия предметов. Это позволит в расписании дать их полное название и описание, а в будущем выложить в расписании учебные материалы (для авторизированных пользователей).
  • Портировать облегченную версию Bot на Viber. Для этого переписать основной контроллер еще более под МVС;
  • Авторизированный студент сможет видить статистику по экзаменам (этого не хватает в MyStat);

ПЛАНЫ ДЛЯ РАЗВИТИЯ - НЕ СРОЧНО НЕ ВАЖНО

  • Расширить настройки
    - Подписка на уведомления. Выбор основного преподавателя или пары. Сейчас основной преподаватель/пара- это тот, на которого вы подписались первым. Расписание для основного преподавателя/группы доступно на Главной станице на сегодня, а также по кнопкам ЭТА НЕДЕЛЯ

    - Лавина обновлений на +5 неделю. Сейчас блокируется утром понедельника, когда парсер получат доступ на +5 неделю. Или когда генерируется больше 20 сообщений. Как вариант - научить парсер видеть любую доступную дату а не +4 недели только. Тогда не придется блокировать лавину сообщений каждый понедельник утром, а только по мере их добавления учебной частью. Возможно в настройки вынести "Уведомлять об из мнениях в расписании на глубину не более N недель"

    - Текущая неделя - скрывать прошедшие дни текущей недели Да/Нет. Сейчас отображаются все дни текущей недели, в том числе прошедшие

    - Список преподавателей/групп. Отобразить всех в том числе отсутствующих в расписании. Сейчас отображаются только те преподаватели/группы, у которых есть пары в расписании
  • Снять видео подкаст с инструкцией для начинающих пользователей
* Открываем Telegram
* Поиск находим ItStepZhitomir_bot
* - Сегодня +/- дни
* - Показать как переходить по ссылкам / Start
* - Препод +/- неделя
* - Группа +/- неделя
* - Препод - подписаться
* - Препод - подписаться
* - Группа - подписаться
* - Настройки
* - Ждем уведомления ...
  • Разбить список кнопок Группы по соответствующим потокам:
- Программисты, сисадмины и веб
- Маркетинг
- Дизайнеры, видео-фото, художники
- Малая академия
- Инд. консультация

Ждем ваши вопросы и пожелания : @Nofikoff

Перейти в Bot http://t.me/ITStepZhitomir_bot