Desafio DIO - CI&T - Backend com Java & AWS
Gerenciador de Boards — Aplicação Console (Java + Gradle)
Este projeto implementa um gerenciador de boards de tarefas executado totalmente via terminal.
O usuário pode criar boards, gerenciar colunas, criar cards, mover tarefas, bloquear/desbloquear atividades e obter relatórios. Desenvolvido durante o bootcamp CI&T - Backend com Java & AWS em parceria com a DIO.
- 🧭 Visão Geral
- 📚 Sumário
- ⚙️ Tecnologias Utilizadas
- 🗂️ Estrutura do Board (resumo)
- 🚀 Execução do Projeto
- 💬 Menus e Interações (texto exato usado pelo projeto)
- 🤝 Contribuições
- 🔗 Referências e Créditos
| Tecnologia | Finalidade |
|---|---|
| ☕ Java 25 | Linguagem principal |
| 🧰 Lombok | Redução de boilerplate |
| 🐬 MySQL Connector/J | Driver JDBC para MySQL |
| 🐳 Docker | Containerização do ambiente |
| 🐘 Gradle | Sistema de automação de build |
| 🗄️ Liquibase | Versionamento de banco de dados |
- Board: id, nome, lista ordenada de colunas
- Coluna: id, nome, tipo (INICIAL, PENDENTE, FINAL, CANCELAMENTO), ordem
- Card: id, título, descrição, bloqueado(Boolean), histórico de movimentos
Regras principais (resumidas):
- Um board tem ao menos 3 colunas: INICIAL (primeira), FINAL (penúltima) e CANCELAMENTO (última).
- Apenas 1 coluna de cada tipo especial (INICIAL, FINAL, CANCELAMENTO).
- Cards andam na ordem das colunas e não podem pular etapas. Podem ir direto para CANCELAMENTO.
- Cards bloqueados não se movem; bloqueio/desbloqueio exigem justificativa.
- Java 25+
- Docker & Docker Compose (para MySQL + phpMyAdmin)
- Git
git clone https://github.com/erichiroshi/board-dio.git
cd board-dioNo diretório raiz/ (ou onde está o docker-compose.yml):
docker compose up -dAcesse phpMyAdmin em http://localhost:8081 (credenciais conforme seu docker-compose).
./gradlew clean buildVia Gradle (entrada interativa garantida):
./gradlew runDica: se usar PowerShell, antes execute:
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new() $OutputEncoding = [System.Text.UTF8Encoding]::new() chcp 65001
1 - Criar um novo board
2 - Selecionar um board existente
3 - Excluir um board
4 - Sair
1 - Criar um card
2 - Mover um card
3 - Bloquear um card
4 - Desbloquear um card
5 - Cancelar um card
6 - Ver board
7 - Ver coluna com cards
8 - Ver card
9 - Voltar ao menu anterior
10 - Sair
Contribuições são sempre bem-vindas!
Para contribuir:
- Crie um fork do repositório.
- Crie uma branch de feature:
git checkout -b feature/nova-funcionalidade
- Commit suas mudanças:
git commit -m "feat: nova funcionalidade" - Envie um Pull Request.
📜 Boas práticas
- Adicione testes unitários.
- Documente suas alterações no código.
- Use mensagens de commit seguindo o padrão Conventional Commits.
- Desafio original: digitalinnovationone - DIO
- Desenvolvido por Eric Hiroshi
- Licença: MIT
“Simplicidade, clareza e intenção: a base de qualquer software bem construído.”
