A JTech busca identificar profissionais que demonstrem sólido conhecimento nos fundamentos do desenvolvimento backend. Este desafio técnico foi elaborado para avaliar suas competências na construção de APIs RESTful utilizando Java e Spring Boot.
Objetivo: Desenvolver uma API completa para gerenciamento de tarefas (TODO List), aplicando boas práticas de desenvolvimento, arquitetura limpa e documentação técnica de qualidade.
- Criar Tarefa: Endpoint
POST /taskspara adicionar uma nova tarefa. A tarefa deve conter título, descrição e status (ex: "pendente", "concluída"). - Listar Tarefas: Endpoint
GET /taskspara retornar todas as tarefas cadastradas. - Buscar Tarefa por ID: Endpoint
GET /tasks/{id}para obter os detalhes de uma tarefa específica. - Atualizar Tarefa: Endpoint
PUT /tasks/{id}para atualizar o título, a descrição ou o status de uma tarefa. - Deletar Tarefa: Endpoint
DELETE /tasks/{id}para remover uma tarefa do sistema.
- Persistência de Dados: As tarefas devem ser armazenadas em banco de dados. Recomenda-se H2 (em memória) para simplificação ou PostgreSQL para demonstrar conhecimento em bancos relacionais.
- Validação de Dados: Implementar validação robusta das entradas do usuário (ex: título da tarefa obrigatório e não vazio).
- Tratamento de Erros: A API deve retornar códigos de status HTTP apropriados e mensagens de erro claras (ex: 404 para tarefa não encontrada, 400 para dados inválidos).
- Linguagem: Java
- Framework: Spring Boot
- Persistência: Spring Data JPA com Hibernate
- Banco de Dados: H2 (em memória) ou PostgreSQL
- Testes: Testes unitários com JUnit/Mockito.
- Qualidade e Organização do Código: Código limpo, legível e seguindo as convenções do Java.
- Aplicação de Boas Práticas: Utilização de princípios como Clean Code e KISS.
- Funcionalidade: Todos os endpoints devem funcionar conforme especificado.
- Testes Automatizados: Cobertura de testes unitários para as classes de serviço e controllers.
- Uso Adequado da Stack: Configuração correta do Spring Boot, JPA e do banco de dados.
- Modelagem de Dados: Estrutura da entidade
Taskbem definida. - Controle de Versão: Commits claros e lógicos no Git.
- Prazo: Até 3 dias corridos a partir do recebimento.
- Formato: Entregar o código-fonte em um repositório Git, acompanhado de um
README.mdcompleto.
- Visão Geral do Projeto: Breve descrição da API e seus objetivos.
- Stack Utilizada: Lista das tecnologias implementadas.
- Como Rodar Localmente: Instruções para configurar o ambiente, instalar dependências e iniciar o servidor.
- Como Rodar os Testes: Comando para executar os testes.
- Estrutura de Pastas: Explicação da organização do projeto.
- Decisões Técnicas: Justificativas para as escolhas feitas (ex: por que usou H2 em vez de PostgreSQL).
- Melhorias Futuras: Sugestões para evoluir a API.
Boa sorte! A JTech está ansiosa para conhecer sua solução.