šµĆ© o cangas !!!
- NodeJS
- express
- jsonwebtoken
- typeorm (banco de dados a sua escolha)
- dotenv
A aplicaĆ§Ć£o consiste em um blog contendo postagens e comentĆ”rios.
- A aplicaĆ§Ć£o deve permitir usuĆ”rios executarem as seguintes aƧƵes:
- criar conta (email, senha, dados nĆ£o sensĆveis)
- atualizar dados
- recuperar senha
- efetuar acesso
- criar postagens
- comentar em postagens de outros usuƔrios
- A aplicaĆ§Ć£o deve possuir contagens de interaƧƵes nos posts.
-
Instalar dependĆŖncias
yarn
-
Criar seu banco de dados
-
Se tiver docker em sua mƔquina, hƔ um arquivo
docker-compose.yml
que pode ser utilizado para criar o db.docker compose up
-
Criar arquivo
.env
baseado no arquivo.env.example
:DB_HOST= # <host do db> DB_PORT= # <porta do db> DB_NAME= # <nome do db> DB_USER= # <nome de usuĆ”rio do db> DB_PASSWORD= # <senha do db> PORT= # <porta onde serĆ” iniciado o servidor> JWT_SECRET= # <hash de assinatura do token JWT> EMAIL_SERVICE= # <seu provedor de email (gmail, outlook, ...)> EMAIL_HOST= # <configuraĆ§Ć£o do SMTP do seu provedor> EMAIL_PORT= # <porta por onde seu provedor envia emails> EMAIL_USER= # <endereƧo de email> EMAIL_PASSWORD= # <senha do email (gmail utiliza app password)> BASE_URL= # URL da aplicaĆ§Ć£o + PORT (http://localhost:3001)
-
ApĆ³s criaĆ§Ć£o do db e configuraĆ§Ć£o do
.env
, rodar as migraƧƵes para criar as tabelas no db.yarn migration:run
-
VocĆŖ pode popular seu banco de dados rodando as seeds:
yarn seed:populate
-
Rodar servidor
yarn dev
-
get all users - GET
-
create user - POST:
-
body:
{ "name": "marcely", "email": "marcely@example.com", "password": "minhasenha" }
-
-
get user by id - GET
-
delete user - DELETE
-
update user - PUT
-
body:
{ "id": 2, "name": "nome para mudar", "email": "emailparamudar@example.com" }
-
-
update password - PUT
-
body:
{ "currentPassword": "minhasenha", "newPassword": "minhanovasenha", "reNewPassword": "minhanovasenha" }
-
-
recover password - POST
-
body:
{ "email": "meuemail@example.com" }
-
-
serĆ” enviado um email com um link de recuperaĆ§Ć£o de senha
esta Ʃ o link que chegarƔ no email, Ʃ necessƔrio enviar a nova senha atravƩs do mƩtodo POST
-
confirmed recover - POST
-
body:
{ "newPassword": "minhanovasenha", "reNewPassword": "minhanovasenha" }
-
-
Login - POST
-
body:
{ "email": "meuemail@example.com", "password": "minhasenha" }
-
-
apĆ³s o envio da requisiĆ§Ć£o, a resposta serĆ” as informaƧƵes do usuĆ”rio que estĆ” sendo logado e seu token JWT
-
Verify access token - GET
-
header:
curl -X GET \ -H "Authorization: Bearer SEU_TOKEN_JWT_AQUI" \ URL_DA_API
-
-
ao passar o token pelo header da requisiĆ§Ć£o, serĆ” retornado dados do usuĆ”rio caso o token seja vĆ”lido, assim, confirmando que o usuĆ”rio ainda estĆ” logado.
-
get all posts - GET
-
create post - POST
-
body:
{ "title": "titulo do meu post", // pode ser null "content": "conteĆŗdo do post", "user_id": 2 // id de quem estĆ” postando }
-
-
get post by id - GET
-
delete post - DELETE
-
update post - PUT
-
body:
{ "title": "titulo do meu post", // pode ser null "content": "conteĆŗdo do post" }
-
-
get all comments - GET
-
create comment - POST
-
body:
{ "content": "conteudo do comentario", "post_id": 1, //id do post "user_id": 2 //id de quem estĆ” comentando }
-
-
get comment by id - GET
-
delete comment - DELETE
-
update comment - PUT
-
body:
{ "content": "conteudo do comentario" }
-