Bem-vindo ao repositório do Teste Técnico para a posição de Desenvolvedor(a) Backend. Este projeto foi desenvolvido utilizando Node.js, TypeScript e NestJS, conforme as especificações fornecidas, com o objetivo de demonstrar habilidades em desenvolvimento backend.
- Objetivo
- Tecnologias Utilizadas
- Instalação e Configuração
- Endpoints Implementados
- Diferenciais Implementados
- Considerações Finais
- Autor
Avaliar a capacidade de escrever código limpo, escalável e bem estruturado, atendendo aos requisitos especificados para a criação de endpoints de usuários e tutoriais.
-
Clonar o repositório:
git clone https://github.com/seu-usuario/nome-do-repositorio.git cd nome-do-repositorio -
Instalar as dependências:
npm install
-
Configurar variáveis de ambiente:
Crie um arquivo
.envna raiz do projeto e defina as variáveis necessárias, conforme o exemplo em.env.example. -
Executar a aplicação:
Modo desenvolvimento:
npm run start:dev
Utilizando Docker:
docker-compose up
- Método: POST
- Rota: /user/signup
- Descrição: Cria um novo usuário.
- Método: POST
- Rota: /user/login
- Descrição: Realiza o login do usuário e retorna um token de autenticação.
- Método: GET
- Rota: /tutorial
- Descrição: Retorna uma lista de tutoriais com filtros por título e data, paginação e uso de cache.
- Método: POST
- Rota: /tutorial
- Descrição: Adiciona um novo tutorial.
- Método: PATCH
- Rota: /tutorial/{id}
- Descrição: Atualiza um tutorial existente com base no ID.
- Método: DELETE
- Rota: /tutorial/{id}
- Descrição: Remove um tutorial existente com base no ID.
- Manutenibilidade do Código: Estrutura modularizada, seguindo princípios SOLID e utilizando Design Patterns adequados.
- Uso de Docker: Configuração de containers para facilitar a implantação e execução da aplicação.
- Documentação: Código bem documentado, facilitando a compreensão e manutenção.
- Cobertura de Testes: Implementação de testes unitários e de integração para garantir a qualidade do código.
- Modelagem de Dados: Estrutura de dados planejada para atender aos requisitos funcionais e não funcionais.
- Segurança: Implementação de práticas de segurança, como criptografia de senhas e validação de entradas.
- Tratamento de Erros: Mecanismos para captura e tratamento adequado de exceções e erros.
- Arquitetura: Estrutura modularizada, com camadas de serviço e repositório desacopladas, facilitando a escalabilidade e manutenção.
Este projeto foi desenvolvido com o intuito de demonstrar habilidades em desenvolvimento backend, seguindo as melhores práticas de mercado e atendendo aos requisitos especificados no teste técnico.
Katryel Menezes