Skip to content

Instantly share code, notes, and snippets.

@jenicarvalho
Last active March 10, 2021 23:25
Show Gist options
  • Select an option

  • Save jenicarvalho/1cc50b46f853be12be660b429ce487a4 to your computer and use it in GitHub Desktop.

Select an option

Save jenicarvalho/1cc50b46f853be12be660b429ce487a4 to your computer and use it in GitHub Desktop.

Administrador Site empório

EXEMPLO, APENAS UM EXEMPLO, MEU DEUS, É UM EXEMPLO SÓ NÃO PRECISA SER ASSIM, SIM É UM EXEMPLO

Link do exemplo: https://www.figma.com/file/gBUKJlW0GJGpsNEuUVMa3u/Figma-Admin-Dashboard-UI-Kit-(Community)?node-id=0%3A1

Link do backend:

https://github.com/jenicarvalho/fake-api-emporio

Páginas

  • DESLOGADO

    • login
  • LOGADO

    • Home
      • número de produtos cadastrados
      • número de usuários cadastrados
    • Usuários (apenas administradores acessam)
      • Página para listar todos os usuários (nome e role) com botão para excluir (apenas o administrador pode ver o botão excluir)
      • Página para cadastrar com os campos:
        • name
        • email
        • password
        • role (admin ou editor)
    • Produtos
      • Página para listar todos (nome e preço) com botão para excluir (apenas o administrador pode ver o botão excluir)
      • Página para cadastrar com os campos:
        • title
        • price
        • description
        • image (link da imagem)
  • Crud usuários

    • Com 2 níveis: administrador e editor
  • Crud produtos

Nível administrador

  • Pode cadastrar e excluir qualquer usuário
  • Pode cadastrar e excluir os produtos

Nível editor

  • Pode cadastrar um produto
  • Não pode excluir um produto
  • Não pode ver a página usuários
  • Não pode fazer nada com outros usuários

Seu site emporio deve refletir os produtos cadastrados no administrador

APIs

exemplo de post

{
  "title": "Pack Cerveja Michelob Ultra Light Lager 355ml (6 unidades)",
  "price": "R$ 29,94",
  "description": "Michelob Ultra",
  "image": "https://emporiodacerveja.vtexassets.com/arquivos/ids/179041-1200-auto?width=1200&height=auto&aspect=true"
}

exemplo de post

{
  "email": "[email protected]",
  "password": "123123",
  "name": "Jeniffer",
  "role": "admin" //(ou editor)
}

exemplo de post

{
    "email": "[email protected]",
    "password": "123123"
}

Para pegar informações sobre um usuário logado:

  • Recuperar o token (post na api de login)
  • abrir o token e recuperar o id (usar o react-jwt decodeToken)
  • usar o id para fazer um GET na api de usuários (pegar o sub de dentro do decodeToken e usar ele como id do usuário)
  • armazenar o resultado em um estado global

Login administrador

Login editor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment