Utilizando as tecnologias ASP.NET Core 2.2 e Angular 9, deverá ser desenvolvido um sistema que seja capaz de manter os clientes de uma empresa. Os dados a serem armazenados são:

  • Nome - obrigatório com no máximo 100 caracteres;

  • CPF/CNPJ - obrigatório e com máscara (a troca da máscara entre cpf e cnpj deverá ser dinâmica, baseando-se no número de caracteres digitados);

  • Data de nascimento - obrigatório e deverá aparecer apenas caso o cadastro seja de uma pessoa física

  • Sexo - Radio buttton que deverá aparecer apenas caso o cadastro seja de uma pessoa física e deverá ter as seguintes opções:

    • masculino
    • feminino
    • outro
  • Inscrição estadual - deverá aparecer apenas caso o cadastro seja de uma pessoa jurídica. Máximo de 30 caracteres;

  • Profissão - obrigatório e deverá ser um dropdown de escolha única e com as seguintes opções:

    • DESENVOLVEDOR
    • TESTER
    • GERENTE DE PROJETOS.
  • Lista de endereços com os seguintes campos:

    • CEP: Obrigatório e com máscara;
    • Logradouro: Obrigatório com máximo de 100 caracteres;
    • Número: Obrigatório com máximo de 10 caracteres;
    • Bairro: Obrigatório com máximo de 100 caracteres;
    • Cidade: Obrigatório com no mínimo 2 caracteres e no máximo de 50;
    • Estado: campo dropdown obrigatório e com as seguintes opções: RS, SC E PR. Detalhe: na visualização das opções, deverá ter o nome completo de cada estado. A sigla será usada apenas para salvar no banco;
    • Complemento: Máximo de 200 caracteres.
  • A lista de endereços deverá ser mantida na mesma tela dos outros campos do cliente.

  • Incluir filtros na listagem dos clientes;

  • O uso de bibliotecas de terceiros é permitida, mas apenas em casos onde realmente seja necessário. Atente-se a isso.

  • Caso a documentação escrita aqui não responda as dúvidas em todos os casos, é possível que você tome decisões optando por um ou por outro lado. Apenas é importante saber defender o seu ponto de vista e conhecer outros caminhos que poderiam levar ao mesmo resultado (por que você escolheu essa forma para fazer isso e não de outra?)

  • Um detalhe importante: é interessante que todos os requisitos sejam atendidos, mas deixar de fazer um item ou outro não é o fim do mundo. O objetivo é que dentre esse universo de funcionalidades que foram solicitadas, você consiga mostrar quais você sabe fazer, e além disso, o mais importante: COMO você resolve o problema.

  • Para realizar o teste, crie uma branch a partir da master e após, crie outras duas pastas: (não esqueçam do gitignore, pls)

    • API: deverá ser criado o projeto aspnet core 2.2
    • Front: deverá ser criado o projeto angular 9
  • Após concluido, faça o seu PR. Caso queira explicar alguma coisa sobre o seu código, esse momento é o ideal. Comente o quanto quiser.

  • Sucesso!