Uma aplicação de gerenciamento de tarefas desenvolvida com Spring Boot, Spring Data JPA e H2 Database. Permite criar, listar, atualizar, deletar e filtrar tarefas com status TODO → DOING → DONE, além de oferecer documentação via Swagger. 🖥️
✅ Criar novas tarefas
📋 Listar todas as tarefas
🔄 Atualizar status de tarefas (TODO → DOING → DONE) com validação
🗑️ Deletar tarefas por ID
🔍 Filtrar tarefas por status e/ou prioridade
📖 Documentação interativa via Swagger
🛠️ Estrutura pronta para integração com front-end
⚡ Projeto leve, usando banco em memória H2
⚡ CI automatizado com GitHub Actions: build, testes e artifact jar
- Java 21 ☕
- Spring Boot 4.0.1
- Spring Data JPA
- H2 Database 🗄️
- Bean Validation (JSR 380 / Jakarta)
- Lombok
- Maven ⚙️
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /tasks |
Criar nova tarefa |
| GET | /tasks |
Listar todas as tarefas |
| GET | /tasks/filter |
Filtrar tarefas por status ou prioridade (?status=DOING&priority=HIGH) |
| PUT | /tasks/{id}/status |
Atualizar status de tarefa |
| DELETE | /tasks/{id} |
Deletar tarefa pelo ID |
Criar nova task:
json { "title": "Estudar React", "description": "Estudar fundamentos do React.js", "priority": "HIGH" }
Atualizar status da task:
{ "status": "DOING" }
Exemplo de query para filtro:
GET /tasks/filter?status=DOING&priority=HIGH
🏃 Como rodar localmente:
Clone o repositório:
git clone https://github.com/daniel-dealmeida-dev/taskFlow
cd task-manager Entre na pasta demo e rode com Maven:
cd demo
./mvnw spring-boot:run
mvnw.cmd spring-boot:run
Teste a API via Postman ou outro cliente HTTP:
POST:
GET:
GET com FILTRO:
PUT com FILTRO:
DELETE:
DELETE em algo que não existe:
Acessar Swagger:
Abra no navegador:
http://localhost:8080/swagger-ui.html Você verá todos os endpoints, poderá testar as requisições diretamente pelo Swagger e conferir exemplos de payload. 📖✨
Abra o Swagger em: http://localhost:8080/swagger-ui.html
Veja todos os endpoints e exemplos de payload diretamente no navegador:
Swagger:
🛣️ Próximos Recursos / Roadmap
[ ]Front-end completo com React.js ⚛️
[ ]Deploy do projeto em AWS ou Heroku ☁️
[ ] Persistência de dados em MySQL ou PostgreSQL 🗄️
[✅] Funções de delete de tarefas 🗑️
[ ]Dashboard interativo com gráficos de progresso 📊
[✅] Busca e filtros avançados de tarefas 🔍
[ ]Autenticação e autorização de usuários 🔒
[ ]Notificações de status (email ou push) ✉️🔔
[✅] Maior quantidade de tratamento de erros para fluxos complexos
[ ] Deixar mais fácil de utilizar os filtros
👨💻 Autor
Daniel Almeida
Idade: 18 anos
Focado em Java, estudos de React e Desenvolvimento Full-Stack
Buscando evoluir projetos de backend + frontend