Pull to refresh

Как я упрощал учебный процесс с помощью бота

Вступление


Всем привет. Наступило лето, и у меня дошли руки написать данную статью. Представлюсь: Я — школьник, перешедший в 11 класс. Как у любого учащегося, у меня есть беседа класса, где скидывают домашние задания, спрашивают расписание и так далее. Вдохновившись программированием, сразу родилась идея автоматизировать эту рутину и потешить свое самолюбие порадовать одноклассников.

Ввиду возраста, опыт в программировании у меня скудный, а на Node.JS вообще нулевой, поэтому, прочитав пару статей, было решено действовать.

Репозиторий.

Функционал


Что хотелось от бота? Узнать Д/З, расписание… Да и все, в целом. Однако, по мере решения одной задачи, появлялись другие, и на данный момент бот обладает 9 командами, не считая справок и неформальных функций.

Итак, по порядку:

  1. /дз
    Предельно простая команда, которая отправляет домашнее задание c текущего дня.
  2. /урок
    Оповещает, какой урок проходит в данный момент.
  3. /уроки
    Отправляет расписание на текущий день.
  4. /игры
    Дает в возможность играть в игры с пользователем (баловство, но лишним не будет).
  5. /insert
    Дает возможность исправить или внести домашнее задание, если по какой-то причине оно неизвестно.
  6. /дата
    Отправляет клавиатуру, где можно выбрать домашнее задание на конкретный день недели.
    Кроме того, если пользователь пишет что-то вроде «Что задано?», то ему отправляется точно такая же клавиатура.
  7. /отзыв
    Позволяет отправить отзыв о работе бота. Он анонимен (формально, так как если отправитель находится в одной беседе с вами, анонимностью тут и не пахнет).
  8. /завтра
    Отправляет расписание на завтрашний день.
  9. /неделя
    Отправляет расписание на всю неделю.

Собственно, я описал все команды, но один вопрос остался открытым — а как же и где обновлять домашние задания? Понятно, что нельзя каждый раз открывать проект и вручную все обновлять, это неудобно. Я пришел к такому решению: создать на GitHub текстовый файл, откуда бот парсит все данные, а чтобы обновить их, просто переписать и перезапустить бота.

Настройка, установка и деплой


Что нужно, чтобы заработал бот? Вот инструкция:

  1. Создать группу ВКонтакте.
  2. Перейти во вкладку Управление.
  3. Перейти в пункт меню Управление API.
  4. Нажать на кнопку Создать ключ. Поставить нужные галочки (или все, все зависит от ваших нужд). Нажать Создать.


  5. Перейти во вкладку Long Poll API, включить LongPoll и поставить последнюю версию API, при этом выбрав нужные события.
  6. Скопировать ключ доступа и вставить его в переменную TOKEN.


Установка репозитория осуществляется через Git:

git install https://github.com/sashafromlibertalia/SchoolBot.git

В нем лежит файл Procfile, нужный для деплоя бота. Деплой осуществляется через Heroku

Обратная связь


У меня были опасения, что мое творение не придется по душе товарищам, и отчасти это подтвердилось: люди не были подготовлены к такому, но со временем результат был сугубо положительный.

Вот примеры реакций на бота:


________


________



Заключение


Надеюсь, мой труд окажется полезным для школьников и студентов, читающих Хабр. Я открыт к любой конструктивной критике, особенно насчет качества кода.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.