O desafio consiste em criar uma API REST simples usando Node.js e Express (preferencialmente com Typescript) para manipular uma lista de tarefas. Além disso, é necessário criar um aplicativo de lista de tarefas paginado em React (também preferencialmente com Typescript) que se conecte à API criada.
O projeto está organizado nas seguintes pastas:
- client: Contém o código-fonte do aplicativo React para a lista de tarefas.
- server: Contém o código-fonte da API Node.js e Express para manipulação das tarefas.
A API possui os seguintes endpoints para manipulação das tarefas:
- GET /tasks: Retorna um array de objetos de tarefa no formato JSON. Este endpoint pode receber um
limit
e umoffset
para possibilitar a paginação das tarefas. - POST /tasks: Aceita um objeto de tarefa no corpo da requisição (formato JSON) e adiciona-o ao array de tarefas. Adicione as validações que achar necessárias.
- PATCH /tasks: Aceita um id de uma tarefa e um objeto de tarefa no corpo da requisição (formato JSON) e atualiza a tarefa no array. Adicione as validações que achar necessárias.
- DELETE /tasks: Aceita um id de uma tarefa e remove a tarefa do array. Adicione as validações que achar necessárias.
Utilize o seguinte array de tarefas como exemplo inicial para armazenar os dados em memória:
const tasks = [
{ id: 1, titulo: "Aprender React", concluida: true },
{ id: 2, titulo: "Estudar NodeJS", concluida: false },
{ id: 3, titulo: "Praticar TypeScript", concluida: false },
];
Não é necessário uma conexão com banco de dados. Os dados serão armazenados em memória.
Siga as instruções abaixo para iniciar o projeto:
Antes de iniciar o servidor e o cliente, é necessário instalar as dependências. Certifique-se de estar no diretório raiz do projeto e execute o comando yarn install
em ambos os diretórios:
$ cd client
$ yarn install
$ cd ../server
$ yarn install
Para iniciar o servidor, utilize o comando yarn start:dev
no diretório server:
$ cd server
$ yarn start:dev
Isso iniciará o servidor em modo de desenvolvimento (porta 3333 do localhost).
Para iniciar o cliente, utilize o comando yarn start
no diretório client:
$ cd client
$ yarn start
Isso iniciará o cliente e abrirá a aplicação em seu navegador padrão (porta 3000 do localhost).