
Plandora
Atviro Java šaltinio projektų valdymo sistema
Planuokite, sekite ir valdykite projektus su Ganto diagramomis, lankstomomis lentelėmis, darbo eiga ir integracijomis per atviro kodo Java platformą.
Kas yra Plandora?
Plandora yra išvystytas atviro kodo projektų valdymo sistema, sukurta Java kalba, skirta įmonės lygio projektų planavimui, sekimui ir bendradarbiavimui. Ji suteikia išsamias priemones, įskaitant Ganto diagramas, lankstų (agile) lenteles, darbo srautų automatizavimą, išteklių talpos planavimą ir pritaikytą ataskaitų generavimą per JasperReports. Su integruotomis galimybėmis integruoti su JIRA, SVN ir RT4, Plandora leidžia komandoms valdyti sudėtingus projektus, išlaikant sekamumą ir skaidrumą tarp departamentų. Jos lanksti meta laukų sistema ir pritaikomos formos leidžia organizacijoms pritaikyti platformą prie unikalių darbo procesų be kodo pakeitimų.
Sistema pabrėžia naudojamumą ir išplečiamumą, siūlo žinių bazę su „Google“ tipo paieška, daugiapakopiais projekto tyrimais, rizikos valdymu ir užduočių pagrindu sukurtomis „To-Do“ sąrašais. Plandora palaiko tiek tradicines vandens kritimo, tiek agilias metodikas per savo subalansuotą rezultatų kortelę, iteracijos „burndown“ įrankius ir makro‑užduočių hierarchijas. Nuo 2023 metų perkrovimo projektas ištaisė daugiau nei 30 kritinių klaidų, pagerino našumą, pridėjo CSV importo/eksporto funkciją ir patobulino ataskaitų galimybes – įskaitant suplanuotą ataskaitų generavimą ir JPG išvestį. Kūrėjai gali prisidėti per [Plandora GitHub](https://github.com/Cynjut/Plandora) saugyklą ir išplėsti funkcionalumą naudodami modulinią architektūrą bei JDBC/DAO modelius.
Pradžia su Plandora
Plandora yra Java pagrindu sukurta žiniatinklio programa, paprastai diegiama Tomcat arba kituose JEE serveriuose. Norėdami pradėti, klonuokite šaltinį iš [Plandora GitHub](https://github.com/Cynjut/Plandora) saugyklos, įsitikinkite, kad įdiegta Java 8+ ir Maven, ir sukurkite WAR failą naudodami `mvn clean package`. Įdiekite sugeneruotą WAR į savo servletų konteinerį. Sistema palaiko tiek Tomcat jungčių baseiną, tiek tiesioginius JDBC ryšius (konfigūruojama `web.xml`). Po pradinės sąrankos sukonfigūruokite duomenų bazės kredencialus, SMTP nustatymus ir integruokite su išorinėmis sistemomis, tokiomis kaip JIRA arba SVN. Plandora įtraukia įmontuotus diegimo vedlius pagrindiniams komponentams, tokiems kaip darbo srautai, meta‑laukai ir vartotojų rolės, siekiant pagreitinti diegimą.
Kompiliuoti ir diegti Plandora per 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/
Ganto diagramos su kalendoriaus įvykiais ir žymomis
Plandora Ganto diagrama vizualizuoja projektų laiko juostas, palaikydama makro užduotis, etapus ir kalendoriaus įvykius. Ji dinamiškai filtruoja išteklius ir užduotis, užtikrindama tikslų progreso sekimą net kai ištekliai priskiriami arba pašalinami. Diagrama dabar įtraukia etapo žymeklius ir integruojasi su projekto kalendoriais, atspindėdama darbo dienas ir šventes. Vartotojai gali eksportuoti Ganto vaizdus į CSV, XLS arba JPG formatus, skirti ataskaitoms ir dalijimuisi. Veikimo patobulinimai užtikrina sklandų didelių duomenų rinkinių atvaizdavimą, o sistema teisingai tvarko užduočių trumpinimą MSProject importų metu. Individualūs laukai ir meta laukai gali būti rodomi tiesiai Ganto tinklelyje, suteikdami turtingesnį kontekstą be išėjimo iš laiko juostos peržiūros. Tai daro Plandora idealią tiek tradiciniams projektų vadovams, tiek hibridinėms komandoms, naudojančioms agilų ir vandens kritimo derinius.
Eksportuoti Ganto diagramą į JPG per suplanuotą ataskaitą
// 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 integracija problemų importui
Plandora turi specialų agentą, skirtą importuoti JIRA užduotis kaip Plandora prašymus, įskaitant priedus ir metaduomenis. Ši integracija sujungia bilietų valdymą ir projekto planavimą, leidžiant ne techniniams suinteresuotiems asmenims naudoti RT4 arba JIRA, o kūrėjams valdyti darbą Plandora. Importo procesas išsaugo užduočių ryšius, prioritetą, atsakingus asmenis ir laiko žymas. Jis palaiko filtravimą pagal projektą, būseną arba datos intervalą ir efektyviai tvarko didelius paketus. Po importo užduotys tampa pilnaverčiais Plandora prašymais su redaguojamais laukais, darbo srauto perėjimais ir užduočių hierarchijomis. Ši funkcija ypač vertinga organizacijoms, pereinančioms nuo JIRA arba palaikančioms dvi sistemas. Kūrėjai gali išplėsti agentą per konfigūraciją arba pasirinktinius įskiepius, kad palaikytų papildomus JIRA laukus arba pasirinktinius laukus.
Importuoti JIRA užduotis naudojant komandų eilutės 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();
Išteklių pajėgumo valdymas ir palyginimas
Plandora išteklių pajėgumo forma leidžia išsamiai planuoti ir stebėti komandos prieinamumą lyginant su faktiniu naudojimu. Ji apskaičiuoja naudojamą pajėgumą remiantis priskirtomis užduotimis, iteracijomis ir darbo laiko apskaitomis, su filtrais nulinėms/tuščioms reikšmėms ir datos intervalams. Vartotojai gali šalia vienas kito palyginti numatomą ir naudojamą pajėgumą, kad identifikuotų perteklių ar trūkumą. Sistema sklandžiai palaiko išskirtus išteklius, ištaisydama duomenų bazės užklausų klaidas, kai nariai pašalinami iš visų projektų. Pajėgumo duomenys integruojami su Ganto diagramomis ir „burndown“ įrankiais, leidžiančiais realistiškai planuoti sprintus ir etapus. Vadovai gali dinamiškai koreguoti įvertinimus, o pakeitimai persiunčiami į vėlesnius ataskaitų ir prietaisų skydelių. Ši funkcija yra kritiškai svarbi portfelio lygio išteklių valdymui ir prognozavimui daugelio projektų aplinkoje.
Filtruoti išteklių talpą pagal nulinės vertės
// 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());
}
}
Darbo srauto automatizavimas ir meta laukų pritaikymas
Plandora darbo srauto variklis palaiko pritaikomas patvirtinimo grandines, būsenų perėjimus ir sekimo komentarus, susijusius su užklausomis, užduotimis ir įvykiais. Iškylančio lango darbo srauto sąsaja dabar rodo susijusių užklausų aprašymus ir visą komentarų istoriją, gerindama sekamumą. Meta‑laukai leidžia administratoriams apibrėžti pasirinktinius atributus (pvz., atitikties žymas, klientų ID) užduotims, užklausoms ir projektams – įskaitant privalomus laukus, įgyvendinamus per UI validaciją. Šie laukai rodomi tinkleliuose, ataskaitose ir eksporto failuose, suteikdami lankstų duomenų modeliavimą be kodo pakeitimų. Sistema taip pat palaiko meta‑laukų rodymą pagrindinių formų tinkleliuose ir CSV importuose, užtikrindama nuoseklumą visose duomenų įvedimo vietose. Ši išplečiamumas daro Plandora tinkamą reguliuojamoms pramonės šakoms ir sudėtingoms organizacinėms struktūroms, reikalaujančioms audito takų ir standartizuotų procesų.
Apibrėžti privalomą meta lauką per 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");
}
