Requisitos do desafio:
-
Criar um sistema que gerencie usuários e perfis. [OK]
-
Usuário possui um perfil; um perfil pode ter vários usuários. [OK]
-
O sistema deverá ter um administrador que crie os usuários e atribua ou modifique os perfis. [OK]
-
O perfil usuário comum apenas visualizará suas próprias informações, podendo editá-las, menos o perfil. [OK]
- Usuario perfil ADMIN pode cadastrar, visualizar qualquer outro. [OK]
- Usuario perfil USER somente visualiza seus dados. [OK]
- Editar informacoes.
- Utilizar no frontend a versão Angular 4+.
- Tela de login. [OK]
- Tela de editar. [OK]
- Utilizar no backend o banco de sua preferência, preferencialmente JAVA 8+ com Spring boot. [OK]
- Utilizei Spring boot com java 17
- Docker: imagem mysql - usando docker-composer
- Favor passar o link do aplicativo funcionando ou instruções para subir a aplicação. [OK]
- Prazo para fazer o desafio 4 dias.
- O que pode melhorar:
- Validar se usuario alterou o proprio email e deslogar.
- Utilizar formBuilder para gerenciar melhor o formulario.
- Alterar authorization de Basic para Bearer utilizando JWT.
- Adicionar mais funcionalidades ao sistema.
- Criar um componente de cabeçalho e remover metodos repetidos (reutilização)
- Usar css para formatar aparência (angular/material já adicionado como dependencia)
Instruções (Backend):
- Clonar ou baixar o codigo de https://github.com/techbrasilia/desafioFullStack.git
- Ter o docker instalado ou usar um container na nuvem e alterar a configuracao de banco "spring.datasource" no arquivo application.properties
- Ter instalado o jdk 17 ou utilizar o intellij (sugestao), para rodar o codigo configurando o projeto para java 17, mavem (Bundled (Maven 3) versao 3.9.8)
- Acessar um terminal para rodar a imagem atraves do arquivo docker-composer executando o comando "docker-compose up" (precisa estar no diretorio raiz do projeto)
- Executar (subir) a aplicacao backend
- Ao subir, o spring cria dois usuários para teste:
- Nome: admin, email: admin@admin.com e senha: admin123 [************]
- Nome: user, email: user@user.com e senha: user123 [************]
- Ao subir, o spring cria dois usuários para teste:
- Caso queira utilizar uma IDE (cliente) para gerenciar o banco de dados pode utilizar o dbeaver, sqldeveloper ou outro de sua preferencia.
- A API normalmente roda no endereco: http://localhost:8080. Caso queira testar a API no Postman siga os passos abaixo:
- Login: http://localhost:8080/api/auth/login - Utilizar POST
- Passar no body um json, exemplo: { "username": "user@user.com", "password":"user123" }
- Passar no authorization os mesmos parametros (caso teste no postman)
- Os outros endpoints possuem validacao de autenticacao, entao o login precisa ser executado com sucesso para os proximos passos
- Cadastro: http://localhost:8080/api/usuarios - Utilizar POST
- Passar no body um json, exemplo: { "nome": "teste 1", "email": "teste4@teste.com", "senha": 1233442, "perfil": { "id": 2 } }
- Consulta por e-mail: http://localhost:8080/api/usuarios/EMAIL Exemplo: http://localhost:8080/api/usuarios/admin@admin.com) Utilizar GET
-
- Inicialmente a consulta era por ID, mas foi alterado porque o email é mais intuitivo, mas endpoint foi apenas comentado no codigo
- Editar: http://localhost:8080/api/usuarios/2 - Utilizar POST
- Passar no body um json, exemplo: { "nome": "User 2 atualizado", "email": "user2@user.com" }
Instruções (Frontend):
- Clonar ou baixar o codigo de https://github.com/techbrasilia/desafioFullStack-frontend.git
- Ter instalado ultima versao do NodeJS, NPM e Angular 17
- No diretorio raiz do projeto executar npm install (para baixar dependencias)
- No mesmo diretorio executar ng serve
- Caso queira utilizar IDE recomendo VS Code, mas pode ser alguma outra de sua preferência.
- Testar aplicacao no browser acessando: http://localhost:4200