Как мы разработали социальную сеть для поиска сотрудников и работодателей

В IT Test создали социальную платформу, помогающую найти работу или сотрудников по принципу шести рукопожатий. Рассказываем об этапах разработки проекта Nepotism для заказчика из Англии, в котором мы использовали технологию GraphQL и связанные с ней компоненты (Neo4J) для реализации сложного дерева связей.

Как мы разработали социальную сеть для поиска сотрудников и работодателей

О клиенте

С нами связался клиент из Англии — бэкенд-разработчик из банковского сектора Джоно, который придумал соцсеть, помогающую работодателям найти сотрудников, а соискателям — работодателей. Джоно начал работу над проектом Nepotism со стороны бэкенда, у него уже были демо-версия, user flow, структура базы данных и API.

На их основе мы написали ТЗ, спроектировали интерфейс сайта и приступили к разработке фронтенда, а после и доработке бэкенда. Также взяли на себя задачи по DevOps для поддержки проекта.

Задачи

  • Проанализировать рынок и сформулировать полный список требований к платформе.
  • Создать интуитивно понятный, удобный и привлекательный для пользователя интерфейс.
  • Обеспечить четкую систему поиска людей, соответствующую указанным критериям.
  • Разработать мессенджер для обмена сообщениями между пользователями.

О платформе

Как мы разработали социальную сеть для поиска сотрудников и работодателей

Древо связей

Nepotism — это сервис, который помогает найти работу или сотрудников через цепочки знакомств на платформе. Интерфейс сервиса отображает пользователей в виде графа, где каждый узел обозначает человека. В центре находится узел текущего пользователя, с ним соединены его прямые знакомые, а с ними — их знакомые.

Цепочка связей

Все пользователи системы формируют единую цепочку связей. Цвет связи зависит от типа: Working/Worked together with | Employed by | Employer of | Business partners with | Co-invests with | Educated with.

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

Уровни связей

По умолчанию (при первом посещении раздела, когда никакой фильтр не применен) отображается только первый уровень связей — все пользователи системы, непосредственно знакомые с пользователем Jono McLead.

Всего же уровней шесть — согласно теории шести рукопожатий.

Отличие от конкурентов

Ключевое отличие Nepotism от других социальных сетей в том, что в профиле каждого человека указаны его навыки, например разработка на Python, и уровень владения ими — от 0 до 10. Эту информацию можно внести в свой профиль самостоятельно или загрузить резюме — сервис парсит его и разбирает на навыки автоматически.

Основная функция платформы — поиск сотрудников.

Как мы разработали социальную сеть для поиска сотрудников и работодателей

Например, вам нужен человек, который умеет программировать на Java. Вы указываете конкретные скилы и ожидаемый уровень кандидата в панели поиска и система анализирует навыки и роли ваших знакомых и их друзей. Затем она предлагает список подходящих людей, указывая процент их соответствия исходному запросу. Если вы ищете работу, через цепочки знакомых можно найти подходящую вакансию.

«Чтобы реализовать сложное дерево связей, которое объединяет всех пользователей платформы, мы использовали нестандартный для нас стек технологий. В первую очередь речь про использование технологии GraphQL и связанных с ней компонентов (Neo4J). Ничего подобного мы не делали».

Алексей Коростелёв -- проджект-менеджер

Этапы работы

Разработали удобный внутренний мессенджер

Мы сделали для системы встроенный мессенджер — модальное окно обмена сообщениями с другими пользователями. Оно открывается по клику на изображение пользователя на графе.
Список сообщений хранится в базе данных и обновляется каждый раз при открытии окна. Можно отправить сообщение любому пользователю и он получит уведомление. История переписки сохраняется в базе данных.

Как мы разработали социальную сеть для поиска сотрудников и работодателей

Настроили чувствительный к условиям поиска фильтр

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

Как мы разработали социальную сеть для поиска сотрудников и работодателей

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

Подробнее об этом и других реализованных IT Test проектах узнайте на сайте и в Telegram-канале.

1616
2 комментария

Очень круто!!

1
Ответить

Непоти́зм — вид фаворитизма, заключающийся в предоставлении привилегий родственникам или друзьям независимо от их профессиональных качеств

Ответить