github blob

GITHUB BLOG

Atividade Mapeando Dominio Rocketseat

bruno-valerohá 4 mesesmain

Desfio Rockeseat: Mapeando o Domínio

Nessa atividade eu tive que ler uma conversa entre um Domain Expert e um desenvolvedor responsável por criar a aplicação. O objetivo é identificar as entidades e casos de uso para essa aplicação com base nessa conversa!

Leia a Entrevista para se contextualizar no arquivo entrevista.md

O que você deve procurar?

Dado o diálogo da entrevista, as seguintes perguntas devem ser respondidas:

  • Quais as entidades de domínio?
  • Quais as ações (casos de uso) que essa aplicação deve ter?

Detalhes

  • A aplicação se trata de um sistema de gerenciamento de estoque.

Entidades de Domínio

  • Produto
  • Mensagem de Alerta
  • Venda
  • Ordem de Compra

Casos de Uso

  • Rastrear Produto por um identificador único
  • Enviar Alertas por Email
  • Atualizar o número de itens em estoque para cada produto
  • Atualizar o limite mínimo de estoque para cada produto
  • Gerar Histórico de Vendas
  • Criar Ordens de Compra de com base nas Quantidades Mínimas de Estoque
  • Buscar o Histórico de Vendas
  • Criar Ordens de Compra
  • Criar uma nova Venda
  • Criar uma novo Produto possibilitando definir um limite mínimo de estoque

Requesitos Funcionais

  • deve ser possível criar um novo produto
  • deve ser possível rastrear cada produto individualmente
  • deve ser possível criar uma ordem de compra
  • deve ser possível definir quantidades mínimas de estoque
  • deve ser possível visualizar o histórico de vendas
  • deve ser possível gerar um relatório de vendas dentro de um período desejado agregando a performance dos produtos vendidos e a performance das vendas

Regras de Negócio

  • assim que um produto atingir o limite mínimo de estoque, devem ser enviados alertas automaticamente por email e para o sistema de gerenciamento informando sobre ocorrido
  • assim que um produto atingir o limite mínimo de estoque, uma nova ordem de compra deve ser criada automaticamente

Requesitos Funcionais

  • deve ser possível integrar o sistema com com outros sistemas, como os fornecedores, por exemplo.