Coder Social home page Coder Social logo

backend-challenge's Introduction

Implementação

Aplicação que exponhe uma api web que verifica se uma senha é válida.

O projeto está dividido em dois pacotes:

core responsável pelas classes de negócios, a regra da aplicação. Nesse pacote, irá conter as classes responsáveis por realizar a validação da senha.

infrastructure responsável pelas de configuração da aplicação e formas de comunicação.

Motivo

Estruturei o projeto dessa forma, pois acredito ser uma maneira que bem as responsabilidades de cada pacote, bem como uma forma de ter um melhor entendimento para quem irá realizar o code review, além disso, é uma modelo que poderá ser reaproveitado caso existam outros casos de usos para serem implementados.

Premissa

  • Optei por colocar um limitador de caracteres (máximo 20) para a senha.

Demonstração

Como o serviço deve funcionar?

Recebe uma string e verifica se a mesma é valida segundo tais critérios:

  • Nove ou mais caracteres
  • Ao menos 1 dígito
  • Ao menos 1 letra minúscula
  • Ao menos 1 letra maiúscula
  • Ao menos 1 caractere especial
  • Considere como especial os seguintes caracteres: !@#$%^&*()-+
  • Não possuir caracteres repetidos dentro do conjunto`

Exemplo:

IsValid("") // false
IsValid("aa") // false
IsValid("ab") // false
IsValid("AAAbbbCc") // false
IsValid("AbTp9!foo") // false
IsValid("AbTp9!foA") // false IsValid("AbTp9 fok") // false IsValid("AbTp9!fok") // true

Deploy

Compilar o projeto, baixar as dependências e rodar os testes:

> mvn clean install

Para executar a aplicação:

> mvn spring-boot:run

Swagger

http://www.localhost:8080/swagger-ui/index.html

Docker

Se desejar usar o docker, é necessário usar dois comandos:

build:

> docker build . -t iti-itau

run:

> docker run -it -p 8080:8080 iti-itau

curl

curl --location --request GET 'http://localhost:8080/v1/validate/password?password=AbTp9!fokA'

Tecnologia

Back-end: Kotlin

backend-challenge's People

Watchers

James Cloos avatar Arthur Pinheiro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.