└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Descrição 2 | 3 | Considere uma senha sendo válida quando a mesma possuir as seguintes definições: 4 | 5 | - Nove ou mais caracteres 6 | - Ao menos 1 dígito 7 | - Ao menos 1 letra minúscula 8 | - Ao menos 1 letra maiúscula 9 | - Ao menos 1 caractere especial 10 | - Considere como especial os seguintes caracteres: !@#$%^&*()-+ 11 | - Não possuir caracteres repetidos dentro do conjunto 12 | 13 | Exemplo: 14 | 15 | ```c# 16 | IsValid("") // false 17 | IsValid("aa") // false 18 | IsValid("ab") // false 19 | IsValid("AAAbbbCc") // false 20 | IsValid("AbTp9!foo") // false 21 | IsValid("AbTp9!foA") // false 22 | IsValid("AbTp9 fok") // false 23 | IsValid("AbTp9!fok") // true 24 | ``` 25 | 26 | > **_Nota:_** Espaços em branco não devem ser considerados como caracteres válidos. 27 | 28 | ## Problema 29 | 30 | Construa uma aplicação que exponha uma api web que valide se uma senha é válida. 31 | 32 | Input: Uma senha (string). 33 | Output: Um boolean indicando se a senha é válida. 34 | 35 | Embora nossas aplicações sejam escritas em Kotlin e C# (.net core), você não precisa escrever sua solução usando elas. Use a linguagem de programação que considera ter mais conhecimento. 36 | 37 | ## Pontos que daremos maior atenção 38 | 39 | - Testes de unidade / integração 40 | - Abstração, acoplamento, extensibilidade e coesão 41 | - Design de API 42 | - Clean Code 43 | - SOLID 44 | - Documentação da solução no *README* 45 | 46 | ## Pontos que não iremos avaliar 47 | 48 | - docker file 49 | - scripts ci/cd 50 | - coleções do postman ou ferramentas para execução 51 | 52 | ### Sobre a documentação 53 | 54 | Nesta etapa do processo seletivo queremos entender as decisões por trás do código, portanto é fundamental que o *README* tenha algumas informações referentes a sua solução. 55 | 56 | Algumas dicas do que esperamos ver são: 57 | 58 | - Instruções básicas de como executar o projeto; 59 | - Detalhes sobre a sua solução, gostariamos de saber qual foi seu racional nas decisões; 60 | - Caso algo não esteja claro e você precisou assumir alguma premissa, quais foram e o que te motivou a tomar essas decisões. 61 | 62 | ## Como esperamos receber sua solução 63 | 64 | Esta etapa é eliminatória, e por isso esperamos que o código reflita essa importância. 65 | 66 | Se tiver algum imprevisto, dúvida ou problema, por favor entre em contato com a gente, estamos aqui para ajudar. 67 | 68 | Nos envie o link de um repo público com a sua solução. 69 | --------------------------------------------------------------------------------