Перейти к содержанию

Telegram бот «Работа для всех»

Всем привет!

Сегодня я делаю то, чего никогда не делал, но очень хотел это сделать. Сегодня я презентую первый разработанный мною проект — Telegram бот «Работа для всех», который помогает людям с инвалидностью искать вакансии. Впрочем, давайте все по порядку.

2023 г. был для меня одним из самых сложных, но очень интересных периодов в моей жизни. С января по октябрь мои нейронные связи напрягались так, как не напрягались со времен учебы в университете, а может, даже как никогда до этого.

А все почему? Потому что я сказал да своей мечте и пошел учиться программированию в Яндекс Практикум! Было сложно, где-то я думал, что все, не справлюсь, но, собрав волю и силы в кулак, я прошел весь этот путь и успешно окончил курс Python разработчика.

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

На фото автор проекта. Мужчина средних лет в черной футболке и очках на плюс!

За 10 месяцев учебы мы написали несколько интересных проектов, освоили крутые технологии и узнали много нового о разработке программного обеспечения.

Но я достаточно объективно оцениваю реальность, поэтому каких-либо иллюзий, что я сразу после курсов смогу найти работу в этой области, у меня не возникало. Согласитесь, пока еще не у всех, даже самых толерантных работодателей, укладывается в голове, что незрячий может программировать. Хотя таких ребят как в России, так и в мире немало. Кроме того, наши ребята работают и в крупнейших IT компаниях. Пользуясь случаем, обращаюсь к незрячим программистам: вы большие молодцы и ваш пример вдохновляет многих, в том числе и меня! Спасибо за это и удачи вам в работе!

Еще до начала учебы я для себя решил, что полученные знания я буду применять в работе над проектами, которые могли бы принести людям пользу. Так как я много интересуюсь вопросами в сфере занятости людей с инвалидностью, первый проект возник в моей голове достаточно быстро. Так и появился на свет Telegram бот «Работа для всех».

Работа для всех

Работа для всех – это Telegram бот, который  предоставляет возможность поиска и просмотра вакансий, опубликованных на сайте «Работа России», а также добавление понравившихся вакансий в избранное.

ссылка на бот: https://t.me/work_for_all_people_bot

Фон разделен на две части: справа - темно-серый, слева - желтый. Надпись: работа для всех. В нижнем левом углу есть QR код, который содержит ссылку на Telegram бот "Работа для всех."

Сразу хочу обратить внимание на два важных момента:

  • все вакансии, которые показывает бот, берутся с сайта Работа России. Поэтому за достоверность данных о вакансии разработчик бота ответственности не несет;
  • бот «Работа для всех» работает в тестовом режиме. Поэтому, если вы заметили какие-либо проблемы в работе бота, обязательно дайте мне об этом знать. Для этого в самом боте есть специальный раздел, который так и называется, обратная связь.

Основной функционал Telegram бота:

  • искать вакансии в указанном пользователем населенном пункте;
  • просматривать информацию о найденных вакансиях;
  • получать подробную информацию о конкретной вакансии;
  • добавлять вакансии в избранное.

Команды для работы с ботом

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

  • /start (Начать работу) — старт работы с ботом;
  • /help (Справка по работе с ботом) — пользователь получает подробную справку по алгоритму работы с ботом;
  • /favorites (Перейти в избранное) — команда используется для перехода к сохраненным пользователем вакансиям;
  • /cancel (Завершение работы) — завершает работу с ботом;
  • /feedback (Обратная связь) — переход в раздел с описанием способов, как и где можно оставить отзыв о работе бота.

Вот так команды отображаются в клиенте Telegram:

Список команд бота. Описание смотрите выше

Алгоритм работы с ботом

После того как вы активировали команду start, бот поприветствует вас по имени и подскажет, что делать дальше.

Скриншот с приветственным сообщением. Текст сообщения приведен ниже.

Текст приветственного сообщения:

Кирилл, привет! Я помогаю найти работу людям с инвалидностью. Ты готов начать поиск вакансий? Если да, то жми кнопку «Готов начать» Если нужна справка, ты всегда можешь воспользоваться командой /help или нажать кнопку «Справка по боту» Ты также можешь перейти в избранное, нажав кнопку «Перейти в избранное”

Мы с вами готовы, поэтому жмем кнопку «Готов начать». Далее бот показывает нам список федеральных округов и небольшое информационное сообщение.

Скриншот со списком федеральных округов и информационным сообщением. Текст информационного сообщения приведен ниже.

Текст информационного сообщения:

Кирилл, пора сделать первый шаг! Выбери из списка федеральный округ, в котором ты хотел(а) бы посмотреть вакансии. Если ты вдруг ошибешься, на следующем шаге можно будет вернуться назад.

