Esse desafio faz parte do módulo 1 da trilha de Node.js do Ignite da Rocketseat.
A aplicação é uma API desenvolvida em Node.js para realizar um CRUD de tasks (tarefas). Com a aplicaão é possível criar uma nova tarefa, listar todas as tarefas, atualizar uma tarefa, remover uma tarefa, marcar tarefas como concluídas e importar tasks através de um arquivo .CSV.
- Deve ser possível criar uma task
- Deve ser possível listar todas as tasks
- Deve ser possível listar uma task pelo
id
- Deve ser possível remover uma task pelo
id
- Deve ser possível marcar pelo
id
uma task como completa - Deve ser possível importar tasks em massa por um arquivo CSV
- A estrutura de uma task deve ser:
id
- Identificador único de cada tasktitle
- Título da taskdescription
- Descrição detalhada da taskcompleted_at
- Data que a task foi concluída. O valor inicial deve sernull
created_at
- Data de quando a task foi criadaupdated_at
- Deve ser sempre alterado para a data de quando a task foi atualizada
-
POST - /tasks
- Deve ser possível criar uma task no banco de dados, enviando os campostitle
edescription
por meio dobody
da requisição. Ao criar uma task, os campos:id
,created_at
,updated_at
ecompleted_at
devem ser preenchidos automaticamente, conforme a orientação das propriedades acima. -
GET - /tasks
- Deve ser possível listar todas as tasks salvas no banco de dados. Também deve ser possível realizar uma busca, filtrando as tasks pelotitle
edescription
-
PUT - /tasks/:id
- Deve ser possível atualizar uma task peloid
. Nobody
da requisição, deve receber somente otitle
e/oudescription
para serem atualizados. Se for enviado somente otitle
, significa que odescription
não pode ser atualizado e vice-versa. Antes de realizar a atualização, deve ser feito uma validação se oid
pertence a uma task salva no banco de dados. -
DELETE - /tasks/:id
- Deve ser possível remover uma task peloid
. Antes de realizar a remoção, deve ser feito uma validação se oid
pertence a uma task salva no banco de dados. -
PATCH - /tasks/:id/complete
- Deve ser possível marcar a task como completa ou não. Isso significa que se a task estiver concluída, deve voltar ao seu estado “normal”. Antes da alteração, deve ser feito uma validação se oid
pertence a uma task salva no banco de dados.
Para executar a aplicação siga os seguintes passos:
- Clone e acesse o repositório:
https://github.com/andersondev96/ignite-nodejs2023-desafio01-fundamentos-nodejs
cd ignite-nodejs2023-desafio01-fundamentos-nodejs
- Instale as dependências do projeto:
npm install
- Execute o projeto com o comando:
npm run dev
- O servidor irá rodar na porta
localhost:3333
Este projeto está sob a licença MIT.
Anderson Fernandes Ferreira
Feito com 💚 por Anderson Fernandes 👋 Entre em contato!