Skip to content

Neste projeto foi desenvolvido o front-end e back-end de um suposto sistema de RH onde é possível criar, editar, excluir funcionários e ainda é possível buscar por todos os funcionários, buscar pelo cpf, nome, cargo, faixa salarial, estado de nascimento. Super lega.

Notifications You must be signed in to change notification settings

NandaTMarques/Web-services-RESTful

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Web-services-RESTful

Boas vindas ao repositório do projeto Web Service!

Olá, eu sou a Fernanda, esse projeto foi produzido por mim e faz parte do desafio técnico para a vaga de full Stack da Allugator.

Habilidades

Nesse projeto, fui capaz de:

  • Fazer uma aplicação que consiste em um CRUD no back-end e implementação do front-end para consumir a API;
  • Manter a organização do meu código e a arquitetura geral da aplicação (tanto da API quando do front-end);
  • Manter aderência ao padrão REST na API;
  • Entender o funcionamento da camada de Model, Services e Controlller;
  • Delegar responsabilidades específicas para essa camada;
  • Conectar a camada da aplicação com bancos de dados;
  • Estruturar uma aplicação em camadas;
  • Delegar responsabilidades específicas para cada parte do meu app;
  • Melhorar manutenibilidade e reusabilidade do meu código;

Instruções para utilizar o projeto:

🗒 Antes de começar

  1. Clone o repositório

    • git clone https://github.com/NandaTMarques/Web-services-RESTful.git.
    • Entre na pasta do repositório que você acabou de clonar:
      • cd Web-services-RESTful;
  2. Entre na pasta backend e digite o seguinte comando no terminal:

    • npm install
  3. Entre na pasta frontend e digite o seguinte comando no terminal:

    • npm install

Setup do Projeto

Foi criado um repositório chamado "backend", onde todas as informações do Back-end estão armazenadas e com os testes implementados. Foi criado ainda um repositório chamado "frontend", onde o Frontend está armazenado juntamente com seus testes.

O Front-end foi construido em React, foi utilizado componente funcional, context Api e foi testado através de RTL. Foi utilizado o react-router-dom e o projeto esta todo componentizado. Além disso, estilizei o projeto com o bootstrap.

O Backend foi construido utilizando o framework Express na construção de APIs com Node, com arquitetura RESTful. O banco de dados foi convertido em JSON, foi utilizado o mongoDB como banco de dados, e usei o joi para fazer as validações na hora de criar funcionários. Os testes foram criados utilizando o frisby. E a porta utilizada foi a 3001, para evitar conflitos com o front-end que roda na porta 3000.

Como utilizar a aplicação

Para a aplicação funcionar é necessário entrar na pasta "backend" e no terminal utilizar o comando "npm start" ou "npm run dev", assim o back-end estará on-line.

Na pasta "frontend" execute o comando "npm start" e a aplicação funcionará no seu navegador.

Inicialmente tem uma tela com bontões que te levam às páginas de criar funcionários e buscar funcionários, na pasta buscar funcionário tem a opção deletar o funcionário também.

Testes

Para executar os testes do frontend localmente, você deve entrar no repositório do frontend e rode o comando npm test.

Caso prefira testar um requisito por vez pode executar o teste da seguinte forma: npm test tests/addEmployees (nesse caso testa apenas o requisito addEmployees.test).

Para executar os testes do backend localmente, você deve entrar no repositório do backend e rode o comando npm run dev:test. Caso queira conferir a cobertura dos testes é só rodar o comando dev:test:coverage.


Melhoras a fazer

A aplicação poderia ficar ainda melhor (não pretendo parar por aqui) assim que eu:

  • Documentar da API através do Swagger;
  • Criar validações para o frontend;
  • criar a combinação de filtragens de funcionários, utilizando mais de uma filtragem por vez, ou uma após a outra;
  • aumentar a abrangência dos testes, tando no backend, quanto no frontend, no frontend está com 66.67% de abrangência;
  • criar uma tela de login e fazer a autenticação com JWT, para somente quem tem autorização possa excluir e criar funcionários.

Feito com ❤️ por Fernanda Teixeira Marques 👋🏽 Entre em contato!

About

Neste projeto foi desenvolvido o front-end e back-end de um suposto sistema de RH onde é possível criar, editar, excluir funcionários e ainda é possível buscar por todos os funcionários, buscar pelo cpf, nome, cargo, faixa salarial, estado de nascimento. Super lega.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •