Skip to content

william-ribeiro/ignite-nodejs-module-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub language count Repository size GitHub last commit License Commitizen Rocketseat CodeFactor Stargazers

🚧 Formação NodeJS - Modulo 1 🚧

SobreFuncionalidadesRegras de negócioExtrasAutorLicença

💻 Sobre o desafio

🚀 Nesse desafio foi necessário desenvolver uma API para realizar o CRUD de tasks (tarefas) - Link .


⚙️ Funcionalidades

A API deve conter as seguintes funcionalidades:

  • Criação de uma task
  • Listagem de todas as tasks
  • Atualização de uma task pelo id
  • Remover uma task pelo id
  • Marcar pelo id uma task como completa
  • E o verdadeiro desafio: Importação de tasks em massa por um arquivo CSV

🚧 Regras de negocio

Antes das rotas, vamos entender qual a estrutura (propriedades) que uma task deve ter:

  • id - Identificador único de cada task
  • title - Título da task
  • description - Descrição detalhada da task
  • completed_at - Data de quando a task foi concluída. O valor inicial deve ser null
  • created_at - Data de quando a task foi criada.
  • updated_at - Deve ser sempre alterado para a data de quando a task foi atualizada.

Rotas:

  • POST - /tasks Deve ser possível criar uma task no banco de dados, enviando os campos title e description por meio do body da requisição. Ao criar uma task, os campos: id, created_at, updated_at e completed_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 pelo title e description
  • PUT - /tasks/:id Deve ser possível atualizar uma task pelo id. No body da requisição, deve receber somente o title e/ou description para serem atualizados. Se for enviado somente o title, significa que o description não pode ser atualizado e vice-versa. Antes de realizar a atualização, deve ser feito uma validação se o id pertence a uma task salva no banco de dados.
  • DELETE - /tasks/:id Deve ser possível remover uma task pelo id. Antes de realizar a remoção, deve ser feito uma validação se o id pertence a uma task salva no banco de dados.
  • PATCH - /tasks/:id/complete

🚀 Como executar o projeto

Clone este repositório:

git clone git@github.com:william-ribeiro/ignite-nodejs-module-1.git

Acesse a pasta do projeto no terminal/cmd:

cd ignite-nodejs-module-1

Instale as dependencias do projeto com npm

npm install

Se preferir usar yarn ou pnpm

yarn install | pnpm install

Acesse o endpoint para testar a API

http://localhost:4000/

Run in Insomnia


🛠 Extras

E a importação do CSV?

Normalmente em uma API, a importação de um CSV acontece enviando o arquivo pela rota, por meio de outro formato, chamado multipart/form-data.

Como ainda não vimos isso em aula, a importação será feita de outra forma. Acesse a página abaixo para a explicação:

Criação via CSV com Stream

Indo além

Algumas sugestões do que pode ser implementado:

  • Validar se as propriedades title e description das rotas POST e PUT estão presentes no body da requisição.
  • Nas rotas que recebem o /:id, além de validar se o id existe no banco de dados, retornar a requisição com uma mensagem informando que o registro não existe.

🦸 Autor


William Ribeiro
🚀 Portifólio

Linkedin Badge WhatsApp Badge


📝 Licença

Este projeto esta sobe a licença MIT.


About

Desafio do Modulo 1 da Formação NodeJS-Rocketseat

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published