Skip to content

MateusLima909/board-task-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 TaskMaster Pro - Kanban Board API

Um gerenciador de tarefas Kanban robusto e eficiente, construído do zero com foco em performance, arquitetura limpa e Java puro.

Java Javalin MySQL Docker Status

📖 Sobre o Projeto

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.

✨ Funcionalidades Principais

  • 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.

📸 Screenshots

Visão Geral do Board Detalhe do Card e Bloqueio
Dashboard Kanban Edição e Bloqueio de Tarefas

🛠️ Tecnologias Utilizadas

  • 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

🚀 Como Rodar o Projeto

Pré-requisitos

  • Java JDK 21+ instalado.
  • Docker e Docker Compose instalados.
  • Maven instalado.

Passo a Passo

  1. Clone o repositório:

    git clone https://github.com/MateusLima909/board-task-manager.git
    cd board-task-manager
  2. Suba o Banco de Dados (Docker):

    docker-compose up -d
  3. Compile o Projeto:

    mvn clean package
  4. Execute a aplicação:

    java -jar target/board-task-manager-1.0-SNAPSHOT.jar
    • Acesse no navegador: http://localhost:8080

🔌 Documentação da API

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" }

👨‍💻 Aprendizados e Desafios

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.

🗺️ Roadmap (Próximos Passos)

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.

🤝 Contribuição

Sugestões de melhoria são muito bem-vindas! Sinta-se à vontade para abrir uma issue ou PR.

📝 Autor

Desenvolvido por Mateus Lima.

About

API Kanban robusta desenvolvida em Java 21 e Javalin. Utiliza JDBC puro (sem ORM/Hibernate) para persistência, focando em alta performance e domínio do SQL nativo.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors