/AppSaude

Primary LanguageRuby

AppSaúde Challenge

Desafio técnico

Tabela de conteúdo

Sobre

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;

Descrição

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)
PipoDiagrama

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.

Features

Abaixo, segue um curto vídeo de demonstração do app.

Readme

Pré-Requisitos

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.

IniciandoApp

#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/>

OBS

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

Testes

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

Arquitetura

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:

MVC

Projeto Futuro

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.