Um sistema de Recursos Humanos (RH) é uma plataforma digital que auxilia empresas na gestão de seus funcionários e processos internos de RH, como recrutamento, administração de benefícios, controle de ponto, avaliação de desempenho, e treinamento. Esses sistemas são projetados para otimizar tarefas administrativas, facilitar o acesso a dados dos colaboradores e melhorar a comunicação entre equipes.
-
Recrutamento e Seleção de Colaboradores
-
Cadastro e Gerenciamento de Colaboradores
-
Gestão de Benefícios
-
Controle de Ponto e Jornada
-
Folha de Pagamento
-
Avaliação de Desempenho e Feedback
-
Relatórios e Indicadores de RH
Neste projeto, será desenvolvido um Mínimo Produto Viável (MVP) de um sistema de RH, implementando os CRUDs (Create, Read, Update, Delete) para os principais registros de um sistema de RH. A solução abrangerá as três entidades mais comuns em um sistema RH:
- Cadastro e gerenciamento de usuários
- Registro e gerenciamento de departamentos
- Criação e gerenciamento dos colaboradores
- Cálculo do salário
O cálculo do salário de um CLT envolve os seguintes principais componentes:
- Salário Base: É o valor mensal acordado no contrato de trabalho.
- Adicionais:
- Adicional de Insalubridade: Percentual sobre o salário mínimo, caso o trabalho seja realizado em condições insalubres.
- Adicional de Periculosidade: Percentual sobre o salário base, caso o trabalho envolva atividades perigosas.
- Horas Extras: Valor pago por horas trabalhadas além da jornada normal, com acréscimos de 50% ou 100%, conforme legislação.
- Comissões: Valores recebidos por vendas ou metas atingidas.
- Descontos:
- INSS (Instituto Nacional do Seguro Social): Percentual sobre o salário base, conforme faixa salarial.
- IR (Imposto de Renda): Percentual sobre o salário base, conforme tabela progressiva.
- Vale Transporte: Desconto de até 6% sobre o salário base.
- Vale Alimentação/Refeição: Desconto conforme política da empresa.
- Faltas e Atrasos: Descontos proporcionais aos dias não trabalhados.
Logo, o cálculo do holerite envolve somar os valores dos itens 1 e 2, e descontar os valores do item 3. O resultado final é o salário líquido que o funcionário irá receber. É importante ressaltar que o cálculo pode variar de acordo com a empresa, convenção coletiva e legislação aplicável.
-
Para simplificar o nosso sistema, vamos utilizar apenas os seguintes atributos:
-
Salário Base
-
Horas Extras
-
INSS
-
IRRF
-
Descontos
-
-
O Salário Base será persistido no Banco de dados
-
As Horas Extras e os Descontos serão enviados para a API através da Classe Auxiliar CalculoSalario
-
A Classe Auxiliar CalculoSalario não irá gerar uma nova tabela no Banco de dados
-
O valor que será pago pelas horas extras será calculado:
horasExtras * (valorHora * 1.5) -
INSS e IRRF serão calculados através da Classe Utilitária impostos
-
Abaixo, você confere a fórmula que será utilizada para calcular o salário liquido:
classDiagram
class Departamento {
- id : number
- descricao : string
- icone : string
- colaborador : []Colaborador
+ findAll()
+ findById(id : number)
+ findByDescricao(descricao : string)
+ create(departamento : Departamento)
+ update(departamento : Departamento)
+ delete(id : number)
}
class Colaborador {
- id : number
- nome : string
- email : string
- foto : string
- cargo : string
+ findAll()
+ findById(id : number)
+ findByNome(nome : string)
+ create(colaborador : Colaborador)
+ update(colaborador : Colaborador)
+ delete(id : number)
}
class Usuario {
- id : number
- nome : string
- usuario : string
- senha : string
- foto : string
+ findAll()
+ findById(id : number)
+ create(usuario : Usuario)
+ update(usuario : Usuario)
+ autenticar(usuariologin : UsuarioLogin)
}
class UsuarioLogin{
- id : number
- nome : string
- usuario : string
- senha : string
- foto : string
- token : string
}
class CalculoSalario {
- horasExtras: number
- descontos: number
}
Departamento --> Colaborador
| Item | Descrição |
|---|---|
| Servidor | Node JS |
| Linguagem de programação | TypeScript |
| Framework | Nest JS |
| ORM | TypeORM |
| Banco de dados Relacional | MySQL |
- Clone o repositório
- Instale as dependências:
npm install - Configure o banco de dados no arquivo
app.module.ts - Execute a aplicação:
npm run start:dev

