gitrodrigues1 / ecommerce-microservices-it

A challenge to develop of an e-commerce microservices architecture
0 stars 1 forks source link

Criação da documentação #5

Open gitrodrigues1 opened 5 months ago

gitrodrigues1 commented 5 months ago

Considerações: A partir da técnica de Event Storming, criei um esboço do diagrama que considero estar próximo daquilo que poderemos implementar no sistema utilizando DDD. Importante lembrar que este foi apenas um entendimento meu do que poderia ser modelado o domínio e não reflete a consideração de todos. Portanto, sintam-se livres para opinar e debater sobre o tema e sugerir alterações.

gitrodrigues1 commented 5 months ago

Image

Realizando a modelagem do domínio, chegou-se ao entendimento da necessidade de criação dos seguintes microserviços:

gitrodrigues1 commented 5 months ago

Requisitos - Cadastro de Usuários

  1. Cadastro de usuário: Permitir que os usuários se registrem no no sistema informando nome de usuário, email e senha. O sistema deve criptografar a senha antes de armazena-la no banco de dados.
  2. Alterar o status do usuário: Permitir aos administradores alterar o status de um usuário, como bloquear, desbloquear, em caso de atividade suspeita ou desligamento.
  3. Busca por status do usuario (somente para administradores)
  4. Busca por id do usuario (somente para administradores)
  5. Registro de Log de acesso: Permitir o registro de acesso dos usuários.

Requisitos Não-Funcionais

gitrodrigues1 commented 5 months ago

Requisitos - Cadastro de Produtos

  1. Cadastro de produto: Permitir que os usuários registrados no sistema com perfil de moderador ou administrador possam cadastrar produtos no sistema informando os dados necessários para o seu cadastro.
  2. Alteração de produto: Permitir que os usuários registrados no sistema com perfil de moderador ou administrador possam alterar produtos que já tenham sido cadastrados no sistema, informando os dados necessários para sua alteração, bem como ativa/inativar produtos.
  3. Busca de produtos por id
  4. Busca de produtos por preço
gitrodrigues1 commented 5 months ago

Requisitos - Pedidos de Vendas

1.

  1. Formas de pagamento: Os pedidos deverão ter as formas de pagamento "boleto" ou "cartão" e é permitido somente uma forma de pagamento.
  2. Status de pagamento: O sistema deverá atualizar o status do pedido de acordo com a situação de pagamento. caso o pedido tenha sido criado e ainda não foi pago, deverá constar o status "aguardando_pagamento". caso já tenha sido pago. terá o status "pagamento_confirmado".
gitrodrigues1 commented 5 months ago

Requisitos - Pagamentos (Checkout de Vendas)

  1. Comunicação com Gateway de pagamentos: O sistema deve possibilitar o usuário se comunicar de forma trasparente com o gateway de pagamentos, informando seus dados de pagamento para serem enviados ao gateway. Após a confirmação do gateway, o sistema deverá importar os dados de retorno do gateway para o pedido e alterar o seu status para "pagamento_confirmado".
  2. Alteração do status de aprovação: O sistema deve possibilitar a alteração do status no pedido de venda para "pagamento_confirmado".
gitrodrigues1 commented 5 months ago

Endpoints Cadastro de Usuários:

POST /api/v1/auth/register

{
   "username": "user1",
   "password": "password",
   "email": "u1@email.com"
}

POST /api/v1/auth/authenticate

{
   "username": "user1",
   "password": "password"
}

POST /api/v1/admin/moderator - Criar moderador header - Bearer token

{
   "name": "user1",
   "role": "2",
   "userId": "aa16ca9-a879-4de2-9ff4-18a171740fb"
}

PUT /api/v1/admin/moderator/{id} - Atualizar moderador header - Bearer token

{
   "name": "user1",
   "role": "2",
   "userId": "aa16ca9-a879-4de2-9ff4-18a171740fb"
}

GET /api/v1/admin/moderators - Retornar todos os moderadores header - Bearer token Body: N/A

DELETE /api/v1/admin/moderators/{id} - Deletar moderador header - Bearer token Body: N/A

gitrodrigues1 commented 5 months ago

Endpoints - Cadastro de Produtos

POST /api/v1/produtos - Cadastrar produto Body:

{
  "nome": "Nome do produto",
  "descricao": "Descrição do produto",
  "preco": 99.99,
  "estoque": 100,
  "categoria": "Categoria do produto"
}

PUT /api/v1/produtos/{id} - Atualizar produto Body:

{
  "nome": "Novo nome do produto",
  "descricao": "Nova descrição do produto",
  "preco": 109.99,
  "estoque": 120,
  "categoria": "Nova categoria do produto"
}

GET /api/v1/produtos - Retornar todos os produtos Body: N/A

GET /api/v1/produtos/{id} - Retornar produto por Id Body: N/A

DELETE /api/v1/produtos/{id} - Excluir produtos Body: N/A

gitrodrigues1 commented 5 months ago

Documentação Microsserviços E-Commerce - Squad02 - V.1.pdf