Desafio Front-End GOAT

Recursos extras adicionados

  • Máscaras nos campos dos formulários. (Através da lib vue-the-mask).

  • Validações nos campos dos formulários. (Através da lib vee-validate).

  • Biblioteca de UI componentes (Vuetify).

  • Utilizar Vuex para gerenciamento de estado. (Setando um usuario Globalmente após o 'login').

  • Utilizar VueRouter para gerenciamento de rotas. (Controlando cada rota baseado no login do usuário).

  • OBS. Para fazer login usar email cadastrado no tela home e a senha '123456' (Não foi feita nenhum tipo de validação JWT, login apenas para exemplo)

Começando

  • Faça um fork deste repositório.
  • Run npm install para instalar as dependencias do projeto.
  • Run npm run dev para rodar o projeto.
  • Run npm run serve para rodar o JSON server (simulador da API Rest)

Requisitos

  • Desenvolver um projeto de gerenciamento de usuários (CRUD), consumindo dados da API especificada logo abaixo.
    • Listar Usuários: GET /usuarios obtém todos os usuários.
    • Buscar Usuário: GET /usuarios/1 obtém o usuário cujo id é 1.
    • Criar Usuário: POST /usuarios adiciona um usuário à coleção.
    • Editar Usuário: PUT /usuarios/1 edita o usuário cujo id é 1.
    • Excluir Usuário: DELETE /usuarios/1 deleta o usuário cujo id é 1.

Extras (Não obrigatórios, mas será visto como um diferencial)

  • Utilizar máscaras nos campos dos formulários.
  • Utilizar alguma biblioteca de componentes, preferencialmente Vuetify.
  • Utilizar Vuex para gerenciamento de estado.
  • Realizar testes unitários.
  • Caso deseje usar mais de uma página utilizar Vue Router para gerenciamento de rotas.
  • Caso deseje, você pode adicionar dependências ou outros recursos que julgar necessário em seu código.

API a ser consumida (Exemplo)

O JSON abaixo que simula o banco fica localizado no arquivo db.json dentro do projeto, configurado com o JSON server e deve ser utilizado para realizar as requisições do seu projeto.

"usuarios": [
        {
            "id": 1,
            "nome": "Quin Travis",
            "matricula": "2864687",
            "email": "ut.pharetra@goat.com",
            "cpf": "37445653007"
        },
        {
            "id": 2,
            "nome": "Ginger Dominguez",
            "matricula": "7138228",
            "email": "eget@goat.com",
            "cpf": "18384905070"
        },
]

Instruções para entrega

  • O seu projeto deve estar público.
  • Caso tenha usado outros recursos especificar no Readme.
  • Caso você termine antes do prazo final, sinta-se à vontade em enviar com antecedência.

ATENÇÃO: foque em entregar alguma coisa fechada e funcional, Caso não termine tudo a tempo, envie o código assim mesmo, pois o seu trabalho será avaliado até onde você conseguiu fazer.

Desejo um bom teste para você!