O recrutamento-dotnet-2c2c1
é um teste aplicado pela 7COMm Serviços e Soluções em TI para recrutamento de profissionais C#
.
O candidato deve fazer um fork
deste repositório e implementar as funcionalidades solicitadas conforme julgar adequado. A entrega será feita através do repoistório do candidato, que deverá ser informado por email quando concluída a implementação.
O nível de exigência na avaliação vai variar conforme a senioridade e a oportunidade disponível. O objetivo deste teste é avaliar, primariamente, os seguintes aspectos:
- Uso do
git
, analizando o histórico de commits; - Nivel de aproveitamento ou refatoração da estrutura proposta na solução disponibilizada neste repositório;
- Uso dos métodos de resposta do
ControllerBase
doASP .Net Core
para entrega das respostas dasactions
, incluindo uso adequado doHTTP Status Code
; - Aderência a boas prátias e convenções, tanto de arquitetura quanto codificação e nomeação de artefatos;
- Nível de aproveitamento, refatoração ou implementação de testes de unidade;
- Legibilidade do código e nível de complexidade adotada;
- Entre outros.
Consideradas essas questões, o time técnico da 7COMm Serviços e Soluções em TI irá avaliar a implementação entregue pelo candidato e entrará em contato para agradecer a particiapação ou para marcar uma entrevista técnica.
Este repositório possui um esqueleto de solução Visual Studio 2017
propondo uma arquitetura DDD
para disponibilizar uma API REST
em ASP .Net Core 2.1
na porta 5001
do localhost
. Esta solução está com Swagger
e um projeto para testes de unidade dos controllers
sugeridos. O Swagger
adotado é o Swashbuckle.AspNetCore
e pode ser acessado pela URL
: http://localhost:5001/swagger
.
O esqueleto disponibilizado neste repositório contempla os seguintes diretórios:
pm
: diretório com coleções, variáveis de ambiente e arquivo de injeção de dados doPostman
, incluindo um arquivobat
com as instruções para instalar e rodar oNewman
. Para utilizar oNewman
é necessário ter oNode.js
.src
: diretório com o esqueleto de solução proposta para avaliação das rotinas solicitadas.
Tomando como partida o esqueleto disponibilizado neste repositório, o candidato deve implementar uma API REST
compatível com os endpoints
expostos no Swagger
deste esqueleto proposto. A saber:
POST /api/v1/ordena-lista
: recebe uma lista de valores no formato{ "lista": [ "string" ] }
e devolve esta mesma lista com seus elementos ordenados em ordem alfabética crescente no formato{ "listaOrdenada": [ "string" ] }
;POST /api/v1/pagina-lista
: recebe o tamanho da página, o índice da página e uma lista de elementos a serem paginados, no formato{ "lista": [ "string" ], "tamanhoPagina": 0, "indicePagina": 0 }
, e devolve a página solicitada com seus respectivos elementos, no formato{ "listaPaginada": [ "string" ] }
;POST /api/v1/busca-contato-lista
: recebe um indicador de quantos contatos devem ser incluídos, um termo de pesquisa e uma lista de contatos no formato{ "quantidadeRegistro": 0, "busca": "string", "listaContatos": [ { "nome": "string", "telefone": "string" } ] }
e devolve uma lista dos contatos incluídos cujo nome contenham o termo buscado, no formato{ "listaContatos": [ { "nome": "string", "telefone": "string" } ] }
;POST /api/v1/quantidade-palavras
: recebe um texto e uma palavra a ser contada no texto recebido, no formato{ "texto": "string", "palavra": "string" }
, e devolve o número de ocorrências da palavra no texto,no formato{ "quantidadeOcorrencias": 0 }
;POST /api/v1/tem-vencedor
: recebe os valores de um jogo-da-velha no formato{ "jogo": [ [ "o", "x", " " ], [ " ", "o", "x" ], [ " ", "o", "x" ] ] }
e devolve se o jogo tem vencedor ou não,no formato{ "temVencedor": true }
.
O canal indicado para dúvidas é criar uma issue
e entrar em contato com a empresa para informar sobre as dúvidas, afim de manter uma base de conhecimento centralizada neste repositório, onde dúvidas anteriores poderão ser pesquisadas e agilizar a resposta ao entrar em contato com a empresa.