Как вы видите, бот предусматривает, что вы можете сделать ошибку при выборе федерального округа, поэтому не переживайте, в этот пункт можно будет вернуться.

Выбираем федеральный округ. Я выбираю Приволжский федеральный округ, так как регион, в котором я проживаю, находится в его составе.

После того как мы выбрали федеральный округ, бот покажет нам список регионов, которые входят в выбранный федеральный округ. Кроме списка, мы также видим небольшой комментарий от бота.

Скриншот со списком регионов и информационным сообщением. Текст информационного сообщения приведен ниже.

Текст информационного сообщения:

Кирилл, отлично! Теперь нужно выбрать из списка название, интересующего тебя региона. Если был выбран не тот федеральный округ, жми кнопку «Вернуться к выбору ФО»

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

Скриншот информационного сообщения при вводе названия населенного пункта. Текст сообщения приведен ниже.

Текст информационного сообщения:

Кирилл, на этом шаге нужно ввести название населенного пункта, в котором тебе хотелось бы посмотреть вакансии. Обрати внимание! Название населенного пункта необходимо вводить кириллицей с большой буквы. Не используй в названии цифры и буквы латинского алфавита, а также не пиши тип населенного пункта (город, село, поселок и т.п.).

Обратите внимание, что до этого момента мы с вами сами ничего не вводим. Наша задача была только нажимать кнопки. Реализовать такой же подход с названием населенного пункта, в котором будет произведен поиск вакансий, не представляется возможным, так как количество населенных пунктов в России исчисляется десятками, если не сотнями тысяч. Поэтому на этом шаге надо быть максимально внимательными. Конечно, какие-то самые простые ваши ошибки я учел в коде, но всего учесть нельзя. Если вы введете в бот что-то совсем неподходящее, например, текст не кириллицей или большой набор слов, то бот вам об этом обязательно вежливо сообщит.

Для эксперимента предлагаю попробовать ввести Dubai и посмотреть, что на это ответит бот. А бот скажет, что введенные символы не могут сложиться в наименование населенного пункта и предложит попробовать снова ввести наименование населенного пункта.

Скриншот сообщения при вводе некорректных символов. Текст сообщения приведен ниже.

Текст информационного сообщения:

Кирилл, к сожалению, введенные тобой символы не могут сложиться в наименование населенного пункта в России. Попробуй еще раз! Вот, что ты ввел в качестве наименования населенного пункта: — Dubai. Предлагаю повторить попытку!

Я пока не релокант, поэтому введу свой родной город Ижевск и посмотрю, какие вакансии для людей с инвалидностью есть у нас. Вдруг есть вакансии для программистов на Python!

После того как бот проверит корректность наименования введенного вами населенного пункта, перед началом поиска он даст вам возможность еще раз проверить все введенные данные. Если что-то не так в данных, вы можете нажать кнопку “Вести данные заново”, чтобы вернуться к первому шагу и начать ввод данных заново.

Скриншот проверки данных перед началом поиска вакансий. Текст информационного сообщения приведен ниже.

Текст информационного сообщения:

Кирилл, давай проверим введённые данные. Если данные не верны, то жми кнопку «Ввести данные заново». Если всё верно, жми кнопку «Начать поиск вакансий»

Проверяем данные: федеральный округ: 33, название выбранного региона: Удмуртская Республика, номер выбранного региона: 18, наименование населённого пункта: Ижевск

Все верно, жму кнопку “Начать поиск вакансий”. Этот процесс может занять некоторое время, так как боту необходимо обратиться к API сайта «Работа России», получить оттуда данные, обработать их и подготовить для показа пользователю. Бот вам сообщит и об этом:

Сообщение в процессе поиска вакансий. Текст сообщения приведен ниже.

Текст информационного сообщения:

Кирилл, я начинаю поиск вакансий. Для получения данных и их обработки мне понадобится какое-то время. В списке найденных вакансий ты можешь посмотреть  подробную информацию о каждой вакансии, а также добавить вакансию в избранное. Надеюсь, поиск завершится удачно!

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

Скриншот с информацией о количестве найденных вакансий. Текст сообщения приведен ниже.

Текст информационного сообщения:

175 — вот столько вакансий в указанном населенном пункте удалось найти. Для того чтобы посмотреть вакансии, жми кнопку «Показать вакансии». В списке показывается по 10 вакансий. Используй кнопки «Назад» и «Вперед» для перемещения между списками с вакансиями.

Жмем кнопку “Показать вакансии”. Показ вакансии я реализовал постранично. Мы часто можем увидеть такую навигацию в Интернете. На каждой странице показывается по 10 вакансий. Перемещаться между страницами можно кнопками «Назад» и «Вперед».

