Olá, candidato! Se você chegou até aqui, é porque demonstrou interesse em fazer parte do nosso time. Preparamos um desafio para entendermos um pouco mais sobre suas habilidades como desenvolvedor backend em Django.
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.
- Django
Olá, candidato! Se você chegou até aqui, é porque demonstrou interesse em fazer parte do nosso time. Preparamos um desafio para entendermos um pouco mais sobre suas habilidades como desenvolvedor backend em Django.
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.
- Django
- PostgreSQL
- Django REST framework
- Django ORM
- Configurar um projeto usando Django.
- Configurar um banco de dados PostgreSQL (Local).
- Utilizar o Django 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.
- Implementar autenticação usando Django Rest Framework com JWT.
- Garantir que somente usuários autenticados possam acessar os endpoints.
- Implementar permissões para garantir que somente o criador do projeto possa adicionar ou remover membros.
- 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 ou DRF-YASG.
- Paginação nos endpoints.
- Registro de logs.
- Dockerização da aplicação.
- Uso de um linter (como Flake8) e formatador de código (como Black).
- 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.