Coder Social home page Coder Social logo

esdrasoliveira5 / to-do-list-backend Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 134 KB

Api para gerenciar um banco de dados de usuários e tarefas salvas.

Home Page: https://to-do-list-back-end-3456.herokuapp.com/

JavaScript 98.91% Dockerfile 0.59% Shell 0.49%
api-restfull nodejs javascript postgresql

to-do-list-backend's Introduction

to-do list backend Api

Sumário


Descrição

Objetivo: O objetivo dessa aplicação, é manipular um banco de dados. Os conhecimentos aplicados foram:

  • Arquitetura REST;
  • Autenticações e Permissões com JWT;
  • Modelagem de Dados e Migrations;
  • Banco de Dados SQL (PostgreSQL);
  • Uso de containers (Docker).

Pré-requisitos

  • docker
  • npm version 6.14.13
  • node version 14.17.0
  • Um banco de dados postgreSQL

Instalação

  • Clone o repositório
      git clone [email protected]:esdrasoliveira5/to-do-list-backend.git
  • Vá para a pasta da aplicação
      cd to-do-list-backend
  • Configure o arquivo .env (use o arquivo .env.example como guia)

Instruções para iniciar o projeto


  • Comando para iniciar
      docker image build -t todobackend .
    
  • Comando para inserir as tabelas no banco de dados
      npx sequelize db:migrate   
    
  • Comando para inserir as categorias na tabela
      npx sequelize db:seed:all

Documentação


Verifica o estado da Api

GET /

Esse endpoint verifica se a Api esta online e retorna um objeto com a mensagem Api to-do list online!!

  • Exemplo response body
      {
          "message": "Api to-do list online!!"
      }

Registrar usuário

POST /user

Esse endpoint registra um usuário e retorna um objeto com a menssagem.

  • Exemplo request body

      {
          "name": "name",
          "lastName": "lastname",
          "email": "[email protected]",
          "password": "12345678"
      }
  • Exemplo response body

      {
        "message": "User created"
      }

Login

POST /login

Esse endpoint valida o login do usuário e retorna um objeto com o id do usuario e o token de acesso dele.

  • Exemplo request body

      {
          "email": "[email protected]",
          "password": "12345678"
      }
  • Exemplo response body

      {
          "userId": 26,
          "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoiZXhlbXBsZUBlbWFpbC5jb20iLCJpYXQiOjE2NDUxNDI0NzksImV4cCI6MTY0NTc0NzI3OX0.sRZtnLnkGYHjhFBXJISTcX41QbvpGxll-wUnU-kGxyE"
      }

Lista um usuário

GET /user/:id

Esse endpoint busca um usuario cadastrado pelo id.

  • Exemplo request headers

    {
      "Authorization": "(Bearer Token)"
    }
  • Exemplo response body

      {
          "id": 26,
          "name": "name",
          "lastName": "lastname",
          "email": "[email protected]",
          "password": "12345678",
          "created": "2022-02-17T23:53:25.727Z",
          "tasks": []
      }

Editar um usuário

PUT /user/:id

Esse endpoint atualiza um usuario com o ID fornecido na rota e retorna um objeto com os dados atualizados.

Obs: Apenas o usuário que criou o usuario pode atualizar.

  • Exemplo request headers

        {
          "Authorization": "(Bearer Token)"
        }
  • Exemplo request body

      {
          "name": "name",
          "lastName": "lastname",
          "password": "12345678"
      }
  • Exemplo response body

      {
          "name": "name",
          "lastName": "lastname",
          "password": "12345678"
      }

Deleta um usuário

DELETE /user/:id

Esse endpoint deleta um usuario com o ID fornecido na rota e retorna um objeto com a mensagem User deleted.

Obs: Apenas o usuário que criou o usuario pode deletar.

  • Exemplo request headers

      {
        "Authorization": "(Bearer Token)"
      }
  • Exemplo response body

      {
          "message": "User deleted"
      }

Cria uma tarefa

POST /tasks

