Desafio técnico
O objetivo principal do exercício é avaliar como atacar o problema;
Verificar a organização do raciocínio e o código;
Conhecimentos de desenvolvimento de Software;
Comunicação e colaboração para criação do app;
A aplicação consiste em ajudar funcionários do RH de uma empresa adicionar novos membros na mesma, incluindo todos eles nos benefícios que a empresa oferece.
Foi levado em consideração que cada benefício requer dados cadastrais distintos.
Para solução foi criado três Tables, sendo elas:
- Funcionários
- Planos
- Users ( que neste caso, um usuário seria uma empresa, cliente da PipoSaúde)
Ao acessar o app, o login é feito com email e senha da empresa que contratou nosso serviço;
Ao entrar na plataforma, o usuário poderá seguir por dois caminhos:
1- Visitar a página funcionários onde é possível ver todos os funcionários presentes na empresa com seus dados básicos (nome, CPF, benefícios), editar os dados de um funcionário, realizar o desligamento e também adicionar um novo membro.
Ao adicionar um novo membro, todos os dados necessários deverão ser preenchidos, levando em consideração os benefícios que aquela empresa possui e dados que ela pede.
2- Visitar todos os benefícios oferecidos pela empresa, e mais detalhadamente, ao clicar em cada um é possível ver todos os funcionários ativos nele e seus dados de acordo com o que cada benefício pede na ficha cadastral.
Abaixo, segue um curto vídeo de demonstração do app.
Antes de iniciar, é necessário ter instalado na máquina as seguintes ferramentas: Git, Ruby 3.0.3, para o banco de dados foi utilizado o SQLite3. Além disso, é aconselhavel ter um editor para trabalhar com o código, como o VSCode.
#Clone este repositório
$ git clone <https://github.com/alyssagc/PipoChallenge.git>
#Acesse a pasta do projeto no terminal/cmd
$ cd PipoChallenge
#Instale as dependências
$ yarn install
$ bundle install
#Rode o seed
$ rails db:reset
#Iniciar o servidor
$ rails s
#Acesse o app no <http://localhost:3000/>
Possíveis usuários para testar o app:
Acme Co. - Usuário: acme@hotmail.com
Senha: 123456
Tio Patinhas Bank - Usuário: tiopatinhasbank@hotmail.com
Senha: 123456
Para os testes foi utilizado o framework Rspec, junto com a library Capybara. Para instalar basta seguir os seguintes comandos no terminal:
#Adicionar o RSpec ao seu projeto (Será necessário executar apenas se não foi dado
um 'bundle install' anteriormente
$ bundle install
#Instalando o RSpec
$ rails generate rspec:install
#Checar os Testes
$ rails rspec
Ao acessar o VSCode, você vai encontrar um projeto seguindo a estrutura MVC (Model View Controller), com intuito de deixar o código mais organizado e legível.
No app/models temos os três modelos utilizados no projeto (User, Funcionario e Plano) com suas respectivas associações e validações.
No app/controllers, você encontra três controllers, sendo eles Funcionários, Home e Planos, necessários para intermediar as requisições enviadas pela View com as respostas fornecidas pelo Model.
No app/views você encontra todas as views organizadas em pastas, que o usuário tem ao accessar o aplicativo, é a partir das interações do usuário que o controller pega essas informações e passa para o respectivo Model, este avalia a informação e transmite uma resposta.
Além desses, você pode acessar config/routes para verificar as possíveis rotas de acesso no servidor e spec/features onde se encontra todos os testes criados.
Abaixo uma imagem representativa do MVC:
Ao acessar a página de benefícios, existe um botão 'adicionar um novo benefício' que não foi implementado a tempo da entrega. A ideia é desenvolver toda essa parte da relação Plano X Empresa, para que futuramente as empresas possam adicionar ou remover parceiros, assim podendo oferecer seus funcionários os planos com as melhores ofertas.