Skip to content

Releases: giovnnvm/orange-talents-06-ecommerce

Finaliza Compra Parte 2

25 Jul 23:07
Compare
Choose a tag to compare

Necessidades

  • A pessoa pode escolher a quantidade de itens daquele produto que ela quer comprar
  • O estoque do produto é abatido 
  • Um email é enviado para a pessoa que é dona(o) do produto informando que um usuário realmente disse que queria comprar seu produto.
  • Uma compra é gerada informando o status INICIADA e com as seguintes informações:
    • Gateway escolhido para pagamento
    • Produto escolhido
    • Quantidade
    • Comprador(a)
    • Valor do produto naquele momento
  • Suponha que o cliente pode escolher entre pagar com o Paypal ou Pagseguro.

Restrições

  • A quantidade é obrigatória
  • A quantidade é positiva
  • Precisa ter estoque para realizar a compra

Resultado esperado

  • Caso a pessoa escolha o paypal seu endpoint deve gerar o seguinte redirect(302):
    • Retorne o endereço da seguinte maneira: paypal.com?buyerId={idGeradoDaCompra}&redirectUrl={urlRetornoAppPosPagamento}
  • Caso a pessoa escolha o pagseguro o seu endpoint deve gerar o seguinte redirect(302):
    • Retorne o endereço da seguinte maneira: pagseguro.com?returnId={idGeradoDaCompra}&redirectUrl={urlRetornoAppPosPagamento}
  • Caso aconteça alguma restrição retorne um status 400 informando os problemas. 

Finaliza Compra Parte 1

23 Jul 23:47
Compare
Choose a tag to compare

Necessidades

  • A pessoa pode escolher a quantidade de itens daquele produto que ela quer comprar
  • O estoque do produto é abatido 
  • Um email é enviado para a pessoa que é dona(o) do produto informando que um usuário realmente disse que queria comprar seu produto.
  • Uma compra é gerada informando o status INICIADA e com as seguintes informações:
    • Gateway escolhido para pagamento
    • Produto escolhido
    • Quantidade
    • Comprador(a)
    • Valor do produto naquele momento
  • Suponha que o cliente pode escolher entre pagar com o Paypal ou Pagseguro.

Restrições

  • A quantidade é obrigatória
  • A quantidade é positiva
  • Precisa ter estoque para realizar a compra

Resultado esperado

  • Caso a pessoa escolha o paypal seu endpoint deve gerar o seguinte redirect(302):
    • Retorne o endereço da seguinte maneira: paypal.com?buyerId={idGeradoDaCompra}&redirectUrl={urlRetornoAppPosPagamento}
  • Caso a pessoa escolha o pagseguro o seu endpoint deve gerar o seguinte redirect(302):
    • Retorne o endereço da seguinte maneira: pagseguro.com?returnId={idGeradoDaCompra}&redirectUrl={urlRetornoAppPosPagamento}
  • Caso aconteça alguma restrição retorne um status 400 informando os problemas. 

Página de detalhes

23 Jul 07:44
Compare
Choose a tag to compare
  • Links para imagens
  • Nome do produto
  • Preço do produto
  • Características do produto
  • Des​crição do produto
  • Média de notas do produto
  • Número total de notas do produto
  • Opiniões sobre o produto
  • Perguntas para aquele produto

Faça uma pergunta

22 Jul 22:42
Compare
Choose a tag to compare

Necessidades

  • A pergunta tem um título
  • Tem instante de criação
  • O usuário que fez a pergunta
  • O produto relacionado a pergunta
  • O vendedor recebe um email com a pergunta nova
  • O email não precisa ser de verdade. Pode ser apenas um print no console do servidor com o corpo.

Restrições

  • O título é obrigatório
  • O produto é obrigatório
  • O usuário é obrigatório

Resultado esperado

  • Uma nova pergunta é criada e é retornada. Status 200
  • Em caso de erro de validação, retorne 400 e o json com erros.

Adicione uma opinião sobre um produto

22 Jul 05:52
Compare
Choose a tag to compare

Necessidades

  • Tem uma nota que vai de 1 a 5
  • Tem um título. Ex: espetacular, horrível...
  • Tem uma descrição
  • O usuário logado que fez a pergunta (aqui pode usar usar o approach de definir um usuário na primeira linha do controller e depois trabalhar com o logado de verdade)
  • O produto que para o qual a pergunta foi direcionada

Restrições

  • A restrição óbvia é que a nota é no mínimo 1 e no máximo 5
  • Título é obrigatório
  • Descrição é obrigatório e tem no máximo 500 caracteres
  • Usuário é obrigatório
  • O produto relacionado é obrigatório

Resultado esperado

  • Uma nova opinião é criada e status 200 é retornado
  • Em caso de erro de validação, retorne 400 e o json com erros.

Usuário logado adiciona imagem no seu produto

21 Jul 18:34
Compare
Choose a tag to compare

Necessidades

  • Adicionar uma ou mais imagens a um determinado produto do próprio usuário

Restrições

  • Tem uma ou mais fotos
  • Só pode adicionar fotos ao produto que pertence ao próprio usuário

Resultado esperado

  • Imagens adicionadas e 200 como retorno
  • Caso dê erro de validação retorne 400 e o json dos erros
  • Caso tente adicionar imagens a um produto que não é seu retorne 403.

Usuário logado cadastra novo produto

20 Jul 15:14
Compare
Choose a tag to compare

Usuário logado cadastra novo produto

Explicação

Vamos permitir o cadastro de um produto por usuário logado.

Necessidades

Restrições

  • Nome é obrigatório
  • Valor é obrigatório e maior que zero
  • Quantidade é obrigatório e >= 0
  • O produto possui pelo menos três características
  • Descrição é obrigatória e tem máximo de 1000 caracteres.
  • A categoria é obrigatória

Resultado esperado

  • Um novo produto criado e status 200 retornado
  • Caso dê erro de validação retorne 400 e o json dos erros

Trabalhando com o usuário logado

17 Jul 15:32
Compare
Choose a tag to compare
4.0

Trabalhando com o usuário logado v1.6

Cadastro de categorias

14 Jul 21:06
Compare
Choose a tag to compare

Cadastro de categorias

Necessidades

No mercado livre você pode criar hierarquias de categorias livres. Ex: Tecnologia -> Celulares -> Smartphones -> Android,Ios etc. Perceba que o sistema precisa ser flexível o suficiente para que essas sequências sejam criadas.

  • Toda categoria tem um nome
  • A categoria pode ter uma categoria mãe

Restrições

  • O nome da categoria é obrigatório
  • O nome da categoria precisa ser único

Resultado esperado

  • Categoria criada e status 200 retornado pelo endpoint.
  • Caso exista erros de validação, o endpoint deve retornar 400 e o json dos erros.

Não podemos ter dois usuários com o mesmo email

14 Jul 15:22
Compare
Choose a tag to compare

Não podemos ter dois usuários com o mesmo email.

Necessidades

  • Só pode existir um usuário com o mesmo email.

Resultado esperado

  • Status 400 informando que não foi possível realizar um cadastro com este email.