Esse é o repositório para o desafio back-end para Tractian.
Alguns tópicos que valem a pena serem apontados:
° Foi adicionado uma integração com a AWS na rota para salvar Asset, enviando um form-data com seu file, que deve ser salvo no S3
° Sistema de segurança com JWT e roles de acesso a certas features do Sistema
° Foi configurado nesse repositório GitHub Actions para CI/CD em uma EC2 da AWS que está rodando a aplicação
° Nesse mesmo repositório você pode encontrar .service para configuração da aplicação como serviço em servidores Linux, assim como a configuração das variáveis de ambientes que devem ser usadas durante a execução da API
Algumas das tecnologias utilizadas foram:
° Express
° Node
° AWS
° JWT
° Systemd
° BCrypt
° Mongoose/MongoDB
° TypeScript
Irei descrever brevente sobre alguns end-points que você pode encontrar no projeto
Login
Login ao sistema
POST /login/
Parâmetro
Tipo
Descrição
login
string
Obrigatório. Login para acessar ao sistema
password
string
Obrigatório. senha para acessar ao sistema
Resposta
Tipo
Descrição
message
string
Messagem com a resposta sobre sua requisição
success
string
Retorna se a requisição foi bem-sucedida
object
string
Seu token JWT
User
Para os end-points referentes as rotas do user não é necessário passar seu token de acesso retornado ao login
Cria um usuário
POST /user/
Parâmetro
Tipo
Descrição
login
string
Obrigatório. Seu login será usado para se logar ao sistema
password
string
Obrigatório. Sua senha que será utilizada para logar ao sistema
company
string
Obrigatório. Código da company que ele deve ser atrelado
permission
["CREATE", "READ", "WRITE", "DELETE"]
Obrigatório. Seu usuário deve até pelo menos uma permissão ao sistema
Retorna todos usuários
GET /user/
Descrição
Retorna todos usuários
Retorna usuários pelo id
GET /user/${id}
Parâmetro
Tipo
Descrição
id
string
Obrigatório. O ID do usuário que você quer
Atualiza um usuário
PATCH /user/${id}
Parâmetro
Tipo
Descrição
id
string
Obrigatório. ID usuário para ser atualizado
Parâmetro
Tipo
Descrição
password
string
Obrigatório. A nova senha para seu usuário
company
string
Obrigatório. A company para seu usuário
permission
["CREATE", "READ", "WRITE", "DELETE"]
Obrigatório. A nova lista de permissões para seu usuário