Desafio de Estágio em Backend com Node.js: Desenvolvimento de API RESTful de Gerenciamento de Tarefas
Descrição do desafio: Você foi selecionado para participar de um desafio para uma vaga de estágio em desenvolvimento backend com Node.js, e ter conhecimento em TypeScript é um diferencial. Seu objetivo é desenvolver uma API RESTful para gerenciamento de tarefas.
O desafio consiste em seguir as etapas abaixo:
-
Crie uma estrutura de projeto adequada para a API, utilizando Node.js e JavaScript/TypeScript.
-
Implemente as rotas necessárias para realizar as operações básicas de CRUD (Create, Read, Update, Delete) para as tarefas. As rotas devem seguir as melhores práticas de design RESTful.
-
Utilize um banco de dados de sua escolha (por exemplo, SQLite, MySQL, PostgreSQL) para persistir as tarefas. Certifique-se de realizar a conexão correta com o banco de dados.
-
Utilize boas práticas de codificação, como organização do código, nomenclatura adequada de variáveis e funções, uso de padrões de projeto, etc.
Diferencial:
-
Implemente a autenticação e autorização na API, utilizando tokens JWT (JSON Web Tokens). As rotas devem ser protegidas, permitindo apenas usuários autenticados e autorizados a realizar as operações.
-
Escreva testes unitários para as principais funcionalidades da API, utilizando uma biblioteca de testes, como Mocha ou Jest.
-
Implemente validações de entrada nos endpoints, garantindo que os dados enviados pelos clientes estejam corretos e completos.
-
Documente a API, descrevendo todas as rotas disponíveis, seus parâmetros, retornos e exemplos de uso. Utilize uma ferramenta como Swagger ou apidoc para gerar a documentação automaticamente.
-
Compartilhe seu código em um repositório Git e documente o processo de configuração e execução do projeto.
Este desafio permitirá avaliar suas habilidades em desenvolvimento backend com Node.js e TypeScript, incluindo o design e implementação de APIs RESTful, persistência de dados, autenticação e autorização, testes unitários e boas práticas de codificação.
Dica: Você pode utilizar frameworks populares como Express.js ou Nest.js para auxiliar no desenvolvimento da API, além de bibliotecas como TypeORM ou Sequelize para a integração com o banco de dados.
Boa sorte e divirta-se com o desafio!