Последним сообщением на каждой странице будет сообщение, которое содержит информацию, сколько вакансий показано, а также кнопки навигации. Кроме того, начиная со второй страницы будет кнопка “Перейти в избранное”.

Скриншот с информацией о количестве показанных вакансий и с кнопками ддля навигации и перехода в избранное. Текст информационного сообщения приведен ниже.

Текст информационного сообщения:

Показано 20 из 175 найденных вакансий. Кирилл, используй для навигации кнопки «Вперед» и «Назад». Подходящие вакансии можешь добавлять в избранное.

Информация о каждой вакансии представлена в двух формах: краткая информация о вакансии и подробная информация о вакансии.

Краткая информация о вакансии (скриншот):

На скриншоте представлен пример краткой информации о вакансии. Текст продублирован ниже.

Краткая информации о вакансии (текст):

  • Должность: педагог дополнительного образования
  • Заработная плата: от 20000
  • Работодатель: АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ УДМУРТСКОЙ РЕСПУБЛИКИ «РЕГИОНАЛЬНЫЙ ОБРАЗОВАТЕЛЬНЫЙ ЦЕНТР ОДАРЕННЫХ ДЕТЕЙ»
  • Адрес работодателя: Удмуртская республика, г Ижевск, Зои Космодемьянской улица, 109
  • Номер телефона работодателя: +7(3412)713834
  • Электронная почта: ecologia18@yandex.ru

Подробная информация о вакансии (скриншот):

Скриншот с подробной информацией о вакансии. текст продублирован ниже.

Подробная информация о вакансии (текст):

  • Должность: педагог дополнительного образования
  • Вакансия из категории: Инвалиды
  • Данные о заработной плате:
    • Минимальная заработная плата: 20000
    • Максимальный размер заработной платы: 0;
  • Должностные обязанности:
    • Ведение занятий по направлениям: информатика, физика, биология, экология
    • Комплектование состава обучающихся;
    • Составление планов и разработка программ  занятий;
    • Участие в разработке и реализации программ дополнительного образования
    • Выявление творческих способностей обучающихся
  • Информация о работодателе:
    • Наименование работодателя: АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ УДМУРТСКОЙ РЕСПУБЛИКИ «РЕГИОНАЛЬНЫЙ ОБРАЗОВАТЕЛЬНЫЙ ЦЕНТР ОДАРЕННЫХ ДЕТЕЙ»
    • Контактное лицо: Овчинникова Ирина
    • Номер телефона работодателя: 3412713834
    • Электронная почта: ecologia18@yandex.ru
    • Адрес работодателя: Удмуртская республика, г Ижевск, Зои Космодемьянской улица, 109

Нажав кнопку “Добавить в избранное”, вы добавите вакансию в избранное. Вакансии, добавленные в избранное, хранятся там, пока вы их сами не удалите. После того как вы добавите вакансию в избранное, под описанием вакансии вы увидите кнопку “Удалить из избранного”.

Скриншот с краткой информацией о вакансии добавленной в избранное. Под вакансией две кнопки: удалить из избранного и подробнее.

Перейдя в избранное, вы увидите краткую информацию о вакансиях, добавленных в избранное. Здесь также доступен просмотр подробной информации о вакансии. Если вы ранее не добавляли вакансии в избранное, бот вам об этом сообщит и предложит начать поиск вакансий.

Скриншот вакансий, добавленных в избранное. Текст сообщение приведен ниже.

Текст информационного сообщения:

Кирилл, находясь в избранном ты можешь просматривать краткую и подробную информацию о добавленных вакансиях. Если нужно перейти к поиску вакансий, жми кнопку: «Начать ввод данных» Если нужна справка по работе с ботом, жми кнопку «Справка по боту»

Завершая обзор алгоритма работы с ботом «Работа для всех», хочу рассказать о том, как вы можете оставить обратную связь о работе бота. Для меня это очень важно. Только ваша обратная связь поможет мне сделать этот бот полезнее для людей.

Итак, в основном меню бота есть команда feedback – обратная связь. Там есть ссылка на мой Telegram.

Не проходите мимо и обязательно заходите в этот раздел. Я открыт для любых предложений и конструктивной критики.

Пару слов про технологии

Telegram бот «Работа для всех» написан на языке Python с использованием библиотеки aiogram. В качестве базы данных используется PostgreSQL, а для временного хранения данных – Redis. Проект упакован в Docker контейнеры.

И еще. В ходе работы над ботом я написал и опубликовал на своем сайте несколько статей, которые доступны в рубрике telegram bot. Кому интересно, welcome. С кодом проекта вы можете ознакомиться на GitHub.

Связаться со мной можно в Вконтакте или написать мне на почту: bks2408@mail.ru