Skip to content

Frasato/To_Do_List_API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

To-Do List API

Uma API RESTful para gerenciar tarefas, desenvolvida com Node.js, Express e Sequelize. A API suporta autenticação com JWT, manipulação de usuários e gerenciamento de tarefas com um banco de dados PostgreSQL.

📋 Sumário


🚀 Tecnologias Utilizadas

Back-End

  • Node.js: Plataforma JavaScript para desenvolvimento do servidor.
  • Express.js: Framework minimalista para criação de APIs.
  • Sequelize: ORM para integração com bancos de dados relacionais.
  • PostgreSQL: Banco de dados utilizado para persistência.
  • JWT (JSON Web Token): Para autenticação e autorização.
  • bcryptjs: Para criptografar senhas.

Justificativas

  • Node.js e Express: Proporcionam alta performance e facilidade no desenvolvimento de APIs.
  • Sequelize: Abstrai operações de banco de dados, reduzindo a complexidade de consultas SQL.
  • PostgreSQL: Banco robusto e confiável, ideal para sistemas relacionais.
  • JWT: Garante segurança na autenticação sem armazenar sessões no servidor.

✅ Pré-requisitos

Antes de começar, você precisará ter instalado em sua máquina:


📦 Instalação

  1. Clone o repositório
    git clone <URL_DO_REPOSITÓRIO>
    cd to-do-list
    
  2. Instale as dependências
    npm install
    
  3. Configure as variáveis de ambiente Crie um arquivo .env na raiz do projeto e adicione as seguintes variáveis:
    DB_NAME=<nome_do_banco>
    DB_USER=<usuario_do_banco>
    DB_PASSWORD=<senha_do_banco>
    DB_HOST=<host_do_banco>
    JWT_SECRET=<chave_secreta_jwt>
    PORT=3000
    
  4. Inicie o servidor
    npm run start
    
  5. Teste a API A API estará rodando em http://localhost:3000

🔗 Rotas/Endpoints

Autenticação:

Registrar Usuário

  • URL: /auth/register
  • Método: POST
  • Body:
    {
      "username": "string",
      "email": "string",
      "password": "string"
    }
  • Resposta:
    {
      "message": "User registered",
      "user": {
        "id": "number",
        "username": "string",
        "email": "string"
      }
    }
    

Login de Usuários:

  • URL: /auth/login
  • Método: POST
  • Body:
    {
      "email": "string",
      "password": "string"
    }
  • Resposta:
    {
      "message": "Success on Login!",
      "token": "string"
    }
    

Tarefas

  • Headers:
    {
      "Authorization": "Bearer <token>"
    }
    

Criar Tarefa:

  • URL: /task
  • Método: POST
  • Body:
    {
      "title": "string",
      "description": "string"
    }
  • Resposta:
    {
      "id": "number",
      "title": "string",
      "description": "string",
      "status": "boolean",
      "userId": "number"
    }
    

Listar Tarefas:

  • URL: /task
  • Método: GET
  • Resposta:
    [
      {
        "id": "number",
        "title": "string",
        "description": "string",
        "status": "boolean",
        "userId": "number"
      }
    ]
    

Atualizar Tarefa:

  • URL: /task/:id
  • Método: PUT
  • Body:
    {
      "title": "string",
      "description": "string",
      "status": "boolean"
    }
  • Resposta:
    {
      "id": "number",
      "title": "string",
      "description": "string",
      "status": "boolean",
      "userId": "number"
    }
    

Deletar Tarefa:

  • URL: /task/:id
  • Método: DELETE
  • Resposta: 204 No Content

📜 Licença

Este projeto está sob a licença ISC. Esse arquivo fornece uma documentação completa com instruções claras para configurar e usar sua API.

Releases

No releases published

Packages

No packages published