Git Product home page Git Product logo

paintit's Introduction

PaintIT

DIGITAL REPUBLIC CODE CHALLENGE

Objetivo

O Objetivo desse desafio é avaliar o conhecimento e capacidade dos candidatos às vagas de programação/desenvolvimento. O teste pode ser feito por qualquer nível de profissional, contudo o critério de avaliação será conforme a experiencia do candidato.

O que deve ser desenvolvido

Uma aplicação web que ajude o usuário a calcular a quantidade de tinta necessária para pintar uma sala. Essa aplicação deve considerar que a sala é composta de 4 paredes e deve permitir que o usuário escolha qual a medida de cada parede e quantas janelas e portas possuem cada parede. Com base na quantidade necessária o sistema deve apontar tamanhos de lata de tinta o usuário deve comprar.

Regras de negócio

  • Nenhuma parede pode ter menos de 1 metro nem mais de 15 metros
  • O total de área das portas e janelas deve ser no máximo 50% da área de parede
  • A altura da parede deve ser, no mínimo, 30 centímetros maior que a altura da porta.
  • Cada janela possui as medidas: 2,00 x 1,20 mtos
  • Cada porta possui as medidas: 0,80 x 1,90
  • Cada litro de tinta é capaz de pintar 5 metros quadrados.
  • Não considerar teto nem piso.
  • As variações de tamanho das latas de tinta são:
    • 0,5 L
    • 2,5 L
    • 3,6 L
    • 18 L

Tech

A Solução para o desafio proposto foi construida usando o conceito de micro servicços Utilizando as techs:

Executando a Aplicação

  • Requisitos:
    • Docker
    • docker-compose
    • Variaveis de ambiente (Exemplos dos .envs se encontram dentro da pasta de cada micro serviço)
git clone https://github.com/DiegoCastro-R/paintit
docker-compose up -d

Consumindo os serviços

Após subir os containers com o docker-compose, o serviço do nginx vai export a porta 8080 como padrão para o gateway das apis que compoem o micro-serviço.

Pode se acessar a documentação da api via browser em:

http://localhost/v1/api-docs

Ou baixar a coleção de requisições do Insomnia

  alt_text

paintit's People

Contributors

diegocastro-r avatar

Watchers

 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.