1,2K подписчиков

Работа для всех - Telegram бот для поиска вакансий для инвалидов

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

Вы можете помочь развитию проекта, рассказав о нем своим друзьям, знакомым, близким. Буду очень признателен вам за это.

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

Начну с начала

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

Все это было, потому что я сказал своей мечте «Да!» и пошел в Яндекс Практикум учиться программировать!

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

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

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

Вот здесь можно познакомиться с ботом поближе.

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