Перейти к основному содержимому

head_hunting

Общее описание проекта

Проект "Head Hunting" - это система для автоматизации процесса подбора персонала, интегрированная с внешними источниками данных. Основная задача системы - облегчение процесса поиска, отбора и управления кандидатами для вакансий

Описание модулей проекта

  1. Модуль Администрирования: Управление настройками отслеживания кандидатов и умениями кандидатов через административный интерфейс Django.
  2. Модуль Сбора Данных: Автоматизированный сбор данных с веб-страниц, использование Selenium и BeautifulSoup для парсинга страниц.
  3. Модуль Обработки Кандидатов: Обработка данных кандидатов, включая создание и обновление задач в системе трекинга.
  4. Модуль Панели Управления: Компоненты для визуализации и управления процессами поиска персонала в дашборде.

Общая логика работы системы

Система работает следующим образом:

  1. Сбор данных: Автоматический сбор данных о кандидатах с внешних ресурсов (например, hh.ru).
  2. Обработка информации: Анализ и обработка полученных данных, преобразование их в стандартизированный формат.
  3. Управление кандидатами: Создание и обновление задач для кандидатов в системе трекинга, хранение и управление информацией о кандидатах.
  4. Администрирование: Управление настройками системы через административный интерфейс, включая настройки отслеживания и умений кандидатов.

Интеграции с внешними системами

Проект интегрируется с внешними системами и ресурсами следующим образом:

  1. Интеграция с hh.ru: Автоматический сбор данных о кандидатах с hh.ru через парсинг веб-страниц.
  2. Интеграция с системой трекинга (например, Redmine): Автоматическое создание и обновление задач в системе трекинга на основе собранных данных о кандидатах.
  3. Интеграция с Django Admin: Административный интерфейс для управления настройками и данными системы.

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

Действия в системе

Основываясь на коде проекта, можно выделить следующие ключевые действия, которые представлены в системе:

  1. Admin Register Actions: Регистрация настроек трекера и навыков в административном интерфейсе Django.
  2. Data Collection: Сбор данных с помощью Selenium и BeautifulSoup, включая парсинг веб-страниц.
  3. Candidate Processing: Обработка данных кандидатов, создание и обновление задач в системе трекинга.
  4. Dashboard Management: Управление дашбордом для отслеживания процесса подбора персонала.
  5. PDF Generation from HTML: Генерация PDF-документа из HTML-страницы кандидата.
  6. Redmine Issue Creation and Update: Создание и обновление задач в системе Redmine.
  7. Job Seeker Addition: Добавление данных о соискателе в систему.
  8. Head Hunter Authorization: Авторизация в системе Head Hunter для сбора данных.
  9. Skills Database Management: Управление базой данных навыков, включая создание, изменение и удаление записей.

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

Сценарий использования

Допустим, в компании возникла необходимость в подборе специалиста на определённую позицию. Используя систему "Head Hunting", HR-отдел компании выполняет следующие действия:

  1. Авторизация в Head Hunter: HR-специалист авторизуется в системе Head Hunter через административный интерфейс, чтобы получить доступ к данным кандидатов.

  2. Сбор данных о кандидатах: Система автоматически собирает данные о потенциальных кандидатах с помощью инструментов веб-скрапинга, таких как Selenium.

  3. Обработка и анализ данных: После сбора информация о кандидатах обрабатывается, классифицируется и сохраняется в системе.

  4. Создание задачи в Redmine: Для каждого подходящего кандидата система создаёт задачу в системе управления проектами Redmine, где HR-специалисты могут просматривать детали и принимать решения.

  5. Управление процессом подбора: С помощью дашборда системы HR-отдел отслеживает процесс подбора, просматривает статусы кандидатов и управляет задачами в Redmine.

Таким образом, система "Head Hunting" автоматизирует и упрощает процесс поиска и отбора персонала, сокращая время и усилия, необходимые для подбора квалифицированных кандидатов.

Модель данных

  1. HeadHuntingTrackerSetting:

    • tracker: Связь с настройками трекера.
    • project_identifier: Уникальный идентификатор проекта в трекере.
    • tracker_candidate: Идентификатор кандидата в трекере.
    • status_draft: Статус задачи-черновика в трекере.
    • priority_regular: Приоритет задачи в трекере.
  2. Cookies:

    • cookies: Хранение данных куки в текстовом формате для авторизации.
  3. HeadHuntingSkills:

    • sourceSkill: Название навыка, указанного исходно.
    • skillAction: Действие, которое необходимо выполнить с навыком (Изменить, Удалить, Ничего не делать, Новый).
    • skillFinal: Окончательное название навыка после применения действия.

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

Диаграмма состояний

На основе изучения исходного кода проекта, можно представить следующую диаграмму состояний в синтаксисе Mermaid:

Описание состояний и действий:

  1. Начальное_Состояние: Исходное состояние системы перед началом работы.
  2. Авторизация: Процесс авторизации в системе для сбора данных.
  3. Сбор_Данных: Действия по сбору данных кандидатов с внешних сайтов.
  4. Анализ_Данных: Обработка и анализ собранных данных.
  5. Создание_Задачи_в_Redmine: Создание задач в системе управления проектами Redmine на основе анализа данных.
  6. Обновление_Данных_Кандидата: Обновление информации о кандидатах в системе.

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

Анализ кода проекта

Обзор кода: Проект реализован на языке Python с использованием фреймворка Django. Основная функциональность заключается в парсинге данных с сайта hh.ru, обработке полученной информации и интеграции с системой управления задачами Redmine.

Конкретные замечания:

  1. Функция get_data_hh (browse.py): Эта функция занимается сбором данных с веб-страницы и последующей их обработкой. В ней слишком много логики, что делает её сложной для понимания и поддержки. Лучше разделить её на более мелкие функции с конкретными задачами.

  2. Обработка ошибок (различные файлы): В некоторых местах исключения обрабатываются неэффективно, без достаточной спецификации типа ошибки. Это может усложнить дебаггинг и поддержку кода.

  3. Модели данных (models.py): Некоторые поля моделей могли бы быть более оптимизированы с точки зрения типов данных и индексации, что повысило бы эффективность запросов к базе данных.

Оценка продолжительности разработки: Для опытной команды разработки проект такой сложности мог бы занять примерно 2-3 месяца.

Оценка кода: На основе просмотренных фрагментов, я бы оценил этот проект в 7 из 10. Код в целом понятный и структурированный, но имеются области для улучшения, особенно в плане разделения логики на более мелкие части и оптимизации обработки ошибок.