8000 GitHub - pdr-tuche/desafio_cangas: šŸŒµ Backend para um blog.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

pdr-tuche/desafio_cangas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Ā 

History

28 Commits
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 

Repository files navigation

desafio_cangas

šŸŒµĆ© o cangas !!!

SumƔrio

Desafio Backend

Linguagem

  • NodeJS

Bibliotecas

  • express
  • jsonwebtoken
  • typeorm (banco de dados a sua escolha)
  • dotenv

DescriĆ§Ć£o:

A aplicaĆ§Ć£o consiste em um blog contendo postagens e comentĆ”rios.

Requisitos

  • 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.

Links:

Rodar Projeto

  1. Instalar dependĆŖncias

    yarn
  2. 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
  1. 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)
  2. 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
  1. Rodar servidor

    yarn dev

Endpoints

User endpoints

/users

  • get all users - GET

  • create user - POST:

    • body:

      {
          "name": "marcely",
          "email": "marcely@example.com",
          "password": "minhasenha"
      }

/users/:id

  • get user by id - GET

  • delete user - DELETE

  • update user - PUT

    • body:

      {
          "id": 2,
          "name": "nome para mudar",
          "email": "emailparamudar@example.com"
      }

/users/:id/updatePassword

  • update password - PUT

    • body:

      {
          "currentPassword": "minhasenha",
          "newPassword": "minhanovasenha",
          "reNewPassword": "minhanovasenha"
      }

/users/recoverPassword/

  • recover password - POST

    • body:

      {
          "email": "meuemail@example.com"
      }
  • serĆ” enviado um email com um link de recuperaĆ§Ć£o de senha

/users/:id/confirmedRecover

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"
      }

Auth endpoints

/login

  • 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

  • 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.

Posts endpoints

/posts

  • 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
      }

/posts/:id

  • 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"
      }

Comentarios endpoints

/comments

  • 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
      }

/comments/:id

  • get comment by id - GET

  • delete comment - DELETE

  • update comment - PUT

    • body:

      {
          "content": "conteudo do comentario"
      }

That's all folks!

That's all folks!

About

šŸŒµ Backend para um blog.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0