Plandora

 
 

Sistema de Gerenciamento de Projetos Java de Código Aberto

Planeje, Acompanhe e Gerencie Projetos com Gráficos de Gantt, Quadros Ágeis, Fluxo de Trabalho e Integrações via Plataforma Java de Código Aberto.

O que é o Plandora?

Plandora é um sistema de gerenciamento de projetos de código aberto maduro, desenvolvido em Java, projetado para planejamento, acompanhamento e colaboração de projetos em nível empresarial. Ele oferece ferramentas abrangentes, incluindo gráficos de Gantt, quadros ágeis, automação de fluxos de trabalho, planejamento de capacidade de recursos e relatórios personalizados via JasperReports. Com suporte integrado para integrações como JIRA, SVN e RT4, o Plandora permite que equipes gerenciem projetos complexos mantendo rastreabilidade e transparência entre departamentos. Seu sistema flexível de meta-campos e formulários personalizáveis permitem que as organizações adaptem a plataforma a fluxos de trabalho únicos sem alterações de código.

O sistema enfatiza usabilidade e extensibilidade, apresentando uma base de conhecimento com busca semelhante ao Google, pesquisas de projetos em múltiplos níveis, gerenciamento de riscos e listas de tarefas baseadas em TO-Do. O Plandora suporta tanto metodologias tradicionais em cascata quanto ágeis por meio de seu balanced scorecard, gadgets de burndown de iteração e hierarquias de macro-tarefas. Desde sua reinicialização em 2023, o projeto corrigiu mais de 30 bugs críticos, melhorou o desempenho, adicionou importação/exportação CSV e aprimorou as capacidades de relatório — incluindo geração de relatórios agendados e saída JPG. Desenvolvedores podem contribuir via o repositório [Plandora GitHub](https://github.com/Cynjut/Plandora) e estender a funcionalidade usando sua arquitetura modular e padrões JDBC/DAO.

Previous Next

Iniciando com o Plandora

Plandora é uma aplicação web baseada em Java tipicamente implantada no Tomcat ou em outros servidores JEE. Para começar, clone o código-fonte do repositório [Plandora GitHub](https://github.com/Cynjut/Plandora), certifique-se de que Java 8+ e Maven estejam instalados e construa o arquivo WAR usando `mvn clean package`. Implante o WAR gerado no seu contêiner servlet. O sistema suporta tanto o pool de conexões do Tomcat quanto conexões JDBC diretas (configuradas em `web.xml`). Após a configuração inicial, configure as credenciais do banco de dados, as configurações de SMTP e integre com sistemas externos como JIRA ou SVN. O Plandora inclui assistentes de configuração incorporados para componentes principais como fluxos de trabalho, meta-campos e papéis de usuário para acelerar a implantação.

Compilar e Implantar o Plandora via Maven

# Clone the repository
git clone https://github.com/Cynjut/Plandora.git
cd Plandora

# Build the WAR file
mvn clean package

# Deploy to Tomcat
cp target/plandora.war $TOMCAT_HOME/webapps/

Gráficos de Gantt com Eventos de Calendário e Marcos

O gráfico de Gantt do Plandora visualiza cronogramas de projetos com suporte para macro tarefas, marcos e eventos de calendário. Ele filtra dinamicamente recursos e tarefas, garantindo o acompanhamento preciso do progresso mesmo quando recursos são atribuídos ou removidos. O gráfico agora inclui marcadores de marcos e integra-se aos calendários de projetos para refletir dias úteis e feriados. Usuários podem exportar visualizações de Gantt para formatos CSV, XLS ou JPG para relatórios e compartilhamento. Melhorias de desempenho garantem renderização suave para grandes conjuntos de dados, e o sistema lida corretamente com o truncamento de tarefas durante importações do MSProject. Campos personalizados e meta‑campos podem ser exibidos diretamente na grade de Gantt, proporcionando um contexto mais rico sem sair da visualização da linha do tempo. Isso torna o Plandora ideal tanto para gerentes de projeto tradicionais quanto para equipes híbridas que utilizam combinações ágil‑cascata.

Exportar Gráfico de Gantt para JPG via Relatório Agendado

// Use Report2File agent to schedule Gantt export
Report2File report = new Report2File();
report.setReportName("ProjectGantt");
report.setOutputFormat("jpg");
report.setSchedule("0 0 2 * * ?"); // Daily at 2 AM
report.setFilePath("/reports/gantt/");
report.execute();

Integração do JIRA para Importação de Issues

O Plandora inclui um agente dedicado para importar questões do JIRA como solicitações do Plandora, incluindo anexos e metadados. Essa integração conecta o sistema de tickets e o planejamento de projetos, permitindo que partes interessadas não técnicas usem o RT4 ou o JIRA enquanto os desenvolvedores gerenciam o trabalho no Plandora. O processo de importação preserva relacionamentos das questões, prioridade, responsáveis e carimbos de tempo. Ele suporta filtragem por projeto, status ou intervalo de datas e lida eficientemente com grandes lotes. Após a importação, as questões se tornam solicitações completas do Plandora com campos editáveis, transições de fluxo de trabalho e hierarquias de tarefas. Esse recurso é especialmente valioso para organizações que migram do JIRA ou mantêm sistemas duplos. Os desenvolvedores podem estender o agente via configuração ou plugins personalizados para suportar campos adicionais do JIRA ou campos personalizados.

Importar Issues do JIRA via Agente de Linha de Comando

// Example agent invocation (simplified)
JiraImporter importer = new JiraImporter();
importer.setJiraUrl("https://jira.example.com");
importer.setUsername("api_user");
importer.setPassword("token");
importer.setProjectKey("PROJ");
importer.setIssueFilter("status = 'Done'");
importer.setImportAttachments(true);
importer.execute();

Gerenciamento de Capacidade de Recursos e Comparação

O formulário de capacidade de recursos do Plandora permite planejamento detalhado e acompanhamento da disponibilidade da equipe em relação ao uso real. Ele calcula a capacidade utilizada com base em tarefas atribuídas, iterações e planilhas de tempo, com filtros para valores zero/vazios e intervalos de datas. Os usuários podem comparar a capacidade estimada e a utilizada lado a lado para identificar superalocação ou subalocação. O sistema suporta recursos desalocados de forma elegante, corrigindo erros de consulta ao banco de dados quando membros são removidos de todos os projetos. Os dados de capacidade se integram com gráficos de Gantt e gadgets de burndown, permitindo um planejamento realista de sprints e marcos. Os gerentes podem ajustar as estimativas dinamicamente, e as alterações se propagam para relatórios e dashboards subsequentes. Esse recurso é crítico para a governança e previsão de recursos em nível de portfólio em ambientes de múltiplos projetos.

Filtrar Capacidade de Recursos por Valores Zero

// Pseudo-code for capacity filtering logic
ResourceCapacityFilter filter = new ResourceCapacityFilter();
filter.setProjectId(projectId);
filter.setShowZeroValues(true);
filter.setCompareEstimates(true);

List entries = capacityService.getFilteredCapacities(filter);
for (CapacityEntry entry : entries) {
    if (entry.getUsed() == 0) {
        System.out.println("Unused capacity: " + entry.getResourceName());
    }
}

Automação de Fluxo de Trabalho e Personalização de Metacampos

O motor de fluxo de trabalho do Plandora suporta cadeias de aprovação personalizáveis, transições de status e comentários de acompanhamento vinculados a solicitações, tarefas e ocorrências. A interface de fluxo de trabalho em pop‑up agora exibe descrições de solicitações relacionadas e o histórico completo de comentários, melhorando a rastreabilidade. Metacampos permitem que administradores definam atributos personalizados (por exemplo, tags de conformidade, IDs de cliente) para tarefas, solicitações e projetos — incluindo campos obrigatórios aplicados via validação da UI. Esses campos aparecem em grades, relatórios e exportações, possibilitando modelagem de dados flexível sem alterações de código. O sistema também suporta a exibição de metacampos nas grades do formulário principal e importações CSV, garantindo consistência em todos os pontos de entrada de dados. Essa extensibilidade torna o Plandora adequado para indústrias reguladas e estruturas organizacionais complexas que exigem trilhas de auditoria e processos padronizados.

Definir Meta-Campo Obrigatório via API

// Example: Mark meta-field as mandatory
MetaField field = metaFieldService.findById("client_id");
field.setIsMandatory(true);
field.setValidationRegex("^[A-Z]{3}[0-9]{4}$");
metaFieldService.update(field);

// Validation enforced in forms and imports
if (request.getClientId() == null || request.getClientId().isEmpty()) {
    throw new ValidationException("Client ID is required");
}
 Português