An open API service indexing awesome lists of open source software.

https://github.com/romanpecheritsa/vacancydbmanager

The project is designed to obtain data about companies and vacancies from the website hh.ru , designing tables in a PostgreSQL database and uploading the resulting data to the created tables
https://github.com/romanpecheritsa/vacancydbmanager

json postgresql prettytable psycopg2 requests

Last synced: 11 months ago
JSON representation

The project is designed to obtain data about companies and vacancies from the website hh.ru , designing tables in a PostgreSQL database and uploading the resulting data to the created tables

Awesome Lists containing this project

README

          

# Проект по работе с базой данных вакансий

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

Проект предназначен для получения данных о компаниях и вакансиях с сайта hh.ru, проектирования таблиц в базе данных PostgreSQL и загрузки полученных данных в созданные таблицы. В проекте используется Python, библиотека `psycopg2` для работы с PostgreSQL, и библиотека `requests` для взаимодействия с API hh.ru.

## Основные шаги

1. **Получение данных**: Используется публичный API hh.ru для получения информации о работодателях и их вакансиях.
2. **Проектирование таблиц**: Создание таблиц в базе данных PostgreSQL для хранения данных о работодателях и вакансиях.
3. **Заполнение базы данных**: Реализация кода для заполнения таблиц данными.
4. **Класс `DBManager`**: Реализация класса для работы с данными в базе данных.

## Структура проекта

1. **`config.py`**: Конфигурация для подключения к базе данных и настройки логирования.
2. **`vacancy_db_manager/api_service.py`**: Модуль для получения данных о работодателях и вакансиях.
3. **`vacancy_db_manager/db_creator.py`**: Модуль для создания и заполнения базы данных.
4. **`vacancy_db_manager/db_manager.py`**: Реализация класса `DBManager` для работы с базой данных.
5. **`vacancy_db_manager/user_interactions.py`**: Модуль для взаимодействия с пользователем
6. **`main.py`**: Основной скрипт для взаимодействия с пользователем.

## Используемые библиотеки
* `requests`: Для работы с API hh.ru.
* `psycopg2`: Для взаимодействия с PostgreSQL.
* `prettytable`: Для форматирования таблиц.
* `python-dotenv`: Для загрузки переменных окружения из .env файла.
* `logging`: Для логирования ошибок.
* `jmespath`: Для обработки json

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

1. **Клонируйте репозиторий**:
```bash
git clone git@github.com:RomanPecheritsa/VacancyDBManager.git
```

2. **Установите зависимости**:
```bash
poetry install
```

3. **Настройка .env файла**
##### Создайте файл .env в корне проекта и добавьте в него следующие переменные окружения:**
```
DATABASE_NAME=<имя_вашей_базы_данных>
DATABASE_USER=<ваш_пользователь>
DATABASE_PASSWORD=<ваш_пароль>
DATABASE_HOST=<ваш_хост>
DATABASE_PORT=<ваш_порт>
```

## Запуск проекта

1. **Запустите основной скрипт**:
```bash
python main.py
```

## Логирование ошибок
Ошибки при работе с базой данных будут записываться в файл database_errors.log.