Categorygithub.com/Employee-s-file-cabinet/backend
module
0.10.5-dev
Repository: https://github.com/employee-s-file-cabinet/backend.git
Documentation: pkg.go.dev

# README

Описание серверной части (backend) проекта "Картотека сотрудника"

Общая информация

Политика ветвления

Внутри командное code review

Общий взгляд на продукт

Картотека сотрудников — это новая система, создаваемая с целью помочь управлять персональными данными сотрудников: опыт работы, образование, хобби и другие. Она должна помочь повысить эффективность работы HR-отдела, структурировать и оптимизировать процессы управления и подбора персонала, сделать работу HR-отдела более эффективной и удобной.

Система включает в себя функции:

  1. Хранение и управление персональными данными сотрудников.
  2. Автоматизация рутинных задач управлением персонала (выявление неактуальных данных сотрудников, рассылка уведомлений сотрудникам, проверка вводимых данных на конфликт с существующими, напоминание о необходимости прохождения сотрудником инструктажа).
  3. Безопасность и конфиденциальность данных (аутентификация пользователей, разграничение прав на совершение просмотра/редактирования/добавления данных, шифрование данных в хранилище).
  4. Автоматизация процесса подбора (возможность доступа в систему для рекрутеров с целью добавления анкет возможных новых сотрудников, преобразование анкеты кандидата в карточку сотрудника) и управления/развития персонала (учёт данных по полученному и получаемому образованию сотрудников, предоставление льгот, учёт профессиональных компетенций).

Классы и характеристики пользователей

Класс пользователейОписание
КандидатПретендент на вакантную должность в компании.
Не имеет прямого доступа в систему, взаимодействует через рекрутера. Заполняет резюме и отправляет его рекрутеру, при необходимости соглашается с обработкой персональных данных.
СотрудникРаботник (бывший или настоящий) компании, персональные данные которого хранятся и обрабатываются в системе.
HR1. Лицо, с которым у компании имеются договорные отношения с целью кадрового учета и управления персоналом
2. Работник компании, занимающийся кадровым учетом и управлением персоналом
Имеет права доступа на просмотр (минимально) и/или добавление и/или редактирование данных сотрудников компании.
Рекрутер1. Лицо, с которым у компании имеются договорные отношения с целью поиска (рекрутинга) новых кадров
2. Действующий HR компании.
Имеет право на создание анкет потенциальных сотрудников в системе.
АдминистраторСотрудник компании, имеющий право на создание учетных записей HR/рекрутеров, генерацию и выдачу паролей для новых HR/рекрутеров, изменение прав доступа для HR/рекрутеров.
Не имеет доступа к полным персональным данным сотрудников (см. словарь данных: сотрудник).

Техническое задание

Пользовательские истории

Функциональные требования

Диаграмма компонентов

Диаграмма компонентов

Требования к данным

Схема базы данных

Схема базы данных

Особенности реализации

Сборка

Для сборки приложения можно использовать команду (прописана в Makefile):

make ...

Либо аналоги (выполняются из корня проекта):

GOARCH=amd64 GOOS=linux go build -o ${BINARY_NAME}-linux ./cmd/main.go
GOARCH=amd64 GOOS=windows go build -o ${BINARY_NAME}-windows ./cmd/main.go
GOARCH=amd64 GOOS=darwin go build -o ${BINARY_NAME}-darwin ./cmd/main.go

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

Приложение конфигурируется переменными окружения.

Если параметр не задан, то при запуске будет выдана ошибка и приложение завершится с кодом 1.

Переменная окруженияОписание
PG_URLАдрес подключения к базе данных
PG_POOL_MAXМаксимальное количество подключений к БД
PG_CONN_ATTEMPTSКоличество попыток подключения к БД

Стек

  • Основной язык: Go
  • База данных: PostgreSQL
  • Docker, Docker Compose

Используемые библиотеки

  • Маршрутизатор: go-chi/chi
  • Конфигурация:
  • Работа с БД:
  • Тестирование:

Дальнейшее развитие

  • [ ]

# Packages

No description provided by the author
No description provided by the author