Этот проект представляет собой систему подбора персонала, состоящую из бэкенд-сервиса на Python (FastAPI) и фронтенд-части. Система позволяет пользователям (кандидатам и работодателям) управлять своими профилями, резюме и вакансиями. PS: Проект не закончен
Ключевые особенности:
- Управление пользователями: Регистрация и аутентификация кандидатов и работодателей с использованием JWT.
- Управление контентом: Создание, обновление и удаление резюме и вакансий.
- Векторный поиск: Использование эмбеддингов (Sentence Transformers) и векторной базы данных (Qdrant) для интеллектуального поиска совпадений между кандидатами и вакансиями.
- API: RESTful API, разработанный с использованием FastAPI, для взаимодействия с фронтендом и другими сервисами.
- Базы данных: PostgreSQL для реляционных данных и Qdrant для векторного индексирования.
- Миграции: Управление изменениями схемы базы данных с помощью Alembic.
- Тестирование: Комплексное тестирование бэкенд-части с использованием Pytest.
- Контейнеризация: Docker и Docker Compose для упрощения развертывания и управления окружением.
- Бэкенд: Python, FastAPI, SQLAlchemy, Pydantic, Alembic, Pytest, Sentence Transformers, Qdrant-Client
- Базы данных: PostgreSQL, Qdrant
- Фронтенд: Next.js, React
- Инфраструктура: Docker, Docker Compose
- Скачать файл https://download.pytorch.org/whl/cpu/torch-2.4.1%2Bcpu-cp312-cp312-linux_x86_64.whl в папку
backend/whl
Для корректной работы приложения необходимо создать файл .env в корневой директории проекта и указать следующие переменные:
DATABASE_URL: URL для подключения к асинхронной PostgreSQL базе данных. Пример:postgresql+asyncpg://postgres:admin@localhost:5432/candidatesDATABASE_SYNC_URL: URL для подключения к синхронной PostgreSQL базе данных. Пример:postgresql+psycopg2://postgres:admin@localhost:5432/candidatesQDRANT_URL: URL для подключения к Qdrant. Пример:http://localhost:6333SECRET_KEY: Секретный ключ для подписи JWT. Необходимо изменить в продакшене. Пример:your-secret-key-change-in-productionALGORITHM: Алгоритм подписи JWT. Пример:HS256ACCESS_TOKEN_EXPIRE_MINUTES: Время жизни access token в минутах. Пример:30DB_USER=postgresDB_PASSWORD=adminDB_NAME=candidates
- Убедитесь, что у вас установлен Docker и Docker Compose.
- Клонируйте репозиторий проекта.
- Создайте файл
.envв корневой директории проекта и заполните его необходимыми переменными окружения (см. раздел "Переменные окружения"). - Запустите контейнеры:
docker-compose up -d - Веб-интерфейс будет доступен по адресу
http://localhost:3000/ - Для полноценного тестирования дождаться когда поднимется backend