# README
Описание серверной части (backend) проекта "Картотека сотрудника"
- Общая информация
- Общий взгляд на продукт
- Классы и характеристики пользователей
- Техническое задание
- Особенности реализации
- Дальнейшее развитие
Общая информация
Общий взгляд на продукт
Картотека сотрудников — это новая система, создаваемая с целью помочь управлять персональными данными сотрудников: опыт работы, образование, хобби и другие. Она должна помочь повысить эффективность работы HR-отдела, структурировать и оптимизировать процессы управления и подбора персонала, сделать работу HR-отдела более эффективной и удобной.
Система включает в себя функции:
- Хранение и управление персональными данными сотрудников.
- Автоматизация рутинных задач управлением персонала (выявление неактуальных данных сотрудников, рассылка уведомлений сотрудникам, проверка вводимых данных на конфликт с существующими, напоминание о необходимости прохождения сотрудником инструктажа).
- Безопасность и конфиденциальность данных (аутентификация пользователей, разграничение прав на совершение просмотра/редактирования/добавления данных, шифрование данных в хранилище).
- Автоматизация процесса подбора (возможность доступа в систему для рекрутеров с целью добавления анкет возможных новых сотрудников, преобразование анкеты кандидата в карточку сотрудника) и управления/развития персонала (учёт данных по полученному и получаемому образованию сотрудников, предоставление льгот, учёт профессиональных компетенций).
Классы и характеристики пользователей
Класс пользователей | Описание |
---|---|
Кандидат | Претендент на вакантную должность в компании. Не имеет прямого доступа в систему, взаимодействует через рекрутера. Заполняет резюме и отправляет его рекрутеру, при необходимости соглашается с обработкой персональных данных. |
Сотрудник | Работник (бывший или настоящий) компании, персональные данные которого хранятся и обрабатываются в системе. |
HR | 1. Лицо, с которым у компании имеются договорные отношения с целью кадрового учета и управления персоналом 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
- Конфигурация:
- Работа с БД:
- Тестирование:
Дальнейшее развитие
- [ ]