Esse endpoint cria uma tarefa e retorna um objeto com a tarefa criada.

  • Exemplo request headers

      {
        "Authorization": "(Bearer Token)"
      }
  • Exemplo request body

      {
          "title": "title exemple",
          "description": "description exemple",
          "priority": "Alta",
          "dateLimit": "2022-10-02"
      }
  • Exemplo response body

      {
          "id": 71,
          "title": "title exemple",
          "description": "description exemple",
          "priority": "Alta",
          "dateLimit": "2022-10-02",
          "userId": 26,
          "created": "2022-02-18T00:44:02.803Z",
          "categoryId": 1
      }

Lista todas as tarefas criadas

GET /tasks

Esse endpoint retorna todas as tarefas relacionadas a um usuario.

Obs: Apenas o usuario que criou as tarefas pode pegar as tarefas.

  • Exemplo request headers

      {
        "Authorization": "(Bearer Token)"
      }
  • Exemplo response body

      [
          {
              "id": 71,
              "title": "title exemple",
              "description": "description exemple",
              "priority": "Alta",
              "dateLimit": "2022-10-02",
              "userId": 26,
              "created": "2022-02-18T00:44:02.803Z",
              "categoryId": 1,
              "categories": {
                  "id": 1,
                  "name": "Não iniciado"
              }
          }
      ]

Lista uma tarefa especifica

POST /tasks/:id

Esse endpoint retorna uma terefa relacionada ao ID passado na rota.

Obs: Apenas o usuário que criou a tarefa pode pegá-la .

  • Exemplo request headers
      {
        "Authorization": "(Bearer Token)"
      }
  • Exemplo response body
        {
            "id": 71,
            "title": "title exemple",
            "description": "description exemple",
            "priority": "Alta",
            "dateLimit": "2022-10-02",
            "userId": 26,
            "created": "2022-02-18T00:44:02.803Z",
            "categoryId": 1,
            "categories": {
                "id": 1,
                "name": "Não iniciado"
            }
        }

Listar todas as tarefas de acordo com a categoria

GET tasks/category/:id

Esse endpoint retorna todas as tarefas criadas pelo usuário relacionadas ao ID da categoria passado na rota.

Obs: Apenas o usuário que criou as tarefas pode visualizar.

  • Exemplo request headers
      {
        "Authorization": "(Bearer Token)"
      }
  • Exemplo response body
      [
          {
              "id": 71,
              "title": "title exemple",
              "description": "description exemple",
              "priority": "Alta",
              "dateLimit": "2022-10-02",
              "userId": 26,
              "created": "2022-02-18T00:44:02.803Z",
              "categoryId": 1,
              "categories": {
                  "id": 1,
                  "name": "Não iniciado"
              }
          }
      ]

Atualizar uma tarefa

PUT /tasks/:id

Esse endpoint é responsável por atualizar uma tarefa com o ID fornecido na rota e retorna um objeto com as informacoes atualizadas.

Obs: Apenas o usuário que criou as tarefas pode atualizar.

  • Exemplo request headers

      {
        "Authorization": "(Bearer Token)"
      }
  • Exemplo request body

      {
          "title": "title exemple",
          "description": "description exemple",
          "priority": "Baixa",
          "dateLimit": "2022-10-02"
      }
  • Exemplo response body

      {
          "title": "title exemple",
          "description": "description exemple",
          "priority": "baixa",
          "dateLimit": "2022-10-02"
      }

Atualizar a categoria de uma tarefa

PUT /category/:id

Esse endpoint é responsável por atualizar a categoria de uma tarefa com o ID fornecido na rota e retorna um objeto com a mensagem Task updated.

Obs: Apenas o usuário que criou as tarefas pode atualizar.

  • Exemplo request headers

      {
        "Authorization": "(Bearer Token)"
      }
  • Exemplo request body

      {
          "categoryId": 1,
      }
  • Exemplo response body

      {
          "message": "Task updated"
      }

Deletar uma tarefa

DELETE /tasks/:id

Esse endpoint é responsável por deletar uma tarefa com o ID fornecido na rota e retorna um objeto com a mensagem Task deleted.

Obs: Apenas o usuário que criou a tarefa pode deletar.

  • Exemplo request headers

      {
        "Authorization": "(Bearer Token)"
      }
  • Exemplo response body

      {
          "message": "Task deleted"
      }

to-do-list-backend's People

Contributors

esdrasoliveira5 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.