Plandora

 
 

Offenes Java-Quellcode-Projektmanagementsystem

Planen, Verfolgen & Verwalten von Projekten mit Gantt-Diagrammen, agilen Boards, Workflow & Integrationen über die Open-Source-Java-Plattform.

Was ist Plandora?

Plandora ist ein ausgereiftes Open-Source-Projektmanagementsystem, das in Java entwickelt wurde und für projektplanungs‑, verfolgungs‑ und zusammenarbeitsaufgaben auf Unternehmensniveau konzipiert ist. Es bietet umfassende Werkzeuge, darunter Gantt‑Diagramme, agile Boards, Workflow‑Automatisierung, Ressourcen‑Kapazitätsplanung und benutzerdefinierte Berichte über JasperReports. Mit integrierter Unterstützung für Integrationen wie JIRA, SVN und RT4 ermöglicht Plandora Teams, komplexe Projekte zu verwalten und dabei Nachverfolgbarkeit und Transparenz über Abteilungen hinweg zu gewährleisten. Sein flexibles Metafelddesign und anpassbare Formulare erlauben es Organisationen, die Plattform ohne Code‑Änderungen an einzigartige Arbeitsabläufe anzupassen.

Das System legt Wert auf Benutzerfreundlichkeit und Erweiterbarkeit und bietet eine Wissensdatenbank mit Google-ähnlicher Suche, mehrstufigen Projektumfragen, Risikomanagement und auf Aufgaben basierenden To-Do-Listen. Plandora unterstützt sowohl traditionelle Wasserfall- als auch agile Methoden durch seine Balanced Scorecard, Iterations‑Burndown‑Widgets und Makro‑Aufgaben‑Hierarchien. Seit dem Neustart im Jahr 2023 hat das Projekt über 30 kritische Fehler behoben, die Leistung verbessert, CSV‑Import/Export hinzugefügt und die Berichtsfunktionen erweitert – einschließlich geplanter Berichtserstellung und JPG‑Ausgabe. Entwickler können über das [Plandora GitHub](https://github.com/Cynjut/Plandora)-Repository beitragen und die Funktionalität mithilfe seiner modularen Architektur und JDBC/DAO‑Muster erweitern.

Previous Next

Erste Schritte mit Plandora

Plandera ist eine Java-basierte Webanwendung, die typischerweise auf Tomcat oder anderen JEE-Servern bereitgestellt wird. Um zu beginnen, klonen Sie den Quellcode aus dem [Plandora GitHub](https://github.com/Cynjut/Plandora)-Repository, stellen Sie sicher, dass Java 8+ und Maven installiert sind, und bauen Sie die WAR-Datei mit `mvn clean package`. Deployen Sie die erzeugte WAR in Ihren Servlet-Container. Das System unterstützt sowohl Tomcat-Connection-Pooling als auch direkte JDBC-Verbindungen (konfiguriert in `web.xml`). Nach der Erstkonfiguration richten Sie Datenbank-Anmeldeinformationen, SMTP-Einstellungen ein und integrieren externe Systeme wie JIRA oder SVN. Plandora enthält integrierte Einrichtungsassistenten für Kernkomponenten wie Workflows, Meta-Felder und Benutzerrollen, um die Bereitstellung zu beschleunigen.

Erstellen & Bereitstellen von 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-Diagramme mit Kalenderereignissen & Meilensteinen

Das Gantt-Diagramm von Plandora visualisiert Projektzeitpläne und unterstützt Makroaufgaben, Meilensteine und Kalenderereignisse. Es filtert Ressourcen und Aufgaben dynamisch und sorgt für eine genaue Fortschrittsverfolgung, selbst wenn Ressourcen zugewiesen oder entfernt werden. Das Diagramm enthält jetzt Meilenstein-Markierungen und integriert sich in Projektkalender, um Arbeitstage und Feiertage abzubilden. Benutzer können Gantt-Ansichten in die Formate CSV, XLS oder JPG exportieren, um Berichte zu erstellen und zu teilen. Leistungsverbesserungen sorgen für ein reibungsloses Rendern großer Datensätze, und das System verarbeitet die Aufgabenabschneidung bei MSProject-Importen korrekt. Benutzerdefinierte Felder und Metafelder können direkt im Gantt-Raster angezeigt werden, wodurch ein reichhaltigerer Kontext ermöglicht wird, ohne die Zeitlinienansicht zu verlassen. Damit ist Plandora ideal sowohl für traditionelle Projektmanager als auch für hybride Teams, die agile‑Wasserfall‑Mischungen verwenden.

Exportiere Gantt-Diagramm als JPG über geplanten Bericht

// 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 für den Import von Vorgängen

Plandora enthält einen dedizierten Agenten, um JIRA-Issues als Plandora-Anfragen zu importieren, einschließlich Anhängen und Metadaten. Diese Integration verbindet Ticketing und Projektplanung und ermöglicht nicht‑technischen Stakeholdern die Nutzung von RT4 oder JIRA, während Entwickler die Arbeit in Plandora verwalten. Der Importprozess bewahrt Issue‑Beziehungen, Priorität, Zuweisungen und Zeitstempel. Er unterstützt das Filtern nach Projekt, Status oder Datumsbereich und verarbeitet große Chargen effizient. Nach dem Import werden Issues zu vollwertigen Plandora-Anfragen mit editierbaren Feldern, Workflow‑Übergängen und Aufgabenhierarchien. Diese Funktion ist besonders wertvoll für Organisationen, die von JIRA migrieren oder Dualsysteme betreiben. Entwickler können den Agenten über Konfiguration oder benutzerdefinierte Plugins erweitern, um zusätzliche JIRA‑Felder oder benutzerdefinierte Felder zu unterstützen.

JIRA-Issues über Befehlszeilen-Agent importieren

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

Ressourcenkapazitätsverwaltung & Vergleich

Das Ressourcen-Kapazitätsformular von Plandora ermöglicht eine detaillierte Planung und Verfolgung der Teamverfügbarkeit im Vergleich zur tatsächlichen Nutzung. Es berechnet die genutzte Kapazität basierend auf zugewiesenen Aufgaben, Iterationen und Zeiterfassungen, mit Filtern für Null-/Leere-Werte und Datumsbereiche. Benutzer können geschätzte und genutzte Kapazität nebeneinander vergleichen, um Über- oder Unterallokation zu erkennen. Das System unterstützt deallokierte Ressourcen elegant und behebt Datenbankabfragefehler, wenn Mitglieder aus allen Projekten entfernt werden. Kapazitätsdaten werden in Gantt-Diagramme und Burndown-Gadgets integriert, was eine realistische Sprint- und Meilensteinplanung ermöglicht. Manager können Schätzungen dynamisch anpassen, und Änderungen werden an nachgelagerte Berichte und Dashboards weitergegeben. Diese Funktion ist entscheidend für die ressourcenbezogene Governance und Prognose auf Portfolioebene in Multi-Projekt-Umgebungen.

Ressourcenkapazität nach Nullwerten filtern

// 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-Automatisierung & Metafelder-Anpassung

Die Workflow-Engine von Plandora unterstützt anpassbare Genehmigungsketten, Statusübergänge und Nachverfolgungs‑Kommentare, die an Anfragen, Aufgaben und Vorkommnisse gebunden sind. Die Popup‑Workflow‑Oberfläche zeigt jetzt zugehörige Anforderungsbeschreibungen und die vollständige Kommentarhistorie an, was die Rückverfolgbarkeit verbessert. Meta‑Felder ermöglichen Administratoren das Definieren benutzerdefinierter Attribute (z. B. Compliance‑Tags, Kunden‑IDs) für Aufgaben, Anfragen und Projekte – einschließlich obligatorischer Felder, die über UI‑Validierung erzwungen werden. Diese Felder erscheinen in Gittern, Berichten und Exporten und ermöglichen flexibles Datenmodellieren ohne Code‑Änderungen. Das System unterstützt zudem die Anzeige von Meta‑Feldern in Hauptformular‑Gittern und CSV‑Importen, was Konsistenz über alle Dateneingabepunkte hinweg sicherstellt. Diese Erweiterbarkeit macht Plandora geeignet für regulierte Branchen und komplexe Organisationsstrukturen, die Prüfpfade und standardisierte Prozesse benötigen.

Verpflichtendes Metafeld über API definieren

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