Skip to content

lixoi/survey

Repository files navigation

BACKEND-сервис survey предварительного опроса кандидатов

Определение

Сервис предоставляет интерфейс взаимодействия с БД postgresql для проведения опроса кандидата на вакансию.

Описание

Сервис survey публикует grpc-сервер с функциями:

  1. Регистрация кандидата в БД (AddCandidate)
  2. Удаление кандидата из БД (DeleteCandidate)
  3. Старт опроса (StartSurvey)
  4. Запись ответа в БД (SetAnswer)
  5. Завершение опроса (SetFinishCandidate)
  6. Получение результатов опроса кардидата (GetSurveyForCandidate)

Также, сервис survey публикует rest-сервер для frontend с функциями:

  1. Старт опроса (StartSurvey)
  2. Запись ответа в БД (SetAnswer)

БД

Схема БД задана в sql-файлах миграции в директории migrations проекта. Списки вопросов задаются в таблицах в процессе миграции БД. Миграция осуществляется сервисом путем передачи параметра -migration=Up/Dowd.

Вопросы классифицируются в таблицах по темам. Например: linux, network, ...

Список таблиц:

  • LINUX_QUESTIONS
  • K8S_QUESTIONS
  • NETWORK_QUESTIONS
  • SECURITY_QUESTIONS
  • CONTAINER_QUESTIONS
  • DEVELOPER_UESTIONS

Пользователь задается идентификатором (числовое значение) в таблице users. При создании пользователя, задается три класса вопросов: базовый и два второстепенных. Базовый - 50% от общего количества вопросов, второстепенные - по 25%. Общее количестко вопросов задано в коде в глобальной переменной MAX_QUESTIONS. Вопросы берутся из таблиц БД случайным образом и записываются в таблицу survey.

Конфигурация

Конфигурация сервиса задается в файле config.json (в директории cmd/survey/ проекта).

При миграции и при запуске сервиса в поле PSQL указываются различные права доступа.

При задании Swagger=true в поле Server запускается WebUI Swagger для тестирования REST API.

Документация по REST API.

Сборка

Целевой результат сборки - docker-образ.

Параметры сборки описаны Makefile, тег build-img. Dockerfile расположен в директории build. Производится статическая сборка проекта и образ собирается как distroless.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages