
Plandora
Open Java open source systém pro řízení projektů
Plánujte, sledujte a spravujte projekty s Ganttovými diagramy, agilními tabulemi, workflow a integracemi pomocí open source Java platformy.
Co je Plandora?
Plandora je vyspělý open‑source systém pro řízení projektů postavený v Javě, navržený pro podnikovou úroveň plánování projektů, sledování a spolupráci. Poskytuje komplexní nástroje včetně Ganttových diagramů, agilních tabulí, automatizace pracovních toků, plánování kapacity zdrojů a vlastního reportování pomocí JasperReports. S vestavěnou podporou integrací jako JIRA, SVN a RT4 umožňuje Plandora týmům řídit složité projekty při zachování sledovatelnosti a transparentnosti napříč odděleními. Jeho flexibilní systém meta‑polí a přizpůsobitelné formuláře umožňují organizacím přizpůsobit platformu unikátním pracovním postupům bez změn kódu.
Systém klade důraz na použitelnost a rozšiřitelnost, nabízí znalostní bázi s vyhledáváním podobným Google, vícestupňové projektové průzkumy, řízení rizik a úkolové TO-Do seznamy. Plandora podporuje jak tradiční vodopádové, tak agilní metodiky prostřednictvím vyvážené scorecard, gadgetů pro iterativní burndown a hierarchií makro-úkolů. Od svého restartu v roce 2023 projekt opravil více než 30 kritických chyb, zlepšil výkon, přidal import/export CSV a rozšířil možnosti reportování – včetně plánovaného generování reportů a výstupu JPG. Vývojáři mohou přispívat přes [Plandora GitHub](https://github.com/Cynjut/Plandora) repozitář a rozšiřovat funkčnost pomocí modulární architektury a vzorů JDBC/DAO.
Začínáme s Plandora
Plandora je webová aplikace založená na Javě, obvykle nasazovaná na Tomcat nebo jiné JEE servery. Pro zahájení si naklonujte zdrojový kód z repozitáře [Plandora GitHub](https://github.com/Cynjut/Plandora), ujistěte se, že máte nainstalované Java 8+ a Maven, a sestavte soubor WAR pomocí `mvn clean package`. Nasazujte vygenerovaný WAR do vašeho servlet kontejneru. Systém podporuje jak pooling připojení Tomcat, tak přímá JDBC připojení (konfigurovaná v `web.xml`). Po úvodním nastavení nakonfigurujte přihlašovací údaje k databázi, nastavení SMTP a integraci s externími systémy jako JIRA nebo SVN. Plandora obsahuje vestavěné průvodce nastavením pro základní komponenty jako workflow, meta‑pole a uživatelské role, aby urychlily nasazení.
Sestavení a nasazení Plandora pomocí 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/
Ganttovy diagramy s kalendářními událostmi a milníky
Ganttův diagram Plandora vizualizuje časové osy projektů s podporou makroúkolů, milníků a kalendářních událostí. Dynamicky filtruje zdroje a úkoly, což zajišťuje přesné sledování postupu i při přiřazení nebo odebrání zdrojů. Diagram nyní obsahuje značky milníků a integruje se s projektovými kalendáři, aby odrážel pracovní dny a svátky. Uživatelé mohou exportovat Ganttovy pohledy do formátů CSV, XLS nebo JPG pro reportování a sdílení. Vylepšení výkonu zajišťují plynulé vykreslování velkých datových sad a systém správně zpracovává oříznutí úkolů při importu z MSProject. Vlastní pole a meta‑pole lze zobrazit přímo na Ganttově mřížce, což umožňuje bohatší kontext bez opuštění časové osy. To činí Plandoru ideální jak pro tradiční projektové manažery, tak pro hybridní týmy používající kombinaci agilního a vodopádového přístupu.
Export Ganttova diagramu do JPG pomocí naplánované zprávy
// 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();
Integrace JIRA pro import problémů
Plandora zahrnuje dedikovaného agenta pro import JIRA úkolů jako požadavky Plandora, včetně příloh a metadat. Tato integrace propojuje ticketing a plánování projektů, umožňuje netechnickým zúčastněným stranám používat RT4 nebo JIRA, zatímco vývojáři spravují práci v Plandora. Importní proces zachovává vztahy mezi úkoly, prioritu, přiřazené osoby a časové značky. Podporuje filtrování podle projektu, stavu nebo časového období a efektivně zpracovává velké dávky. Po importu se úkoly stávají plnohodnotnými požadavky Plandora s editovatelnými poli, přechody pracovního postupu a hierarchií úkolů. Tato funkce je zvláště cenná pro organizace přecházející z JIRA nebo udržující dvojí systémy. Vývojáři mohou agenta rozšířit pomocí konfigurace nebo vlastních pluginů pro podporu dalších JIRA polí nebo vlastních polí.
Importovat úkoly JIRA pomocí agenta příkazového řádku
// 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();
Řízení kapacity zdrojů a porovnání
Formulář kapacity zdrojů Plandora umožňuje podrobné plánování a sledování dostupnosti týmu oproti skutečnému využití. Vypočítává využitou kapacitu na základě přiřazených úkolů, iterací a časových výkazů, s filtry pro nulové/prázdné hodnoty a časová období. Uživatelé mohou vedle sebe porovnat odhadovanou a využitou kapacitu a identifikovat přetížení nebo podvyužití. Systém podporuje odalokované zdroje elegantně, opravuje chyby databázových dotazů, když jsou členové odebráni ze všech projektů. Data o kapacitě se integrují s ganttovými diagramy a gadgety pro sledování pokroku, což umožňuje realistické plánování sprintů a milníků. Manažeři mohou dynamicky upravovat odhady a změny se propagují do podřízených zpráv a řídicích panelů. Tato funkce je klíčová pro řízení zdrojů na úrovni portfolia a prognózování v prostředí s více projekty.
Filtrovat kapacitu zdrojů podle nulových hodnot
// 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());
}
}
Automatizace pracovních postupů a přizpůsobení meta polí
Workflow engine Plandora podporuje přizpůsobitelné řetězce schvalování, přechody stavů a následné komentáře spojené s požadavky, úkoly a událostmi. Vyskakovací rozhraní workflow nyní zobrazuje související popisy požadavků a kompletní historii komentářů, což zlepšuje sledovatelnost. Meta‑pole umožňují administrátorům definovat vlastní atributy (např. štítky shody, ID klienta) pro úkoly, požadavky a projekty – včetně povinných polí vynucovaných pomocí UI validace. Tato pole se zobrazují v mřížkách, zprávách a exportech, což umožňuje flexibilní modelování dat bez změn kódu. Systém také podporuje zobrazování meta‑polí v hlavních formulářových mřížkách a importech CSV, což zajišťuje konzistenci napříč vstupními body dat. Tato rozšiřitelnost činí Plandoru vhodnou pro regulované odvětví a složité organizační struktury vyžadující auditní stopy a standardizované procesy.
Definovat povinné meta‑pole pomocí 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");
}
