Git Product home page Git Product logo

appizza's People

Contributors

jvictorv avatar kjkgustavo avatar poorlydefinedbehaviour avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

appizza's Issues

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.

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.

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

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.

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

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

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 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.

Login Usuário

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

Registrar Usuário

Registrar Usuário

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

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.