- Clone o projeto
cd khipo-desafio-nodejs
docker compose up
e aguarde printar[server]: server running at 0.0.0.0:4000
- Abra a coleção de requisições
Insomnia_2024-05-07.json
no seu Insomnia
Desenvolver uma API para gerenciar um sistema de tarefas e projetos, permitindo que usuários criem projetos e associem tarefas a eles.
- Somente o criador do projeto pode adicionar ou remover membros.
- Tarefas só podem ser criadas por membros do projeto ao qual a tarefa pertence.
- Um usuário só pode ser adicionado a um projeto se ele já estiver registrado na plataforma.
- Tarefas concluídas não podem ser editadas.
- As tarefas precisam ter tags
- Node.js com TypeScript
- PostgreSQL
- Prisma ORM
- Configurar um projeto usando Node.js e TypeScript.
- Configurar um banco de dados PostgreSQL (Local).
- Utilizar o Prisma como ORM.
- ID: ID gerado automaticamente.
- Nome: Texto.
- Email: Texto, único.
- Senha: Texto, encriptada.
- ID: ID gerado automaticamente.
- Nome: Texto.
- Descrição: Texto.
- Membros: Lista de usuários associados ao projeto.
- ID: ID gerado automaticamente.
- Título: Texto, máximo de 255 caracteres.
- Descrição: Texto.
- Data de criação: Data e hora, gerada automaticamente.
- Status: Enum (Pendente, Em andamento, Concluída).
- Projeto: Referência ao projeto ao qual pertence.
- ID: ID gerado automaticamente.
- Título: Texto.
- Tarefa: Referência a tarefa ao qual pertence.
- Implemente validações para garantir a integridade dos dados.
- Responda com mensagens de erro claras e status HTTP apropriados.
- Testes unitários e/ou de integração.
- Documentação com Swagger.
- Paginação nos endpoints.
- Registro de logs.
- Dockerização da aplicação.
- Uso de um linter (como ESLint) e formatador de código (como Prettier).
- Faça um fork deste repositório para sua conta pessoal do GitHub.
- Commit e push suas mudanças para o seu fork.
- Envie um e-mail para [arthur.olga@khipo.com.br] com o link do repositório.
- Estrutura do código e organização.
- Uso adequado das ferramentas e tecnologias.
- Implementação dos requisitos e regras de negócio.
- Design e usabilidade.
- Funcionalidades extras (diferenciais).
Boa sorte com o desafio! Estamos ansiosos para ver sua solução.