Разработка сайта с вакансиями для my7days
Главная страница
Задача
Разработать ресурс с индивидуальным дизайном и автоматическим обновлением вакансий с портала hh.ru.
Требования к ресурсу:
- Располагаться должен на поддомене
- Иметь фильтрацию ваканский по полям - Требуемый опыт работы, Регион размещения вакансии, Рабочие области
- Выводить данные по дате размещения ваканскии, позиция, оплата труда, город, метро, тип занятости,требуемый опыт
- У каждой ваканскии добавить систему оставления отзыва. Данные по отзывам отображать на странице со списком и в самой вакансии
- Добавить форму отклика на вакансию
- Связать отклики с Битрикс24, и направлять письма на почты hr
Цветовая палитра
Макеты сайта
Выгрузка из hh.ru
Разработан и сверстан дизайн ресурса. Первоначально цветовая схема была фиолетовой, а не розовой.
В результате решения задачи был разработан модуль для Битрикса по интеграции вакансий по определенной компании. Модуль использует hh.ru API, разработанный интерфейс настройки модуля сделан на Vue.js + Element UI.
Алгоритм работы модуля
- Интеграция запускается на агентах
- По проставленным связям, между полями платформы и инфоблока, данные записываются в элементы инфоблока. Если элемент существует (это определяется по ID вакансии с платформы), то данные перезаписываются, иначе будет создан элемент с данными по вакансии
Я бы выделил в этом проекте интересный опыт работы с urlrewrite, поскольку в проекте ваканскии выводятся на главной странице, могут иметь фильтрацию и пагинацию. И по шаблону, блок с вакансиями как бы встраивается в лендинг. На первый взгляд задача простая, ajax фильтрация, пагинация у встраиваемого блока. Использование комплексного компонента bitrix:news, с кастомизацией стартовой страницы. Но вот по работе с сылками возникла проблема. Поскольку компонент bitrix:news используется сразу на главной, настраивать нужно 404 ошибку так, чтобы при переходе была показана ошибка 404, а не элемент не найден.
В остальном, при переключении фильтра или пагинации происходит обращение к rest'у, который отдает ответ и меняет ссылку на странице с проставленными фильтрами или пагинацией. Все происходит плавно и без перезагрузок, что повышает комфорт взаимодействия с ресурсом.
Комментирование
Для проекта нужно было реализовать оставление отзыва или комментария пользователем. Помимо имени и комментария, важно было указывать рейтинг вакансии. Ко всему прочему, для оставленного комментария нужно сделать систему голосования (за, против). Для этого было разработано свое решение в виде модуля комментирования.
Данные хранятся в highload-блоках, их всего три - Группы, Элементы, Голоса. К каждой сущности написаны вспомогательны ORM-классы для взаимодействия в событиях. При удалении элементов нужно поддерживать удаление голосов, также при удалении групп элементов, нужно очищать все элементы и голоса. Логика при удалении записей повешана на события удаления из highload-блоков. Таким образом поддерживается целостность данных.
Форма отклика
Форма реализована через штатный компонент Веб-форма. В ней же настроены поля, вся обработка новых данных идет на событии добавления в веб-форму результата.
Для удобства, рядом с формой отклика выведена карта с координатами места трудоустройства из сервиса hh.ru. Есть возможность прикрепить файл с резюме.
Поскольку штатная синхронизация веб-форм не умеет прокидывать файлы в Битрикс24. То было написано решение, которое бы связывалось с порталом и заводило бы лид, отправляя в свою воронку. В отправляемом запросе на портал находятся все данные, которые заполнил пользователь.
Настроены почтовые события на отправку данных в почты hr. Настроена ссылка на резюме, которая отправляется в письме.