{"id":23971098,"url":"https://github.com/romanpecheritsa/headhunterapi","last_synced_at":"2026-04-29T22:02:57.899Z","repository":{"id":248154680,"uuid":"827916950","full_name":"RomanPecheritsa/HeadHunterAPI","owner":"RomanPecheritsa","description":"This project is a tool for working with vacancies on the platform hh.ru .","archived":false,"fork":false,"pushed_at":"2024-08-07T16:38:44.000Z","size":76,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-04T21:50:39.634Z","etag":null,"topics":["dataclasses","json","pytest","requests"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RomanPecheritsa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-12T16:55:47.000Z","updated_at":"2024-11-15T09:28:06.000Z","dependencies_parsed_at":"2024-08-07T19:52:06.400Z","dependency_job_id":null,"html_url":"https://github.com/RomanPecheritsa/HeadHunterAPI","commit_stats":null,"previous_names":["romanpecheritsa/headhunterapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RomanPecheritsa/HeadHunterAPI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanPecheritsa%2FHeadHunterAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanPecheritsa%2FHeadHunterAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanPecheritsa%2FHeadHunterAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanPecheritsa%2FHeadHunterAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RomanPecheritsa","download_url":"https://codeload.github.com/RomanPecheritsa/HeadHunterAPI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RomanPecheritsa%2FHeadHunterAPI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32445555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T20:22:27.477Z","status":"ssl_error","status_checked_at":"2026-04-29T20:22:26.507Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dataclasses","json","pytest","requests"],"created_at":"2025-01-07T02:27:30.736Z","updated_at":"2026-04-29T22:02:57.807Z","avatar_url":"https://github.com/RomanPecheritsa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Проект по работе с API hh.ru\n## Описание проекта\n\nЭтот проект представляет собой инструмент для работы с вакансиями на платформе hh.ru. Он позволяет получать информацию о вакансиях, сохранять её в файл, а также предоставляет возможность добавления, фильтрации и удаления записей.\n\n## Требования к реализации\n\n- **API для работы с hh.ru**: Реализован абстрактный класс `API` и конкретный класс `HhAPI`, который подключается к API hh.ru и получает вакансии согласно заданным параметрам.\n- **Класс Vacancy**: Определяет атрибуты вакансии, включая название, ссылку, зарплату, описание и требования. Поддерживает методы сравнения вакансий по зарплате и валидацию данных.\n- **JSON хранилище вакансий**: Абстрактный класс `VacancyStorage` определяет интерфейс для работы с вакансиями, а класс `JSONVacancyStorage` реализует этот интерфейс для работы с JSON файлом, обеспечивая сохранение, чтение и удаление вакансий.\n\n## Интерфейс пользователя\n\nПрограмма предоставляет функционал для взаимодействия с пользователем через консоль:\n\n- Ввод поискового запроса для получения вакансий из hh.ru.\n- Получение топ N вакансий по зарплате.\n- Поучение вакансий по введенной зарплате.\n- Поиск вакансий с ключевым словом в описании.\n- Удаление по id вакансии\n- Сохранение оторбранных вакансий в файл\n\n## Принципы проектирования\n\n- **Наследование**: Абстрактный класс и классы для работы с API платформ с вакансиями реализованы в соответствии с принципом наследования.\n- **Инкапсуляция**: Класс для работы с вакансиями реализован с учетом принципа инкапсуляции и поддерживает методы сравнения вакансий.\n- **SOLID**: Классы и сущности в проекте удовлетворяют первым двум принципам SOLID.\n\n## Используемые библиотеки\n* json\n* os.path\n* dataclasses\n* abc\n* requests\n* pytest, pytest-cov\n* typing\n\n## Использование\n\nДля использования программы необходимо установить `poetry` и выполнить следующие шаги:\n\n1. Клонирование репозитория\n```bash\ngit clone git@github.com:RomanPecheritsa/HeadHunterAPI.git\n```\n2. Установление зависимостей\n```bash\npoetry install\n```\n3. Запуск проекта\n```text\npython main.py\n```\n\n## Тестирование\nПроект покрыт тестами (опционально, кроме user_interaction.py) для проверки корректности работы всех компонентов.\n1. Запуск тестирования и показ процента покрытия \n```bash\npytest --cov=api --cov=models --cov=storage --cov=utils/user_funcs.py --cov-report=term-missing\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromanpecheritsa%2Fheadhunterapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromanpecheritsa%2Fheadhunterapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromanpecheritsa%2Fheadhunterapi/lists"}