Giter Site home page Giter Site logo

dev_app_wishlist's Introduction

Definição

O que deve ser feito?

O objetivo é que você desenvolva um serviço HTTP resolvendo a funcionalidade de Wishlist do cliente. Esse serviço deve atender os seguintes requisitos:

  • Adicionar um produto na Wishlist do cliente;
  • Remover um produto da Wishlist do cliente;
  • Consultar todos os produtos da Wishlist do cliente;
  • Consultar se um determinado produto está na Wishlist do cliente;
  • O Wishlist do cliente deve possuir um limite máximo de 20 produtos

Detalhamento técnico

A aplicação foi criada utilizando:

  • SpringBoot
  • MongoDB
  • Java11
  • Maven
  • Docker
  • Docker Compose

Dicas

  • Testes são excelentes para descrever como o código funciona! Nós gostamos muito de testes, atualmente utilizamos muito BDD.
  • Organizar a estrutura do código, classes e pacotes, também é relevante, utilizamos clean architecture em nossos serviços.
  • Um ecossistema de vários micro-serviços HTTP é importante estabelecer um padrão de arquitetura. Recomendamos o modelo REST;
  • Fique a vontade p/ usar containers, caso faça sentido;

Foram criado quatro pacotes para organizar as classes, sendo o core e o gateway os principais.

core - foi criado para conter as classes da camada de negócio. O subpacote usecase contém todos os casos de uso requisitados.

gateway - criado para conter as camadas externas que se comunicam com a camada de negócio. São dois subpacotes aqui database que contem as classes de persistencia, e o rest que contem as classes com os entrypoints do sistema.


Build e execução

Para levantar o projeto é necessário executar o maven e o docker-compose. O primeiro comando é build do maven:

mvn clean package

Após finalizar o build, deve ser gerado um arquivo .jar na pasta target.

O segundo comando é o docker-compose, para levar o MongoDB e a aplicação:

docker-compose up --build

Se tudo correr bem, o projeto está acessivel através do endereço:

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

Para encerrar a execução pode-se usar ctrl+c no termial que está executando, seguido do comando para remover os containers ou remover no proprio docker.

docker-compose down


dev_app_wishlist's People

Contributors

mayconrms 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.