Um gerenciador de tarefas Kanban robusto e eficiente, construído do zero com foco em performance, arquitetura limpa e Java puro.
O TaskMaster Pro é uma aplicação Full Stack que simula um quadro Kanban interativo.
O grande diferencial deste projeto foi a decisão técnica de não utilizar frameworks ORM (como Hibernate ou JPA). Todo a camada de persistência foi construída com JDBC Puro (java.sql).
Isso foi feito intencionalmente para garantir o domínio completo sobre:
- Gerenciamento manual de conexões e pools.
- Mapeamento objeto-relacional (ORM) "na unha".
- Otimização de queries SQL e performance.
- Fluxo Kanban Automático: Colunas geradas e gerenciadas pelo sistema (Inicial, Pendente, Final, Cancelamento).
- Regras de Negócio: Movimentação sequencial obrigatória e validação de status.
- Sistema de Bloqueio: Permite bloquear cards com motivos específicos (ex: "Falta insumo"), impedindo visualmente e logicamente sua movimentação.
- Histórico: Rastreamento de bloqueios e desbloqueios no banco de dados.
- Frontend SPA: Interface moderna, responsiva e sem reloads, consumindo a API via Fetch.
![]() |
![]() |
|---|---|
| Dashboard Kanban | Edição e Bloqueio de Tarefas |
- Linguagem: Java 21
- Framework Web: Javalin (Microframework leve e performático)
- Banco de Dados: MySQL 8
- Persistência: JDBC Puro + Padrão DAO (Data Access Object)
- Infraestrutura: Docker & Docker Compose
- Build Tool: Maven
- Frontend: HTML5, CSS3 (Bootstrap 5), Vanilla JS
- Java JDK 21+ instalado.
- Docker e Docker Compose instalados.
- Maven instalado.
-
Clone o repositório:
git clone https://github.com/MateusLima909/board-task-manager.git cd board-task-manager -
Suba o Banco de Dados (Docker):
docker-compose up -d
-
Compile o Projeto:
mvn clean package
-
Execute a aplicação:
java -jar target/board-task-manager-1.0-SNAPSHOT.jar
- Acesse no navegador:
http://localhost:8080
- Acesse no navegador:
A API segue os princípios RESTful. Abaixo os principais endpoints:
| Método | Rota | Descrição | Exemplo de Body |
|---|---|---|---|
GET |
/boards |
Lista todos os boards | - |
POST |
/boards |
Cria um novo board | { "name": "Projeto X" } |
GET |
/boards/{id} |
Traz estrutura completa do board | - |
DELETE |
/boards/{id} |
Exclui board e cards em cascata | - |
POST |
/boards/{id}/cards |
Cria card na coluna inicial | { "title": "Task 1", "description": "..." } |
POST |
/cards/{id}/move |
Move card p/ próxima coluna | - |
POST |
/cards/{id}/block |
Bloqueia o card | { "reason": "Falta Insumo" } |
POST |
/cards/{id}/unblock |
Desbloqueia o card | { "reason": "Resolvido" } |
Este projeto foi fundamental para consolidar conhecimentos de base do ecossistema Java:
- JDBC vs Frameworks: Entendi a complexidade que o Hibernate abstrai (abrir conexão, criar Statement, iterar ResultSet, tratar SQLException).
- Arquitetura em Camadas: Implementação rigorosa de Controllers (HTTP), Services (Regra de Negócio) e DAOs (Banco).
- DTO Pattern: Uso de Data Transfer Objects para proteger a integridade das entidades do banco.
- Dockerização: Criação de ambiente de desenvolvimento isolado e reprodutível.
O projeto continua evoluindo! Aqui estão as melhorias planejadas:
- UI/UX: Implementar Drag & Drop no Frontend para movimentar os cards visualmente.
- Testes: Adicionar testes unitários com JUnit 5 e Mockito para garantir as regras de negócio.
- Migrations: Integrar o Flyway para versionamento automático do banco de dados (substituindo o script SQL manual).
- Segurança: Implementar autenticação básica ou via Token.
- Documentação: Gerar documentação automática da API via Swagger/OpenAPI.
Sugestões de melhoria são muito bem-vindas! Sinta-se à vontade para abrir uma issue ou PR.
Desenvolvido por Mateus Lima.

