Backend
Tempo estimado de leitura: 1min
Para interagir com o backend, em geral, é mais indicado utilizar Postman ou Insomnia
Ambas as ferramentas são utilizadas para fazer requisições http; dessa forma, para testar alguma rota especifica do backend, não será necessário, por exemplo, navegar nas telas do frontend até chegar no botão X que faz uma requisição especifica em alguma rota do backend.
Não é necessário, também, ir ao mais "baixo nível" que seria utilizando o comando curl e afins.
Exemplificando:
-
Crie um novo request no Postman

-
Preencha as informações:
url = http://localhost:3000/api/users/
tipo = POST
body = raw, json
{
"user": {
"email": "john@jacob.com",
"password": "johnnyjacob",
"username": "johnjacob"
}
}

Para entender melhor esse request, vamos verificar como está especificada a criação de usuários no backend.
Abra backend/routes/api/users.js(L63-73):

Perceba que user é uma instância da model User:
Em backend/routes/api/users.js(L4)

Para entendermos o que é essa model,
Abra backend/models/Users.js:
Não precisamos nos aprofundar muito, mas, de acordo com o código visto acima, há 3 trechos relevantes:
Schema:

Set Password:

é recomendada a pesquisa sobre
pbkdf2,bcrypt,sha512,salt,pepperno contexto de criptografia :) mas, basicamente trata-se de uma segurança a mais para armazenar as senhas dos usuários dificultando que hackers consigam "adivinhar" a senha dos usuários (seja através de bruteforce ou de "ataques rainbow table")
To Auth Json:

Com isso tudo, podemos inferir bastante sobre o funcionamento do request que fizemos:
A api recebe nosso request (incluindo o corpo de texto [em formato json] com informações de cadastro do usuário), valida se o username, email e password atendem as especificações do Schema (por ex: não podemos cadastrar "abc" como email), a senha é criptografada e, então, o usuário é salvo no banco de dados Mongo;
Caso tudo tenha ocorrido corretamente, o servidor responde o request do usuário mostrando informações básicas de como o usuário foi cadastrado no banco de dados.