Loading repository data…
Loading repository data…
ailsonguedes / repository
☑️ Task Manager CLI: a solução modular e persistente para gestão de produtividade no terminal. Desenvolvido em Java 17, otimiza seu fluxo de trabalho através do gerenciamento inteligente de tarefas com banco de dados SQLite local, garantindo agilidade e integridade dos dados por meio de uma arquitetura robusta e operações offline.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Gerenciador de Tarefas via Linha de Comando
Organize suas tarefas com simplicidade — construído com Java e Maven.
Sem instalação complexa. Clone e rode:
# 1. Clone o repositório
git clone https://github.com/SEU-USUARIO/taskmanager-cli.git
# 2. Entre no diretório
cd taskmanager-cli
# 3. Compile com Maven
mvn clean compile
# 4. Execute a aplicação
mvn exec:java -Dexec.mainClass="com.taskmanager.App"
$ mvn exec:java -Dexec.mainClass="com.taskmanager.App"
Welcome to the Task Manager!
--- Task Manager Menu ---
1. Create Task
2. List All Tasks
3. Find Task by Id
4. Update Task
5. Update Task Status
6. Delete Task
0. Exit
Select an option: 1
--- New Task ---
Title: Estudar Java
Description: Revisar conceitos de POO
Due Date (YYYY-MM-DD): 2026-01-15
Task created successfully!
Select an option: 2
========== LISTA DE TAREFAS ==========
ID: 1
Titulo: Estudar Java
Descricao: Revisar conceitos de POO
Data Final: 2026-01-15
Status: TO_DO
Select an option: 5
Task Id to update status: 1
--- Update Task Status ---
Current Status: TO_DO
New Status (DONE, IN_PROGRESS, TO DO, CANCELLED): IN_PROGRESS
Task with Id 1 marked as in progress.
Select an option: 3
Task Id to find a task: 1
---> Task found <---
ID: 1
Titulo: Estudar Java
Descricao: Revisar conceitos de POO
Data Final: 2026-01-15
Status: IN_PROGRESS
Select an option: 4
Task Id to update: 1
--- Update Task ---
--- Updating Task 1 ---
Current Data: Estudar Java
Revisar conceitos de POO
2026-01-15
New Title: Estudar Java Avançado
New Descriptin: Revisar POO e Collections
New Due Date (YYYY-MM-DD): 2026-01-20
Task with Id 1 was updated.
Select an option: 0
Exiting Task Manager. Goodbye!
| Feature | Descrição |
|---|---|
| ☕ Pure Java | Construído com Java 17+ e bibliotecas nativas |
| 🟢 Interface Completa | Menu interativo via Scanner com 7 opções (criar, listar, buscar, atualizar, atualizar status, deletar, sair) |
| 🔍 Detecção Automática | Identifica tarefas atrasadas e do dia |
| 🏗️ Arquitetura Modular | Separação clara entre Model, Service e UI |
| 📅 LocalDate API | Manipulação moderna de datas com java.time |
| 🎯 Lombok | Código limpo com anotações @Getter, @Setter |
| 📊 Ordenação Inteligente | Tarefas ordenadas por data de vencimento (mais urgentes primeiro) |
| ✅ Validações | Impede criação de tarefas inválidas (título vazio, data passada) |
| 🔄 Gestão de Status | 4 métodos dedicados para mudar status (Done, WIP, ToDo, Cancelled) |
| 🖥️ Fluxos Guiados | Interface interativa com validação de entrada e feedback claro |
| � Persistência SQLite | Banco de dados local SQLite para armazenar tarefas permanentemente |
| �🔒 Offline | 100% local — nenhum dado sai da sua máquina |
| Recurso | Status | Descrição |
|---|---|---|
| Model Task | ✅ Completo | Entidade com título, descrição, data e status |
| Status Enum | ✅ Completo | TO_DO, WIP, DONE, CANCELLED |
| TaskService Interface | ✅ Completo | Contrato de serviços para gerenciamento de tarefas |
| TaskServiceImpl | ✅ Completo | Implementação dos serviços com lógica de negócio |
| createTask() | ✅ Completo | Cria tarefas com validações (título obrigatório, data válida) |
| getAllTasks() | ✅ Completo | Lista tarefas ordenadas por data de vencimento |
| findById() | ✅ Completo | Buscar tarefa específica por ID (int ou Long) |
| updateTask() | ✅ Completo | Atualizar dados de uma tarefa existente |
| deleteTask() | ✅ Completo | Remover tarefa da lista por ID |
| markAsDone() | ✅ Completo | Marca tarefa como DONE (concluída) por ID |
| markAsWIP() | ✅ Completo | Marca tarefa como WIP (em progresso) por ID |
| markAsToDo() | ✅ Completo | Marca tarefa como TO_DO (a fazer) por ID |
| markAsCancelled() | ✅ Completo | Marca tarefa como CANCELLED (cancelada) por ID |
| showStatus() | ✅ Completo | Exibe dados formatados com alertas automáticos |
| isOverdue() | ✅ Completo | Detecta tarefas atrasadas (exceto concluídas) |
| isDueDate() | ✅ Completo | Detecta tarefas para hoje |
| Testes Unitários | ✅ Completo | 18 testes cobrindo toda lógica da classe Task |
| ID Automático | ✅ Completo | Geração automática de IDs sequenciais |
| Ordenação | ✅ Completo | Tarefas mais urgentes aparecem primeiro |
| DatabaseConfig | ✅ Completo | Configuração de conexão com SQLite e inicialização automática de schema |
| TaskRepository | ✅ Completo | Camada de persistência com operações CRUD no banco de dados |
| Persistência SQLite | ✅ Completo | Integração completa com banco de dados SQLite local |
| Recurso | Status | Descrição |
|---|
| Filtros | 🚧 Planejado | Listar por status, data, prioridade | | Prioridade | 🚧 Planejado | Sistema de alta/média/baixa prioridade |
| Recurso | Status | Descrição |
|---|---|---|
| Tags/Categorias | 💡 Ideia | Organizar tarefas por projetos |
| Notificações | 💡 Ideia | Alertas no sistema operacional |
| Exportação | 💡 Ideia | Exportar tarefas para JSON/CSV |
O projeto segue uma estrutura modular limpa, separando responsabilidades:
taskmanager-cli/
├── data/
│ └── taskmanager.db # Banco de dados SQLite
├── src/
│ ├── main/
│ │ └── java/
│ │ └── com/taskmanager/
│ │ ├── App.java # Ponto de entrada
│ │ ├── config/
│ │ │ └── DatabaseConfig.java # Configuração e inicialização do SQLite
│ │ ├── model/
│ │ │ ├── Task.java # Entidade principal
│ │ │ └── enums/
│ │ │ └── StatusEnum.java # Enum de status
│ │ ├── repository/
│ │ │ └── TaskRepository.java # Camada de persistência com SQLite
│ │ ├── services/
│ │ │ ├── TaskService.java # Interface de serviços
│ │ │ └── impl/
│ │ │ └── TaskServiceImpl.java # Implementação (CRUD)
│ │ └── ui/
│ │ └── UserInterface.java # Interação com usuário
│ └── test/
│ └── java/
│ └── com/taskmanager/
│ ├── AppTest.java # Testes básicos
│ └── model/
│ └── TaskTest.java # 18 testes da Task
└── pom.xml # Dependências Maven
Separação de Responsabilidades:
git clone https://github.com/SEU-USUARIO/taskmanager-cli.git
cd taskmanager-cli
# Compilar
mvn clean compile
# Executar
mvn exec:java -Dexec.mainClass="com.taskmanager.App"
# Rodar testes
mvn test
# Gerar JAR
mvn package
Dependências:
Contribuições são bem-vindas! Sinta-se à vontade para abrir Pull Requests.
git checkout -b feature/nova-funcionalidade)git commit -m 'Adiciona nova funcionalidade')git push origin feature/nova-funcionalidade)Este projeto está sob a licença GLPv3 — veja o arquivo LICENSE para detalhes.
Este é um projeto educacional em desenvolvimento. Funcionalidades estão sendo adicionadas incrementalmente.
🎯 Status Atual: Sistema CRUD 100% funcional com persistência em banco de dados SQLite e interface de usuário completa. Usuários podem criar, listar, buscar, atualizar dados, atualizar status e deletar tarefas através de um menu intuitivo com 7 opções. Todas as operações são persistidas automaticamente no banco de dados local. Sistema robusto com validações, ordenação automática por data de vencimento, detecção de atrasos e alertas. Próximos passos: implementar filtros avançados por status, data e prioridade.