Skip to content

This project is a tool for working with vacancies on the platform hh.ru .

Notifications You must be signed in to change notification settings

RomanPecheritsa/HeadHunterAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект по работе с API hh.ru

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

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

Требования к реализации

  • API для работы с hh.ru: Реализован абстрактный класс API и конкретный класс HhAPI, который подключается к API hh.ru и получает вакансии согласно заданным параметрам.
  • Класс Vacancy: Определяет атрибуты вакансии, включая название, ссылку, зарплату, описание и требования. Поддерживает методы сравнения вакансий по зарплате и валидацию данных.
  • JSON хранилище вакансий: Абстрактный класс VacancyStorage определяет интерфейс для работы с вакансиями, а класс JSONVacancyStorage реализует этот интерфейс для работы с JSON файлом, обеспечивая сохранение, чтение и удаление вакансий.

Интерфейс пользователя

Программа предоставляет функционал для взаимодействия с пользователем через консоль:

  • Ввод поискового запроса для получения вакансий из hh.ru.
  • Получение топ N вакансий по зарплате.
  • Поучение вакансий по введенной зарплате.
  • Поиск вакансий с ключевым словом в описании.
  • Удаление по id вакансии
  • Сохранение оторбранных вакансий в файл

Принципы проектирования

  • Наследование: Абстрактный класс и классы для работы с API платформ с вакансиями реализованы в соответствии с принципом наследования.
  • Инкапсуляция: Класс для работы с вакансиями реализован с учетом принципа инкапсуляции и поддерживает методы сравнения вакансий.
  • SOLID: Классы и сущности в проекте удовлетворяют первым двум принципам SOLID.

Используемые библиотеки

  • json
  • os.path
  • dataclasses
  • abc
  • requests
  • pytest, pytest-cov
  • typing

Использование

Для использования программы необходимо установить poetry и выполнить следующие шаги:

  1. Клонирование репозитория
git clone git@github.com:RomanPecheritsa/HeadHunterAPI.git
  1. Установление зависимостей
poetry install
  1. Запуск проекта
python main.py

Тестирование

Проект покрыт тестами (опционально, кроме user_interaction.py) для проверки корректности работы всех компонентов.

  1. Запуск тестирования и показ процента покрытия
pytest --cov=api --cov=models --cov=storage --cov=utils/user_funcs.py --cov-report=term-missing

About

This project is a tool for working with vacancies on the platform hh.ru .

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages