- Aruã Puertas
- Daniela Bouwman
- Guilherme Kayo Shida
- Nicholas Borba
- Simeão Lamine
- Nível 1
- Nível 2
- Multiplas Interfaces
- O
componente Buyer
inicia o processo de compra publicando no barramento a mensagem de tópico"product/search"
através da interface ISearch; - O
componente Product
assina no barramento de mensagens de tópico"product/search"
através dainterface ISearch
. Quando recebe uma mensagem, ele mostra os produtos; - O
componente Buyer
seleciona um produto publicando no barramento a mensagem de tópico"product/<id>/details"
através dainterface IProduct
; - O
componente Product
assina no barramento de mensagens de tópico"product/<id>/details"
através dainterface IProduct
. Quando recebe uma mensagem, ele mostra os dados do produto selecionado; - O
componente Buyer
publica no barramento de mensagem de tópico"order/<sellerId>/create/<produtoId>"
através dainterface IOrder
realizando o pedido; - O
componente Order
assina no barramento de mensagens de tópico"order/<sellerId>/create/<produtoId>"
através dainterface IOrder
. Quando recebe uma mensagem, ele cria um pedido e valida suas informações publicando no barramento de mensagem de tópico"payment/check/<orderId>"
através dainterface IPayment
; - O
componente Payment
assina no barramento de mensagens de tópico"payment/check/<orderId>"
através dainterface IPayment
. Quando recebe a mensagem, ele publica no barramento de mensagem de tópico"payment/order/<orderId>/denied"
através dainterface IPayment
caso o pagamento não foi aprovado ou publica no barramento de mensagem de tópico"payment/order/<orderId>/confirmed"
atráves dainterface IPayment
caso o pagamento foi confirmado; - O
component Buyer
assina no barramento de mensagem de tópico"payment/order/<orderId>/+"
através dainterface IPayment
. Quando recebe uma mensagem, ele verifica se o pedido foi confirmado ou negado; - O
componente Seller
assina no barramento de mensagem de tópico"payment/order/<orderId>/confirmed"
através dainterface IPayment
. Quando ele recebe a mensagem, dá início ao processo de envio do produto publicando no barramento de mensagem de tópico"dispatcher/order/<orderId>"
através dainterface ISeller
; - O
componente Shipping
assina no barramento de mensagem de tópico"dispatcher/order/<orderId>"
através dainterface ISeller
. Quando recebe uma mensagem, ele publica no barramento de mensagens de tópico"location/status"
através dainterface IShipping
atualizando o estado da entrega; - O
component Buyer
assina no barramento de mensagem de tópico"location/status"
através dainterface IShipping
. Quando recebe uma mensagem, exibe as informações da entrega; - O
componente Seller
assina no barramento de mensagem de tópico"location/status"
através dainterface IShipping
. Quando ele recebe a mensagem, atualiza as informações na base de dados; - O
componente Recommendation
assina o tópico"order/+/create/+"
atraveś dainterface IOrder
para monitorar os produtos mais requisitados e seus respectivos fornecedores afim de melhorar o seu algoritmo de recomendação. Além disso, também assina o tópico"payment/order/+"
através dainterface IPayment
para entender qual é a forma de pagamento mais comum praticado pelos compradores.
- O
componente Buyer
inicia o processo de leilão publicando no barramento a mensagem de tópico"auction/create"
através dainterface ICreateAuction
; - O
componente Auction
assina no barramento de mensagem de tópico"auction/create"
através dainterface ICreateAuction
. Quando ele recebe a mensagem, ele inicia o leilão com o produto que o comprador deseja e com um tempo limite publicando uma mensagem no barramento de tópico"auction/<auctionId>/begin"
através dainterface IAuction
; - O
componente Seller
assina no barramento de mensagem de tópico"auction/<auctionId>/begin"
através dainterface IAuction
. Quando recebe uma mensagem, os fornecedores podem enviar seus lances para o produto desejado publicando no barramento de mensagens de tópico"auction/<auctionId>/bid"
através dainterface IAuction
; - O
componente Auction
assina no barramento de mensagem de tópico"auction/<auctionId>/bid"
através dainterface IAuction
. Quando recebe uma mensagem, o leilão monitora os lances do leilão; - O
componente Seller
assina no barramento de mensagem de tópico"auction/<auctionId>/bid"
através dainterface IAuction
. Quando recebe uma mensagem, o fornecedor verifica o novo lance do fornecedor concorrente e determina se vai oferecer um valor menor publicando outra mensagem no barramento usando o mesmo tópico e interface; - O
componente Buyer
assina no barramento de mensagem de tópico"auction/<auctionId>/bid"
através dainterface IAuction
. Quando recebe uma mensagem, o comprador pode ver os lances do leilão; - O
componente Auction
informa o final do leilão publicando uma mensagem no barramento de tópico"auction/<auctionId>/finish"
através dainterface IAuction
; - O
componente Buyer
assina no barramento de mensagem de tópico"auction/<auctionId>/finish"
através dainterface IAuction
. Quando recebe uma mensagem, o comprador pode ver lance final; - O
componente Seller
assina no barramento de mensagem de tópico"auction/<auctionId>/finish"
através dainterface IAuction
. Quando recebe uma mensagem, informa ao fornecedor que ofereceu o menor lance que ele ganhou o leilão; - O
componente Recommendation
assina o tópico"auction/+/finish"
atraveś dainterface IAuction
para monitorar o produto, o menor preço e o fornecedor.
Este componente é responsável por administrar as funções relativas ao comprador. Seus serviços são procurar por um produto, selecionar um produto, iniciar um pedido e iniciar um leilão.
Interfaces
- ISearch;
- IProduct;
- IOrder;
- IPayment;
- IShipping;
- ICreateAuction;
- IAuction.
As interfaces listadas são detalhadas a seguir:
Esta interface é uma fonte de dados para busca de produtos.
Tópico: product/search
Classes que representam objetos JSON associados às mensagens da interface:
{
"term": "camisetas",
"price_range": {
"min": 50.0,
"max": 300.0
},
"category_id": 2,
"brand_id": 3
}
Detalhamento da mensagem JSON:
Query
Atributo | Descrição |
---|---|
term |
O termo para fazer uma busca por produtos |
price_range |
O intervalo de preço do produto |
category_id |
O id da categoria de produto |
brand_id |
O id da marca de produto |
Price Range
Atributo | Descrição |
---|---|
min |
O preço mínimo do produto |
max |
O preço máximo do produto |
Esta interface é uma fonte de dados para ver os detalhes de um produto.
Tópico: product/{id}/details
Classes que representam objetos JSON associados às mensagens da interface:
{
"id": 9
}
Detalhamento da mensagem JSON:
Atributo | Descrição |
---|---|
id |
O id do produto para ver os detalhes |
Esta interface é uma fonte que dispara um evento para iniciar um pedido.
Tópico: order/{sellerId}/create/{produtoId}
Classes que representam objetos JSON associados às mensagens da interface:
{
"sellerId": 9,
"produtoId": 9,
"qty": 1
}
Detalhamento da mensagem JSON:
Atributo | Descrição |
---|---|
sellerId |
O id do fornecedor que está vendendo o produto |
produtoId |
O id do produto será feito o pedido |
Esta interface escuta um evento para verificar se o pagamento de um pedido foi negado ou aprovado.
Tópico: payment/order/<orderId>/+
Classes que representam objetos JSON associados às mensagens da interface:
{
"transactionId": 007,
"order": 2020411456,
"paymentType": "Credit",
"dataPagamento": "2020-09-18",
"totalCost": 100.00,
"status": "aprovado"
}
Detalhamento da mensagem JSON:
Atributo | Descrição |
---|---|
transactionId |
identificador da transação de pagamento |
order |
numero da ordem que está sendo paga nessa transação |
paymentType |
forma de pagamento (crédito, debito, boleto) |
date |
data da transação |
totalCost |
preço final do pagamento |
status |
aprovado ou recusado |
Esta interface escuta sobre o tópico atualizações sobre o estado da entrega.
Tópico: location/status
Detalhes da interface encontra-se disponível em Interface IShipping
Esta interface é uma fonte que dispara um evento para um comprador criar um leilão com um produto de interesse.
Tópico: auction/create
Classes que representam objetos JSON associados às mensagens da interface:
{
"productId": 9,
"qty": 500,
"buyer": {
"id": 9,
"name": "SuperBuyer",
}
}
Detalhamento da mensagem JSON:
CreateAuction
Atributo | Descrição |
---|---|
productId |
O id do produto de interesse |
qty |
A quantidade que o comprador está interessado |
buyer |
As informações do comprador |
Buyer
Atributo | Descrição |
---|---|
id |
O id do comprador |
name |
O nome do comprador |
Esta interface escuta as atualizações do leilões que o comprador está participando.
Tópico 1: auction/{auctionId}/bid
Tópico 2: auction/{auctionId}/finish
Detalhes da interface encontra-se disponível em Interface IAuction
Este componente é responsável por fornecer todos os detalhes referente a um dado produto registrado na base da plataforma.
Interfaces
- ISearch;
- IProduct.
As interfaces listadas são detalhadas a seguir:
Detalhes da interface ISearch como JSON de request e a descrição da interface podem ser encontradas
aqui
(Interface ISearch).
Tópico: product/search
product//details
Classes que representam objetos JSON associados às mensagens da interface:
JSON de resposta
{
"id": 10,
"name": "Camiseta Polo",
"description": "blah blah blah blah",
"price": 200,
"qty": 5,
"category": {
"id": 1,
"name": "Vestuário",
},
"vendor": {
"id": 1,
"name": "Loja X",
"location": {
"address": "Rua xyz, Campinas-SP",
"cep" : 13897-000,
},
"phoneNumber": "(00) 00000-0000"
}
}
Detalhamento da mensagem JSON:
Atributo | Descrição |
---|---|
id |
Idenficador do produto na base de dados da plataforma |
name |
Nome do produto , |
description |
Detalhes do produto |
price |
Preço único do produto , |
qty |
Quantidade de produtos disponível na loja |
category |
Categoria em que o produto se enquadra |
vendor |
informações do vendedor |
category
Atributo | Descrição |
---|---|
id |
Identificador único da categoria do produto |
name |
Nome da categoria em que o produto se enquadra |
vendor
Atributo | Descrição |
---|---|
id |
Identificador único do forncedor |
name |
Nome do fornecedor/vendedor |
locationt |
Endereço da loja (caso apenas virtual, o endereço de devolução |
phoneNumber |
Telefone de contato do fornecedor |
location
Atributo | Descrição |
---|---|
address |
Nome da Rua e número de identificação |
cep |
CEP da Rua |
Este componente é responsável por administrar as funções relativas aos pedidos. Seus serviços são criar e validar um pedido e verificar o estado do pagamento.
Interfaces
- IOrder;
- IPayment.
As interfaces listadas são detalhadas a seguir:
Esta interface escuta o tópico para criar e validar um pedido.
Tópico: order/{sellerId}/create/{produtoId}
Classes que representam objetos JSON associados às mensagens da interface:
{
"orderId": 9,
"items": [
{
"productId": 9,
"name": "Camiseta Polo",
"description": "blah blah blah blah",
"price": 200.0,
"qty": 5,
}
],
"total": 1000.0,
"categoryId": 1,
"sellerId": 1
}
Detalhamento da mensagem JSON:
Order
Atributo | Descrição |
---|---|
orderId |
O id do novo pedido |
items |
Os itens do pedido |
total |
O total do pedido |
categoryId |
O id da categoria do produto |
sellerId |
O id do fornecedor que vende o produto |
Item
Atributo | Descrição |
---|---|
productId |
O id do produto |
name |
O nome do produto |
description |
A descrição do produto |
price |
O preço unitário do produto |
qty |
O quantidade de produtos do produto |
Esta interface dispara um evento para validar o pagamento do pedido.
Tópico: payment/check/{orderId}
Detalhes da interface encontra-se disponível em Interface IPayment
Payment é o componente que efetua o pagamento de um pedido realizado, verificando se o pagamento foi ou não aprovado.
Interfaces
- IPayment.
As interfaces listadas são detalhadas a seguir:
Resumo do papel da interface.
Tópico: payment/check/{orderId}
Classes que representam objetos JSON associados às mensagens da interface:
{
"transactionId": 007,
"order": 2020411456,
"paymentType": "Credit",
"dataPagamento": "2020-09-18",
"totalCost": 100.00,
"status": "aprovado"
}
Detalhamento da mensagem JSON:
Atributo | Descrição |
---|---|
transactionId |
identificador da transação de pagamento |
order |
numero da ordem que está sendo paga nessa transação |
paymentType |
forma de pagamento (crédito, debito, boleto) |
date |
data da transação |
totalCost |
preço final do pagamento |
status |
aprovado ou recusado |
Este componente é responsável por administrar as funções de um fornecedor. Seus serviços são iniciar o envio do produto e participar dos leilões.
Interfaces
- ISeller;
- IPayment;
- IShipping;
- IAuction.
As interfaces listadas são detalhadas a seguir:
Esta interface é responsável por publicar um evento de despacho de produto.
Tópico: dispatcher/order/{orderId}
Classes que representam objetos JSON associados às mensagens da interface:
{
"orderId": 20,
"sellerId": 9,
"location": {
"zipcode": "99999-999",
"address": "Avenida Paulista",
"state": "São Paulo",
"city": "São Paulo"
}
}
Detalhamento da mensagem JSON:
Dispatch
Atributo | Descrição |
---|---|
orderId |
O id do pedido |
sellerId |
O id do fornecedor |
location |
A localização da entrega |
Location
Atributo | Descrição |
---|---|
zipcode |
O cep do endereço |
address |
O endereço |
state |
O estado do endereço |
city |
A cidade do endereço |
Esta interface escuta no tópico para verificar um pedido desse fornecedor que foi aprovado.
Tópico: payment/order/{orderId}/confirmed
Classes que representam objetos JSON associados às mensagens da interface:
{
"transactionId": 007,
"order": 2020411456,
"paymentType": "Credit",
"dataPagamento": "2020-09-18",
"totalCost": 100.00,
"status": "aprovado",
"sellerId": 1
}
Detalhamento da mensagem JSON:
Atributo | Descrição |
---|---|
transactionId |
identificador da transação de pagamento |
order |
numero da ordem que está sendo paga nessa transação |
paymentType |
forma de pagamento (crédito, debito, boleto) |
date |
data da transação |
totalCost |
preço final do pagamento |
status |
aprovado ou recusado |
sellerId |
O id do fornecedor |
Esta interface escuta sobre o tópico atualizações sobre o estado da entrega.
Tópico: location/status
Detalhes da interface encontra-se disponível em Interface IShipping
Esta interface escuta sobre o tópico de inicio de leilão. Além disso, ele dispara eventos participando dos leilões com lances sobre um determinado produto.
Tópico: auction/<auctionId>/begin
e auction/<auctionId>/bid
Detalhes da interface encontra-se disponível em Interface IAuction
Esse componente é responsável por administrar as funções relativas a entrega. Seus serviços são criação da entrega e atualização de estado.
Interfaces
- IShipping;
- ISeller.
As interfaces listadas estão detalhadas a seguir:
Essa interface é um fonte de dados sobre a entrega, ela publica o estado da entrega de um pedido.
Tópico: location/status
Classes que representam objetos JSON associados às mensagens da interface:
{
"id": "440",
"status": "entregue",
"location": {
"zipcode": "99999-999",
"address": "Avenida Paulista",
"state": "São Paulo",
"city": "São Paulo"
},
"order": {
"sellerId": "781",
"productId": "50",
"qty": "2"
}
}
Detalhamento da mensagem JSON:
Shipping
Atributo | Descrição |
---|---|
id |
O id da entrega |
status |
O estado da entrega |
location |
A localização de envio |
Order
Atributo | Descrição |
---|---|
seller_id |
O id do fornecedor |
product_id |
O id do produto |
qty |
A quantidade ser enviada |
Essa interface escuta no tópico um evento de despachar um produto e cria uma entrega
Tópico: <dispatcher/order/{orderId}>
Classes que representam objetos JSON associados às mensagens da interface:
{
"id": "440",
"status": "entregue",
"location": {
"zipcode": "99999-999",
"address": "Avenida Paulista",
"state": "São Paulo",
"city": "São Paulo"
},
"order": {
"sellerId": "781",
"productId": "50",
"qty": "2"
}
}
Detalhamento da mensagem JSON:
Shipping
Atributo | Descrição |
---|---|
id |
O id da entrega |
status |
O estado da entrega |
location |
A localização de envio |
Order
Atributo | Descrição |
---|---|
seller_id |
O id do fornecedor |
product_id |
O id do produto |
qty |
A quantidade ser enviada |
Este componente é responsável por recomendar produtos aos clientes da plataforma. Ele possui algoritmos que permite classificar e recomendar produtos baseados em gosto, frequetemente visualizados, etc.
Interfaces
- IOrder;
- IPayment;
- IAuction.
As interfaces listadas são detalhadas a seguir:
O Componente Recomendation assina os tópicos abaixo detalhado para monitorar e enriquecer o datawarehouse afim de melhorar o algoritmo de recomendação através dessas interfaces.
Detalhes da interface encontra-se disponível em Interface IOrder
Tópico: order/+/create/+
Detalhes da interface encontra-se disponível em Interface IPayment
Tópico: payment/order/+
Tópico: auction/{auctionId}/finish
Detalhes da interface encontra-se disponível em Interface IAuction
Esse componente recebe um determinado produto de um cliente, além disso inicia e termina o processo de leilão invertido.
Interfaces
- IAuction;
- ICreateAuction;
As interfaces listadas são detalhadas a seguir:
Essa interface é responsável por atualizar e manter o processo de leilão, permitindo aos Sellers cadastrarem propostas.
Tópico: auction/<auctionId>/bid
e auction/{auctionId}/finish
Classes que representam objetos JSON associados às mensagens da interface:
{
"auctionId": 01654,
"productId": 1000001,
"lowerBid": 259.90,
"sellerId": 300004,
"bidHistory":
{
"sellerId": 30004,
"bid": 259.90
}
{
"sellerId": 30006,
"bid": 289.00
}
}
Detalhamento da mensagem JSON:
Atributo | Descrição |
---|---|
auctionId |
número único do leilão |
product |
Produto desejado |
lowerBid |
registra o lance mais baixo registrado |
seller |
registra o Seller com Bid mais baixo proposto |
bidHistory |
registra os lances efetuados registrando o Seller e o Bid proposto |
Essa interface é responsável pela criação de um novo leilão, vinculando um Buyer a ele e um Produto.
Tópico: auction/<auctionId>/begin
Classes que representam objetos JSON associados às mensagens da interface:
{
"auctionId": 01654,
"productId": 1000001,
"lowerBid": null,
"sellerId": null,
"bidHistory": { }
}
Detalhamento da mensagem JSON:
Atributo | Descrição |
---|---|
auctionId |
define um número único para o leilão |
product |
armazena o Produto desejado |
lowerBid |
registrará o lance mais baixo registrado |
seller |
registrará o Seller com Bid mais baixo proposto |
bidHistory |
registrará os lances efetuados registrando o Seller e o Bid proposto |
- O componente
Auction Controller
assina no barramento de mensagens de tópico"auction/create"
através dainterface ICreateAuction
.- Ao receber uma mensagem neste tópico, dispara o início de um leilão.
- Internamente este evento é atendido por uma interface provida do componente
Gerenciar Leilão
, que é responsável por administrar os leilões.- Este componente cria um novo leilão acionando o componente
Manter Leilão
através dainterface IManageAuction
. - O componente
Manter Leilão
acessa os componentes de Model associados através da interface requerida externaAtualizar Dados
. - Iniciado o leilão, o componente
Manter Leilão
notifica externamente para o barramento de tópico"auction/<auctionId>/begin"
que é possível fazer lances através dainterface IAuction
.
- Este componente cria um novo leilão acionando o componente
- O componente
Auction View
assina no barramento de mensagens de tópico"auction/<auctionId>/begin"
através dainterface ICreateAuction
.- Ao receber uma mensagem neste tópico, dispara a possibilidade de vendedores realizarem lances para o leilão.
- Internamente este evento é atendido por uma interface provida do componente
Montar telas leilão
, que é responsável por montar as telas de leilão.- Este componente mostra os detalhes do leilão através do componente
Detalhar o Leilão
através dainterface IAuctionDetails
.
- Este componente mostra os detalhes do leilão através do componente
- Para fazer um novo lance, o componente
Montar telas leilão
pede ao componenteFormulário Novo Lance
através dainterface IAuctionNewBid
os dados do novo lance.- Ao receber os dados, o componente
Montar telas leilão
publica os dados externamente no barramento pelo tópico"auction/<auctionId>/bid"
através da mesmainterface IAuction
.
- Ao receber os dados, o componente
- O componente
Auction Controller
assina no barramento de mensagens de tópico"auction/<auctionId>/bid"
através dainterface IAuction
.- Ao receber uma mensagem neste tópico, dispara o gerenciamento os lances.
- Este componente gerencia os lances acionando o componente
Gerenciar Lance
através dainterface IAuctionBid
. - O componente
Gerenciar Lance
atualiza os componentes de cada Model associados através da interface requerida externaAtualizar Dados
. Além disso, para cada lance este mesmo componente publica no barramento externo de tópico"auction/<auctionId>/bid"
através dainterface IAuction
a atualização dos lances.
- O componente
Auction View
assina no barramento de mensagens de tópico"auction/<auctionId>/bid"
através dainterface IAuction
.- Ao receber uma mensagem neste tópico, os leilões são atualizados.
- Internamente este evento é atendido por uma interface provida do componente
Montar telas leilão
, que é responsável por montar as telas de leilão.- Este componente mostra as atualizações do leilão através do componente
Detalhar o Leilão
através dainterface IAuctionDetails
.
- Este componente mostra as atualizações do leilão através do componente
- O componente
Auction Controller
publica no barramento de mensagens de tópico"auction/<auctionId>/finish"
através dainterface IAuction
. - O componente
Auction View
assina no barramento de mensagens de tópico"auction/<auctionId>/finish"
através dainterface IAuction
.- Ao receber uma mensagem neste tópico, dispara o término de um leilão.
- Internamente este evento é atendido por uma interface provida do componente
Montar telas leilão
, que é responsável por montar as telas de leilão.- Este componente anuncia o término do leilão através do componente
Detalhar o Leilão
através dainterface IAuctionDetails
.
- Este componente anuncia o término do leilão através do componente
Este componente é responsável por gerenciar os leilões no controller.
Interfaces
- IAuction
- ICreateAuction
As interfaces listadas são detalhadas a seguir:
Detalhes da interface encontra-se disponível em Interface IAuction
Detalhes da interface encontra-se disponível em Interface ICreateAuction
Este componente é responsável criar e terminar um leilão internamente no controller.
Interfaces
- IManageAuction
- IAuction
As interfaces listadas são detalhadas a seguir:
Esta interface fornece os métodos para criar e terminar um leilão.
Método | Objetivo |
---|---|
createAuction(productId) |
Cria um novo leilão passando o id do produto |
terminateAuction(auctionId) |
Termina um leilão passando o id do leilão |
Detalhes da interface encontra-se disponível em Interface IAuction
Este componente é responsável por gerenciar os lances dos leilões.
Interfaces
- IAuctionBid
- IAuction
As interfaces listadas são detalhadas a seguir:
Esta interface fornece os métodos registrar os lances.
Método | Objetivo |
---|---|
registrarLance(auctionId) |
Método para registrar os lances do leilão passando o id do leilão |
Detalhes da interface encontra-se disponível em Interface IAuction
Este componente representa o modelo de entidade do comprador.
Interfaces
- Atualizar dados
As interfaces listadas são detalhadas a seguir:
Esta interface fornece os métodos para acessar/alterar os dados desta entidade. Os métodos são os típicos get
e set
de um DAO.
Este componente representa o modelo de entidade do leilão.
Interfaces
- Atualizar dados
As interfaces listadas são detalhadas a seguir:
Detalhes da interface encontra-se disponível em Interface Atualizar dados
Este componente representa o modelo de entidade do fornecedor.
Interfaces
- Atualizar dados
As interfaces listadas são detalhadas a seguir:
Detalhes da interface encontra-se disponível em Interface Atualizar dados
Este componente representa o modelo de entidade do produto.
Interfaces
- Atualizar dados
As interfaces listadas são detalhadas a seguir:
Detalhes da interface encontra-se disponível em Interface Atualizar dados
Esse componente é responsável por montar as telas do leilão.
Interfaces
- IAuction
- ICreateAuction
As interfaces listadas são detalhadas a seguir:
Detalhes da interface encontra-se disponível em Interface IAuction.
Além disso, o seguinte método é disponível.
Método | Objetivo |
---|---|
criarTela() |
Método para criar telas do leilão |
Detalhes da interface encontra-se disponível em Interface ICreateAuction
Esse componente é responsável por montar os formulários do leilão.
Interfaces
- IAuctionNewBid
As interfaces listadas são detalhadas a seguir:
Essa interface fornece os métodos para a criação do formulário novo lance.
Método | Objetivo |
---|---|
createNewBid(auctionId) |
Cria um novo lance para algum leilão |
Esse componente é responsável por montar os detalhes do leilão como atualização de lances.
Interfaces
- IAuctionDetails
As interfaces listadas são detalhadas a seguir:
Essa interface fornece os métodos para a montagem dos detalhes do leilão.
Método | Objetivo |
---|---|
atualizarLeilao(auctionId) |
Atualiza e monta os detalhes do leilão |
Uma solução para o problema descrito, seria utilizar uma arquitetura distribuída na nuvem baseada em eventos. Pensamos em 3 (três) serviços: Frontend, Backend e Banco de Dados. Estes serviços utilizam um barramento de mensagens para publicar e escutar os eventos. Uma vantagem desta arquitetura, seria a possibilidade de adicionar ou remover novos serviços, como por exemplo um serviço de Big Data, no sistema.
No serviço de Frontend, está a aplicação Mobile e a aplicação Web. O desenvolvimento da aplicação Mobile utilizará o Framework Flutter que usa a linguagem Dart. O motivo de utilizar este framework é sua capacidade de criar aplicações para Android ou iOS com bom desempenho, além disso ele é opensource e está em pleno desenvolvimento pela comunidade. Outra vantagem é de que no futuro próximo, poderemos utilizar o framework para desenvolver também a aplicação Web, pois esta será uma de suas funções disponíveis. Em um primeiro momento, a aplicação Web será desenvolvida no framework React. O React utiliza a linguagem JavaScript, também é opensource e é a biblioteca mais utilizada para criar aplicações SPA. Ele é muito fácil de utilizar e possui integrações com vários APIs de terceiros.
No serviço de Backend, utilizaremos a linguagem Python e o framework Flask. A linguagem Python é uma linguagem muito utilizada no mercado, além de ser opensource ela possui muitas bibliotecas para os mais diversos tipos de serviços. O Flask é um framework para desenvolver aplicações Web, ele é indicado para aplicações simples e é possível prover uma API REST rapidamente.
No serviço de Banco de Dados, utilizaremos a ferramenta MySQL. O MySQL é um sistema de gerenciamento de banco de dados relacional robusto, estável e de fácil manuseio.