Git Product home page Git Product logo

appizza's Issues

Resolver para cupons de desconto

Criar um resolver para coupons.
A entity usada para coupons esta em Entities/Coupon

Como funciona a lógica dos coupons:

O administrador cria um coupon com um código customizado(Exemplo HELLOWORLD123),
o cupom começa a ser valido a partir de uma data e deixa de ser a partir de outra.

O usuário usa o cupom na hora de fechar a compra.

No momento todos os coupons não tem uma limite de uso, as datas determinam se é valido.
Talvez seja legal adicionar um campo no banco com um limite de uso.

Exemplo:
O administrador cria um coupon HELLOWORLD123 com um limite de uso 10.
Após ser usado 10 vezes o coupon não pode mais ser usado.

O que esse resolver deve ter:

  • Mutations:

    • Criar um cupom(Somente adm pode criar)
    • Deletar um cupom(Somente adm pode deletar)
  • Queries:

    • Listar cupoms (Somente adm pode listar)

Não esquecer de adicionar validação no que o user enviar(Checar como foi feito no resolver de Users).

Recomendo usar um middleware para bloquear as mutations para somente administradores.

Resolver para products

Criar um resolver para products;

A entidade usada para products está na pasta Entities/Product

  • Mutations

    • Somente administradores
      • Criar um product
      • Atualizar um product
      • Apagar um product
  • Queries

    • Todos os usuários
      • Listar products
      • Listar products que estão em certas categorias
      • Listar products por palavra chave
      • Mostrar um product por id

Products são as pizzas nesse caso, precisa criar as categorias e ai criar um product(a pizza) e relacionar ela com a categoria.

Resolver para recuperação de senha

Criar um resolver para recuperação de senha.

Imaginei o fluxo de recuperação assim:

  1. User faz uma mutation para um resolver que envia um email com um token para ele.

  2. O usuário abre o email, pega o token, coloca no app(Tela de recuperar senha).

  3. User faz uma mutation(da tela de recuperar senha) enviando o token com a senha nova.

  4. Backend da update no user com a senha nova se o token for valido e invalida o token após alterar a senha.

Precisa criar um tipo de token novo no enum TokenType em Entities/Token.

Worker que envia emails

Fazer um worker que envia os emails de recuperação de senha.

A ideia é rodar o worker separado do server, o worker deve usar algum tipo de queue.
Pode criar uma pasta worker na raiz do projeto e fazer la.

Se fizer desse jeito fica assim:

app/
server/
worker/

Ler a issue #22 para entender melhor o fluxo de recuperação de senha.

Crud cupons de desconto

  • Como administrador do app quero ser capaz de:

    • Criar um novo cupom de desconto com código customizado(exemplo: HELLOWORLD123)
    • Deletar um cupom de desconto
    • Atualizar um cupom de desconto
    • Listar um ou mais cupons de desconto
  • Como usuário do app quero ser capaz de:

    • Utilizar um cupom de desconto

Crud pizzas

  • Como administrador do app quero ser capaz de:

    • Listar uma ou todas as pizzas que estão disponíveis
    • Adicionar mais uma pizza
    • Atualizar as informações de uma pizza
    • Deletar uma ou mais pizzas
  • Como usuário do app quero ser capaz de:

    • Listar todas as pizzas que estão disponíveis

Resolver para categories

Criar um resolver para categories.

A entity para categories esta na pasta Entities/Category.

  • Mutations
    • Apenas administrador
      • Criar uma category
      • Dar update em uma category
      • Deletar uma category
  • Queries
    • Todos os usuários
      • Listar categories

Fazer a validação dos dados nas mutations(A validação feita no resolver de Users pode ser usada como referência).

Cada produto estará relacionado com uma categoria.

Exemplo:
Criar uma categoria A.
Criar um produto B.

Produto B está na categoria A.

Assim é possível procurar todos os produtos(pizzas) por categoria.

Pagamentos

  • Como administrador do app quero ser capaz de:

    • Ver todos os pagamentos feitos
  • Como usuário do app quero ser capaz de:

    • Fazer pagamentos

Registrar Usuário

Registrar Usuário

  • Como um usuário quero ser capaz de:
    • Criar uma conta com um email e uma senha

Login Usuário

  • Como um usuário quero ser capaz de:
    • Fazer login com meu email e senha após registrar uma conta.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.