Plandora

 
 

Open Java Source Project Management System

Plan, Track & Manage Projects with Gantt Charts, Agile Boards, Workflow & Integrations via Open Source Java Platform.

What is Plandora?

Plandora is a mature open-source project management system built in Java, designed for enterprise-grade project planning, tracking, and collaboration. It provides comprehensive tools including Gantt charts, agile boards, workflow automation, resource capacity planning, and custom reporting via JasperReports. With built-in support for integrations like JIRA, SVN, and RT4, Plandora enables teams to manage complex projects while maintaining traceability and transparency across departments. Its flexible meta-field system and customizable forms allow organizations to adapt the platform to unique workflows without code changes.

The system emphasizes usability and extensibility, featuring a knowledge base with Google-like search, multi-level project surveys, risk management, and task-based TO-Do lists. Plandora supports both traditional waterfall and agile methodologies through its balanced scorecard, iteration burndown gadgets, and macro-task hierarchies. Since its reboot in 2023, the project has fixed over 30 critical bugs, improved performance, added CSV import/export, and enhanced reporting capabilities—including scheduled report generation and JPG output. Developers can contribute via the [Plandora GitHub](https://github.com/Cynjut/Plandora) repository and extend functionality using its modular architecture and JDBC/DAO patterns.

Previous Next

Getting Started with Plandora

Plandora is a Java-based web application typically deployed on Tomcat or other JEE servers. To get started, clone the source from the [Plandora GitHub](https://github.com/Cynjut/Plandora) repository, ensure Java 8+ and Maven are installed, and build the WAR file using `mvn clean package`. Deploy the generated WAR to your servlet container. The system supports both Tomcat connection pooling and direct JDBC connections (configured in `web.xml`). After initial setup, configure database credentials, SMTP settings, and integrate with external systems like JIRA or SVN. Plandora includes built-in setup wizards for core components like workflows, meta-fields, and user roles to accelerate deployment.

Build & Deploy 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/

Gantt Charts with Calendar Events & Milestones

Plandora’s Gantt chart visualizes project timelines with support for macro tasks, milestones, and calendar events. It dynamically filters resources and tasks, ensuring accurate progress tracking even when resources are assigned or removed. The chart now includes milestone markers and integrates with project calendars to reflect working days and holidays. Users can export Gantt views to CSV, XLS, or JPG formats for reporting and sharing. Performance improvements ensure smooth rendering for large datasets, and the system correctly handles task truncation during MSProject imports. Custom fields and meta-fields can be displayed directly on the Gantt grid, enabling richer context without leaving the timeline view. This makes Plandora ideal for both traditional project managers and hybrid teams using agile-waterfall blends.

Export Gantt Chart to JPG via Scheduled Report

// 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();

JIRA Integration for Issue Import

Plandora includes a dedicated agent to import JIRA issues as Plandora requests, including attachments and metadata. This integration bridges ticketing and project planning, allowing non-technical stakeholders to use RT4 or JIRA while developers manage work in Plandora. The import process preserves issue relationships, priority, assignees, and timestamps. It supports filtering by project, status, or date range and handles large batches efficiently. After import, issues become full-fledged Plandora requests with editable fields, workflow transitions, and task hierarchies. This feature is especially valuable for organizations migrating from JIRA or maintaining dual systems. Developers can extend the agent via configuration or custom plugins to support additional JIRA fields or custom fields.

Import JIRA Issues via Command-Line Agent

// 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();

Resource Capacity Management & Comparison

Plandora’s resource capacity form enables detailed planning and tracking of team availability versus actual usage. It calculates used capacity based on assigned tasks, iterations, and time sheets, with filters for zero/empty values and date ranges. Users can compare estimated vs. used capacity side-by-side to identify over- or under-allocation. The system supports desallocated resources gracefully, fixing DB query errors when members are removed from all projects. Capacity data integrates with Gantt charts and burndown gadgets, enabling realistic sprint and milestone planning. Managers can adjust estimates dynamically, and changes propagate to downstream reports and dashboards. This feature is critical for portfolio-level resource governance and forecasting in multi-project environments.

Filter Resource Capacity by Zero Values

// 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());
    }
}

Workflow Automation & Meta-Field Customization

Plandora’s workflow engine supports customizable approval chains, status transitions, and follow-up comments tied to requests, tasks, and occurrences. The popup workflow interface now displays related request descriptions and full comment history, improving traceability. Meta-fields allow administrators to define custom attributes (e.g., compliance tags, client IDs) for tasks, requests, and projects—including mandatory fields enforced via UI validation. These fields appear in grids, reports, and exports, enabling flexible data modeling without code changes. The system also supports meta-field display in main form grids and CSV imports, ensuring consistency across data entry points. This extensibility makes Plandora suitable for regulated industries and complex organizational structures requiring audit trails and standardized processes.

Define Mandatory Meta-Field 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");
}
 English