Skip to content

Uma API REST que gerencia o login, cria um usuário, autentica a seção com token JWT, refine sua senha, e tem uma rota protegida para realizar as operações de crud de um projeto no mongoDB.

devsp-rocketseat/api-rest-yt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📌 índice

  1. Objetivo do Projeto
  2. Sobre
  3. Tecnologias Utilizadas
  4. Requisitos
  5. Rodar o Projeto
  6. Resultado
  7. Redes Sociais

🎯 Objetivo do Projeto

Uma API REST que gerencia o login, cria um usuário, autentica a seção com token JWT, refine sua senha, e tem uma rota protegida para realizar as operações de crud de um projeto no mongoDB.

📃 Sobre

O projeto foi desenvolvido seguindo uma PlayList do canal da RocketSeat - Série API NodeJS, com o Diego Fernandes ministrando as aulas, foi uma das primeiras API que criei com o Node.js, então a parte de autenticação com JWT e de criptografia com o Bcrypt foram novidades, até o envio de e-mail com Nodemailer, e a utilização do serviço MailTrap que é uma caixa de e-mail fake, para fazer envio de e-mail em ambiente de desenvolvimento, que pra falar a verdade nem sabia que existia esse tipo de serviço, foi um projeto muito interessante e pude obter muito conhecimento com ele.

🚀 Tecnologias Utilizadas

Dependências

⚙️ Requisitos

  • Git (Para clonar, opcional)
  • Node.js
  • Npm (É instalado junto com o Node)
  • MongoDB Local ou MongoDB Atlas
    • caso escolha o MongoDB Atlas, será necessário trocar o link do banco na função connect dentro de src/database/index.js

Arquivos:

  • É necessario criar dois arquivos dentro da pasta src/config.
  • auth.json com o conteúdo:
    • { "secret": "456bc20d374ee2f9db6cb55f87714559" }
    • secret, é o hash da aplicação para gerar o token.
    • vc pode gerar um hash md5 Aqui.
  • mail.json com o conteúdo necessario para criar o transport do Nodemailer:
    • { "host": "oHost", "port": aPorta, "user": "seuUser", "pass": "seuPass" }

▶️ Rodar o Projeto

  • Primeiro passo, clone ou baixe o projeto em sua maquina
  • Abra a pasta do projeto no terminal
  • Instale as dependências com o comando npm i
  • Inicie o servidor com o comando npm start
  • A aplicação estara disponível na porta: 3000

⌨️ Resultado

Rotas para lidar com a autenticação:

    // (POST) --- Rota de registro:
    'http://localhost:3000/auth/register'

    // Objeto usuario:
    {
        "name": "devsp",
        "email": "devsp@teste.com",
        "password": "123456"
    }

    // (POST) --- Rota de autenticação:
    'http://localhost:3000/auth/authenticate'

    // Objeto autenticação:
    {
        "email": "devsp@teste.com",
        "password": "123456"
    }

    // (POST) --- Rota de esqueci a senha:
    'http://localhost:3000/auth/forgot_password'

    // Objeto esqueci a senha:
    {
        "email": "devsp@teste.com",
    }

    // (POST) --- Rota de redefinir senha:
    'http://localhost:3000/auth/reset_password'

    // Objeto redefinir senha:
    {
        "token": "560bd885f4441f485b49ed4c42d0910261a5f053",
        "email": "devsp@teste.com",
        "password": "12345678"
    }

Rotas para lidar com os projetos:

    // (GET) --- Rota para listar todos os projetos:
    'http://localhost:3000/projects'

    // (GET) --- Rota para um projeto:
    'http://localhost:3000/projects/idProjetoAqui'

    // (POST) --- Rota para cadastrar novo projeto:
    'http://localhost:3000/projects'

    // Objeto novo projeto:
    {
        "title": "tarefa 1",
        "description": "descrevendo tarefa",
        "tasks": [{
            "title": "nome da tarefa",
            "assignedTo": "idDoUsuario"
        }]
    }

    // (PUT) --- Rota para editar projeto:
    'http://localhost:3000/projects/idProjetoAqui'

    // Objeto editar projeto:
    {
        "title": "tarefa 1 (Editado)",
        "description": "descrevendo tarefa (Editado)",
        "tasks": [{
            "title": "nome da tarefa (Editado)",
            "assignedTo": "idDoUsuario"
        }]
    }

    // (DELETE) --- Rota para deletar um projeto:
    'http://localhost:3000/projects/idProjetoAqui'

👨‍💻 Redes Sociais


Feito com 💜 por DevSp

About

Uma API REST que gerencia o login, cria um usuário, autentica a seção com token JWT, refine sua senha, e tem uma rota protegida para realizar as operações de crud de um projeto no mongoDB.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published