
Plandora
Öppet Java-källkod Projektledningssystem
Planera, spåra och hantera projekt med Gantt-diagram, agila tavlor, arbetsflöde och integrationer via en öppen källkod Java-plattform.
Vad är Plandora?
Plandora är ett moget open-source projektledningssystem byggt i Java, utformat för företagsklassad projektplanering, spårning och samarbete. Det erbjuder omfattande verktyg inklusive Gantt-diagram, agila tavlor, arbetsflödesautomatisering, resurskapacitetsplanering och anpassad rapportering via JasperReports. Med inbyggt stöd för integrationer som JIRA, SVN och RT4 möjliggör Plandora för team att hantera komplexa projekt samtidigt som spårbarhet och transparens upprätthålls över avdelningar. Dess flexibla metafältsystem och anpassningsbara formulär låter organisationer anpassa plattformen till unika arbetsflöden utan kodändringar.
Systemet betonar användbarhet och utbyggbarhet, med en kunskapsbas med Google‑liknande sökning, flernivåprojektundersökningar, riskhantering och uppgiftsbaserade att‑göra‑listor. Plandora stödjer både traditionella vattenfalls‑ och agila metoder genom sin balanserade resultattavla, iteration‑burndown‑verktyg och makro‑uppgiftshierarkier. Sedan omstarten 2023 har projektet åtgärdat över 30 kritiska buggar, förbättrat prestanda, lagt till CSV‑import/‑export och förbättrat rapporteringsfunktioner — inklusive schemalagd rapportgenerering och JPG‑utdata. Utvecklare kan bidra via [Plandora GitHub](https://github.com/Cynjut/Plandora)-arkivet och utöka funktionaliteten med dess modulära arkitektur och JDBC/DAO‑mönster.
Komma igång med Plandora
Plandora är en Java‑baserad webbapplikation som vanligtvis distribueras på Tomcat eller andra JEE‑servrar. För att komma igång, klona källkoden från [Plandora GitHub](https://github.com/Cynjut/Plandora)‑arkivet, se till att Java 8+ och Maven är installerade, och bygg WAR‑filen med `mvn clean package`. Distribuera den genererade WAR‑filen till din servlet‑container. Systemet stöder både Tomcat‑anslutningspoolning och direkta JDBC‑anslutningar (konfigurerade i `web.xml`). Efter den initiala konfigurationen, konfigurera databasuppgifter, SMTP‑inställningar och integrera med externa system som JIRA eller SVN. Plandora innehåller inbyggda installationsguider för kärnkomponenter som arbetsflöden, metafält och användarroller för att påskynda driftsättningen.
Bygg och distribuera 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-diagram med kalenderhändelser och milstolpar
Plandoras Gantt-diagram visualiserar projekttidslinjer med stöd för makrouppgifter, milstolpar och kalenderhändelser. Det filtrerar dynamiskt resurser och uppgifter, vilket säkerställer exakt spårning av framsteg även när resurser tilldelas eller tas bort. Diagrammet innehåller nu milstolpsmarkörer och integreras med projektkalendrar för att visa arbetsdagar och helgdagar. Användare kan exportera Gantt-vyer till CSV-, XLS- eller JPG-format för rapportering och delning. Prestandaförbättringar säkerställer smidig rendering för stora datamängder, och systemet hanterar korrekt uppgiftstrunkering vid MSProject-import. Anpassade fält och metafält kan visas direkt på Gantt-rutnätet, vilket ger rikare kontext utan att lämna tidslinjevyn. Detta gör Plandora idealisk för både traditionella projektledare och hybridteam som använder agilt-vattenfallsblandningar.
Exportera Gantt-diagram till JPG via schemalagd rapport
// 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 ärendeimport
Plandora inkluderar en dedikerad agent för att importera JIRA-ärenden som Plandora-förfrågningar, inklusive bilagor och metadata. Denna integration förenar ärendehantering och projektplanering, så att icke-tekniska intressenter kan använda RT4 eller JIRA medan utvecklare hanterar arbete i Plandora. Importprocessen bevarar ärendeförhållanden, prioritet, tilldelade och tidsstämplar. Den stöder filtrering efter projekt, status eller datumintervall och hanterar stora batcher effektivt. Efter import blir ärendena fullständiga Plandora-förfrågningar med redigerbara fält, arbetsflödesövergångar och uppgiftshierarkier. Denna funktion är särskilt värdefull för organisationer som migrerar från JIRA eller upprätthåller dubbla system. Utvecklare kan utöka agenten via konfiguration eller anpassade plugins för att stödja ytterligare JIRA-fält eller anpassade fält.
Importera JIRA-ärenden via kommandoradsagent
// 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();
Resurskapacitetshantering och jämförelse
Plandoras resurskapacitetsformulär möjliggör detaljerad planering och spårning av teamets tillgänglighet jämfört med faktisk användning. Det beräknar använd kapacitet baserat på tilldelade uppgifter, iterationer och tidrapporter, med filter för noll/tomma värden och datumintervall. Användare kan jämföra uppskattad vs. använd kapacitet sida vid sida för att identifiera över- eller underallokering. Systemet hanterar avallokerade resurser på ett smidigt sätt och åtgärdar databasfrågefel när medlemmar tas bort från alla projekt. Kapacitetsdata integreras med Gantt-diagram och burndown‑verktyg, vilket möjliggör realistisk sprint- och milstolpsplanering. Chefer kan justera uppskattningar dynamiskt, och förändringar sprids till efterföljande rapporter och instrumentpaneler. Denna funktion är kritisk för resursstyrning och prognostisering på portföljnivå i miljöer med flera projekt.
Filtrera resurskapacitet efter nollvärden
// 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());
}
}
Arbetsflödesautomatisering och anpassning av metafelter
Plandoras arbetsflödesmotor stöder anpassningsbara godkännandekedjor, statusövergångar och uppföljningskommentarer kopplade till förfrågningar, uppgifter och händelser. Det popup‑arbetsflödesgränssnittet visar nu relaterade förfrågningsbeskrivningar och fullständig kommentarshistorik, vilket förbättrar spårbarheten. Meta‑fält låter administratörer definiera anpassade attribut (t.ex. efterlevnadsetiketter, kund‑ID) för uppgifter, förfrågningar och projekt — inklusive obligatoriska fält som verkställs via UI‑validering. Dessa fält visas i rutnät, rapporter och export, vilket möjliggör flexibel datamodellering utan kodändringar. Systemet stöder också visning av meta‑fält i huvudform‑rutnät och CSV‑import, vilket säkerställer konsistens över alla datainmatningspunkter. Denna extensibilitet gör Plandora lämplig för reglerade industrier och komplexa organisationsstrukturer som kräver revisionsspår och standardiserade processer.
Definiera obligatoriskt metafält 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");
}
