Amanda Souza Macedo Bacelli
Daniela Bouwman Codeceira
Jonata Laureano da Silva Cortez
Matheus Raposo Frauches Vieira Sias
Renato Fernandes Reis
Vitor Corrêa Oliveira
-
O componente
Distribuição de Ofertas
interage nos processos abaixo:- SendAlert: Interface que recebe a interface fornecida Subscribe do componente
Cliente
que indica que o cliente quer assinar uma oferta de um determinado produto e assim é feita a distribuição das ofertas conforme essa assinatura - ReceiveChoose: Interface que recebe a interface SendChooseCliente do componente
Solicita Produto
, quando o cliente escolhe um produto para compra, o componente envia para o componente de Distribuição de Ofertas para que assim ele saiba as escolhas do cliente e prepare ofertas similirares ao produto escolhido - ReceiveOffer: tópico que recebe o aviso de quando uma
Loja
cria uma oferta faz a leitura de CreateOfferproduct/+/alert
- AnalyseSearches: tópico que analisa as buscas realizadas pelo cliente para que possa gerar ofertas similares, faz a leitura de FindProducts
product/+/find
- OrderAnalyser: Analisa as ordens emitidas pelas
Lojas
através do tópico Orderorder/+/send
e assim aprimorar o aprendizado do componente
- SendAlert: Interface que recebe a interface fornecida Subscribe do componente
-
O componente
Cliente
interage nos processos abaixo:- Subscribe: Se inscreve em uma determinada oferta através da interface SendAlert do componente
Distribuição de Ofertas
- PaymentOrder: Recebe os dados para o pagamento para a interface RequestPayment do componente
Pagamento
- ReceiverOrder: Recebe a ordem da interface SendOrder do componente
Solicita produto
- ChooseProductAndStore: Fornece o produto e a loja escolhida para a compra para a interface ReceiverProductAndStore do componente
Solicita Produto
- FindProducts: Envia mensagem ao buscar um produto através do barramento através da mensagem ShowProducts
- FollowOrder: Tópico para receber status de ordens emitidas através do tópico Order
order/{orderId}/send
- Subscribe: Se inscreve em uma determinada oferta através da interface SendAlert do componente
-
O componente
Solicita Produto
interage nos processos abaixo:- SendOrder: Envia a order para a interface ReceiveOrder do componente
Cliente
com a Ordem recebida via tópico SendOrderorder/+/send
- ReceiveProductAndStore: Interface que recebe o produto e a loja escolhida pelo cliente
- SendChooseClient: envia a escolha do cliente para o componente
Distribuição de ofertas
- RequestBuy: envia um tópico para a loja referente ao produto a ser comprado para a loja
- SendOrder: Envia a order para a interface ReceiveOrder do componente
-
O componente
Loja
interage nos processos abaixo:- SendOrder: Envia a ordem com o produto para que o cliente possa acompanhar através do tópico FollowOrder
order/{orderId}/send
- ReceivePayment: recebe o pagamento através do tópico SendPayment
order/+/payment/+/accept
do componentePagamento
- CreateOffer: Cria as ofertas de seus produtos
- ShowProduct: Exibe o produto quando recebe o tópico de busca através do barramento
- Order: envia a order quando a compra é solicitada através do RequestBuy
product/+/store/+/buy
- SendOrder: Envia a ordem com o produto para que o cliente possa acompanhar através do tópico FollowOrder
-
O componente
Pagamento
interage nos processos abaixo:- RequestPayment: solicita o pagamento para a interface do componente
Cliente
- SendPayment: envia a mensagem do pagamento da ordem através do barramento
- RequestPayment: solicita o pagamento para a interface do componente
Para cada componente será apresentado um documento conforme o modelo a seguir:
Componente responsável pela distribuição de ofertas, sendo de origem de assinatura (por desejo do cliente) ou atraves do aprendizado da máquina
Componente responsável por orquestrar todos os fluxos do marketplace, sendo na busca, compra, pagmento e recebimento de oferta
![Componente](images/N1-comp-cliente.png
Componente responsável por enviar a solicitação de compra do produto e reencaminhar a ordem ao cliente. Também auxilia na aprendizagem do componente de Distribuição de Ofertas enviando as escolhas do cliente
Componente responsável emitir e controlar pagamento da ordem
Componente responsável em emitir ordem, ofertas e exibir seus produtos mediante uma solicitação de busca
Interfaces
Listagem das interfaces do componente.
As interfaces listadas são detalhadas a seguir:
Envia a busca dos produtos feita pelo cliente
- Type: source
- Topic: product/+/find
- Message type: Product
{
productId: number,
description: string,
price: double,
stores: [
{
storeid: number,
description: string
}
]
}
Exibe os produtos buscados de cada Loja
- Type: sink
- Topic: product/{productId}/find
- Message type: Product
{
productId: number,
description: string,
price: double,
stores: [
{
storeid: number,
description: string
}
]
}
Analisa as buscas feitas pelo cliente para aprendizagem do componente Distribuição de Ofertas
- Type: sink
- Topic: product/{productId}/find
- Message type: Product
{
productId: number,
description: string,
price: double,
stores: [
{
storeid: number,
description: string
}
]
}
Recebe as ofertas emitidas pela Loja
- Type: sink
- Topic: product/{productId}/alert
- Message type: Product
{
productId: number,
description: string,
price: double,
stores: [
{
storeid: number,
description: string
}
]
}
Envia a oferta de um determinado produto
- Type: source
- Topic: product/+/alert
- Message type: Product
{
productId: number,
description: string,
price: double,
stores: [
{
storeid: number,
description: string
}
]
}
Envia a requisição de compra de um produto para uma loja
- Type: source
- Topic: product/+/store/+/buy
- Message type: Order
{
orderId: string,
date: date,
total: number,
statusOrdem: string
storeId: number,
products: [
{
productId: number,
quantity: number
}
],
payment:
{
date: date,
value: number,
Status: string
}
}
Cria a ordem do produto
- Type: sink
- Topic:product/{productId}/store/{storeId}/buy
- Message type: Order
{
orderId: string,
date: date,
total: number,
statusOrdem: string
storeId: number
products: [
{
productId: number,
quantity: number
}
]
payment:
{
date: date,
value: number,
Status: string
}
}
Acompanha o envio da ordem e seu status
- Type: sink
- Topic: order/{orderId}/send
- Message type: Order
{
orderId: string,
date: date,
total: number,
statusOrdem: string
storeId: number
products: [
{
productId: number,
quantity: number
}
]
payment:
{
date: date,
value: number,
Status: string
}
}
Envia a ordem ao barramento para que o cliente consiga acompanhar
- Type: source
- Topic: order/+/send
- Message type: Order
{
orderId: string,
date: date,
total: number,
storeId: number,
statusOrdem: string
products: [
{
productId: number,
quantity: number
}
]
payment: {
date: date,
value: number,
Status: string
}
}
Envia o status do pagamento da ordem e os dados do pagamento
- Type: source
- Topic: order/+/payment/+/accept
- Message type: Payment
{
paymentId: string,
date: date,
value: double,
status: string,
order:
{
orderId: string
}
}
Recebe os dados do pagamento da ordem em questão
- Type: sink
- Topic:order/{orderId}/payment/{paymentId}/accept
- Message type: Payment
{
paymentId: string,
date: date,
value: double,
status: string,
order:
{
orderId: string
}
}
Resumo do papel do componente e serviços que ele oferece.
-
O componente
Distribuição de Ofertas
assina no barramento mensagens de tópicoproduct/+/alert
através da interface ReceiveOffer.- Ao receber uma mensagem de tópico
product/+/alert
, dispara o início processo de seleção e ranqueamento dos produtos com base menor valor, produtos patrocinados e recomendaçoes com base no perfil do cliente.
- Ao receber uma mensagem de tópico
-
Internamente este evento é atendido por uma interface provida do componente
Busca Melhor Oferta
, que é responsável por selecionar e ranquear os produtos/ofertas. -
O componente
DataSet
assina no barramento mensagens de tópicoproduct/+/find
através da interface AnalyseSearches.- O componente analisa as buscas realizadas pelo cliente para enriquecimento do modelo de recomendações.
-
O componente
DataSet
assina no barramento mensagens de tópicoorder/+/send
através da interface OrderAnalyser.- O componente analisa as ordens emitidas pelas
Lojas
através do tópico Orderorder/+/send
e utiliza estas informaçoes para enriquecimento do modelo de recomendações.
- O componente analisa as ordens emitidas pelas
-
O componente
DataSet
conecta-se ao dataset utilizado para treinar o modelo usado para recomendaçoes de produtos com base no perfil do cliente através da interface Inference -
O componente
Busca Melhor Oferta
notifica o componenteFiltra Produto Menor Valor
que uma oferta está a caminho através da interface Solicita Melhor Oferta. -
O componente
Busca Melhor Oferta
notifica o componenteRecomenda Produtos
que uma oferta está a caminho através da interface Solicita Recomendacoes Produtos. -
O componente
Busca Melhor Oferta
notifica o componenteBusca Produtos Patrocinados
que uma oferta está a caminho através da interface Solicita Produtos Patrocinados. -
O componente
Filtra Produto Menor Valor
filtra a oferta com o menor valor e notifica o componenteCalcula Melhor Oferta
que uma oferta está a caminho através da interface Solicita Produto Menor Valor. -
O componente
Recomenda Produtos
solicita ao componenteDataSet
, através da interface Inference, recomendaçoes de ofertas com base no no perfil do cliente. -
O componente
Recomenda Produtos
notifica o componenteCalcula Melhor Oferta
que um conjunto de recomendações de ofertas está a caminho através da interface Solicita Produto Recomendado. -
O componente
Busca Produtos Patrocinados
consulta sua base de dados de produtos partocinados e notifica o componenteCalcula Melhor Ofertas
que um conjuntos de produtos patrocinados está a caminho através da interface Solicita Produtos Patrocinados. -
O componente
Calcula Melhor Ofertas
faz seleção e ranqueamento dos produtos com base menor valor, produtos patrocinados e recomendaçoes com base no perfil do cliente e notifica o componenteNotifica Cliente
sobre melhor oferta disponível através da interface Notifica Cliente. -
O componente
Notifica Cliente
notifica o assinante/cliente sobre as melhores ofertas disponíveis baseado no seu perfil através da interface SendAlert
O aplicativo pode ser acessado clicando aqui
Interface de compra de um produto
- O componente
Retrieve Product Info
assina no barramento mensagens de tópico "product/+/find
" através da interfaceShowProduct
.
- Ao receber uma mensagem de tópico "
product/+/find
", dispara a busca das informações de um determinado produto. - O componente
Purchase and Info
se comunica com componentes externos pelo barramento:- Para consultar o estoque e a descrição do produto, o componente
Purchase and Info
publica no barramento uma mensagem de tópico "product/+/find
" através da interfaceFindProducts
e assina mensagens de tópico "product/{productId}/find
" através da interfaceShowProducts
que retorna a disponibilidade e descrição do produto. - Para a realização da compra o componente
Purchase and Info
publica no barramento uma mensagem de tópico "product/{productId}/buy
" através da interface "CreateOrder", que cria uma ordem de compra.
- Para consultar o estoque e a descrição do produto, o componente