Prova de BackEnd realizada para vaga de programador node.js .
npm start
O projeto será executado na porta 3000. O mesmo está presente na plataforma git.
Ainda, um versão estável se encontra na hospedada plataforma Heroku.
Para fins de organização, optou-se por seguir o modelo MVC para a estruturação das pastas e arquivos.
Foi disponibilizado um arquivo (Rotas) com o fim de facilitar os testes da api utilizando o aplicativo Insomnia. É necessario realizar a configuração do token como variável. O Login se encontra na rota de POST http://localhost:3000/login onde é necessário passar no corpo da requisição o nome e senha.
Usuário
(POST) Criação de cargos: /cargoCreate
(POST) Criação de usuários: /usuarioCreate
(GET) Leitura de todos usuários: /usuarioReadAll
(PUT) Atualização de usuários: /usuarioUpdate
(DELETE) Deleção de usuário /usuarioRemover/:id
Empresa
(POST) Criação de empresa: /empresaCreate
(GET) Leitura de todas empresas: /empresaReadAll
(GET) Leitura única de empresas: /empresaReadOne/:id
(GET) Leitura de produtos da empresa: /empresaReadProducts/:id
(GET) Leitura de serviços da empresa: /empresaReadServices/:id/:produtoId
(PUT) Atualização de empresa: /empresaUpdate
(DELETE) Deleção de empresa: /empresaRemover/:id
Produto
(POST) Criação de produto: /produtosCreate
(GET) Leitura de todos produtos: /produtosReadAll
(GET) Leitura de serviços da produtos: /produtosReadServices/:id
(PATCH) Atualização de produto: /produtosUpdate
(DELETE) Deleção de produto: /produtosRemover/:id/:empresa
Serviços
(POST) Criação de serviço: /servicosCreate
(GET) Leitura de todos serviços: /servicosReadAll
(PATCH) Atualização de serviço: /servicosUpdate
(DELETE) Deleção de serviço: /servicosRemover/:id/:produto
Back-end (Node.js) O objetivo é construir uma aplicação que possua cadastro de usuários e autenticação, e estes usuários poderão realizar cadastro de empresas, produtos e serviços, assim como listar, editar e deletar. As empresas podem conter um ou mais produtos, assim como cada produto pode conter um ou mais serviços. O usuario deve ver somente suas empresas e produtos.
Empresas (GET/POST/UPDATE/DELETE): Deve conter nome da empresa (tamanho maximo 100 caracter), cnpj (tamanho maximo 14 caracter), array de protudos. Produtos (GET/POST/UPDATE/DELETE): Deve conter nome do protudo (tamanho maximo 50 caracter), array de serviços.
É muito importante validar as informações recebidas antes de tomar qualquer ação. Deve-se utilizar o banco MongoDB. Podendo este ser local, ou utilizar a versão gratúita do Atlas.
Extra: Autenticação com JWT. Dockerfile para rodar aplicação. Gestão das variáveis de ambiente. Delegar permissões para usuario, assim podendo ter usuario que possa ver somente seus registros (Empresas, Produtos e Serviços) ou um "administrador" que tenha acesso a todos os registros do banco.
Levaremos em consideração: Tempo, esforço e qualidade do código. Então, é muito importante manter o código limpo e organizado, para fácil entendimento. Qualquer extra não citado a cima também sera levado em consideração.