Skip to content

peterhfss/node-native-api-tasks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Manager API

Desenvolvimento de uma API REST robusta para gerenciamento de tarefas, construída sem o uso de frameworks (como Express ou Fastify), focando na utilização dos módulos nativos do Node.js.

✨ Funcionalidades

  • CRUD Completo: Gerenciamento do ciclo de vida das tarefas.
  • Atualização de Status: Endpoint específico para marcação de tarefas concluídas.
  • Processamento de Arquivos: Sistema de importação de tarefas via arquivo CSV, aplicando conceitos de Streams para eficiência de memória.

📝 Requisitos

🛠️ Dependências

  • csv-parse — leitura do CSV na importação.

🚀 Instalação

# Clone the repository
git clone https://github.com/peterhfss/node-native-api-tasks.git

cd node-native-api-tasks

# Install dependencies
pnpm install

# Start the server
pnpm run dev

O servidor sobe em http://localhost:3333.

> Importação CSV: ao iniciar, o script src/utils/import-csv.jssrc/assets/tasks-list.csv e envia cada linha como POST /tasks. Ou seja, cada arranque do servidor tende a criar novamente essas tarefas

📡 API Endpoints

Base URL: http://localhost:3000/tasks

Method Endpoint Description
GET /tasks Get all tasks
POST /tasks Create new task
PUT /tasks/:id Update task
PATCH /tasks/:id/complete Toggle task status
DELETE /tasks/:id Delete task

📁 Estrutura do projeto

nodejs-tasks-api/
├── db.json                 # Dados persistidos (JSON)
├── package.json
├── pnpm-lock.yaml
├── README.md
├── .gitignore
└── src/
    ├── server.js           # Servidor HTTP e roteamento
    ├── routes.js           # Definição das rotas e handlers
    ├── database.js         # Camada de persistência (leitura/escrita em db.json)
    ├── middlewares/
    │   └── json.js         # Parse do corpo JSON
    ├── utils/
    │   ├── build-route-path.js
    │   ├── extract-query-params.js
    │   └── import-csv.js   # Importação CSV na subida do servidor
    └── assets/
        └── tasks-list.csv  # Dados de exemplo para importação

⚖️ Licença

Este projeto está sob a licença ISC. Veja o arquivo LICENSE para mais detalhes.

About

API REST para gerenciamento de tarefas desenvolvida exclusivamente com módulos nativos do Node.js. Inclui operações CRUD, atualização de status e importação de dados via arquivos.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors