Skip to content

Sgudkov/job-matcher-ai

Repository files navigation

Job-matcher-ai

Описание

Этот проект представляет собой систему подбора персонала, состоящую из бэкенд-сервиса на 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

Установка и запуск

Обязательные файлы

Переменные окружения

Для корректной работы приложения необходимо создать файл .env в корневой директории проекта и указать следующие переменные:

  • DATABASE_URL: URL для подключения к асинхронной PostgreSQL базе данных. Пример: postgresql+asyncpg://postgres:admin@localhost:5432/candidates
  • DATABASE_SYNC_URL: URL для подключения к синхронной PostgreSQL базе данных. Пример: postgresql+psycopg2://postgres:admin@localhost:5432/candidates
  • QDRANT_URL: URL для подключения к Qdrant. Пример: http://localhost:6333
  • SECRET_KEY: Секретный ключ для подписи JWT. Необходимо изменить в продакшене. Пример: your-secret-key-change-in-production
  • ALGORITHM: Алгоритм подписи JWT. Пример: HS256
  • ACCESS_TOKEN_EXPIRE_MINUTES: Время жизни access token в минутах. Пример: 30
  • DB_USER=postgres
  • DB_PASSWORD=admin
  • DB_NAME=candidates

Запуск с Docker Compose

  1. Убедитесь, что у вас установлен Docker и Docker Compose.
  2. Клонируйте репозиторий проекта.
  3. Создайте файл .env в корневой директории проекта и заполните его необходимыми переменными окружения (см. раздел "Переменные окружения").
  4. Запустите контейнеры: docker-compose up -d
  5. Веб-интерфейс будет доступен по адресу http://localhost:3000/
  6. Для полноценного тестирования дождаться когда поднимется backend