
Plandora
Åpen Java kildekode prosjektstyringssystem
Planlegg, spor og administrer prosjekter med Gantt-diagrammer, smidige tavler, arbeidsflyt og integrasjoner via åpen kildekode Java-plattform.
Hva er Plandora?
Plandora er et modent open-source prosjektstyringssystem bygget i Java, designet for bedriftsnivå prosjektplanlegging, sporing og samarbeid. Det tilbyr omfattende verktøy inkludert Gantt-diagrammer, agile tavler, arbeidsflytautomatisering, ressurskapasitetsplanlegging og tilpasset rapportering via JasperReports. Med innebygd støtte for integrasjoner som JIRA, SVN og RT4, gjør Plandora det mulig for team å håndtere komplekse prosjekter samtidig som sporbarhet og åpenhet opprettholdes på tvers av avdelinger. Dets fleksible meta-feltsystem og tilpassbare skjemaer gjør at organisasjoner kan tilpasse plattformen til unike arbeidsflyter uten kodeendringer.
Systemet legger vekt på brukervennlighet og utvidbarhet, og har en kunnskapsbase med Google-lignende søk, flernivå prosjektundersøkelser, risikostyring og oppgavebaserte TO-Do-lister. Plandora støtter både tradisjonelle fossefalls- og smidige metodikker gjennom sin balanserte resultatkort, iterasjons‑burndown‑verktøy og makro‑oppgavehierarkier. Siden omstarten i 2023 har prosjektet fikset over 30 kritiske feil, forbedret ytelsen, lagt til CSV‑import/eksport og forbedret rapporteringsfunksjoner—inkludert planlagt rapportgenerering og JPG‑utdata. Utviklere kan bidra via [Plandora GitHub](https://github.com/Cynjut/Plandora)‑repoet og utvide funksjonaliteten ved hjelp av dens modulære arkitektur og JDBC/DAO‑mønstre.
Kom i gang med Plandora
Plandora er en Java-basert webapplikasjon som vanligvis distribueres på Tomcat eller andre JEE-servere. For å komme i gang, klon kildekoden fra [Plandora GitHub](https://github.com/Cynjut/Plandora) repository, sørg for at Java 8+ og Maven er installert, og bygg WAR-filen ved å bruke `mvn clean package`. Distribuer den genererte WAR-filen til din servlet-container. Systemet støtter både Tomcat-tilkoblingspooling og direkte JDBC-tilkoblinger (konfigurert i `web.xml`). Etter første oppsett, konfigurer databaselegitimasjon, SMTP-innstillinger, og integrer med eksterne systemer som JIRA eller SVN. Plandora inkluderer innebygde oppsettsveivisere for kjernekomponenter som arbeidsflyter, meta-felt og brukerroller for å akselerere distribusjonen.
Bygg og distribuer 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-diagrammer med kalenderhendelser og milepæler
Plandoras Gantt-diagram visualiserer prosjektplaner med støtte for makrooppgaver, milepæler og kalendereventer. Det filtrerer dynamisk ressurser og oppgaver, og sikrer nøyaktig fremdriftssporing selv når ressurser blir tildelt eller fjernet. Diagrammet inkluderer nå milepælmærker og integreres med prosjektkalendere for å gjenspeile arbeidsdager og helligdager. Brukere kan eksportere Gantt-visninger til CSV-, XLS- eller JPG-formater for rapportering og deling. Ytelsesforbedringer sikrer jevn rendering for store datasett, og systemet håndterer korrekt oppgavekutt under MSProject-import. Tilpassede felt og meta-felt kan vises direkte på Gantt-rutenettet, noe som gir rikere kontekst uten å forlate tidslinjevisningen. Dette gjør Plandora ideell for både tradisjonelle prosjektledere og hybride team som bruker agile‑waterfall‑blandinger.
Eksporter Gantt-diagram til JPG via planlagt 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-integrasjon for import av saker
Plandora inkluderer en dedikert agent for å importere JIRA‑saker som Plandora‑forespørsler, inkludert vedlegg og metadata. Denne integrasjonen bygger bro mellom ticketsystem og prosjektplanlegging, og gjør det mulig for ikke‑tekniske interessenter å bruke RT4 eller JIRA mens utviklere håndterer arbeidet i Plandora. Importprosessen bevarer sakrelasjoner, prioritet, tildelte personer og tidsstempler. Den støtter filtrering etter prosjekt, status eller datointervall og håndterer store batcher effektivt. Etter import blir sakene fullverdige Plandora‑forespørsler med redigerbare felter, arbeidsflyt‑overganger og oppgavehierarkier. Denne funksjonen er spesielt verdifull for organisasjoner som migrerer fra JIRA eller opprettholder doble systemer. Utviklere kan utvide agenten via konfigurasjon eller egendefinerte plugins for å støtte ekstra JIRA‑felter eller egendefinerte felter.
Importer JIRA-oppgaver via kommandolinjeagent
// 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();
Ressurskapasitetsstyring og sammenligning
Plandoras ressurskapasitets skjema gjør detaljert planlegging og sporing av teamets tilgjengelighet versus faktisk bruk. Det beregner brukt kapasitet basert på tildelte oppgaver, iterasjoner og timelister, med filtre for null/tomme verdier og datointervaller. Brukere kan sammenligne estimert vs. brukt kapasitet side om side for å identifisere over- eller underallokering. Systemet støtter desallokerte ressurser på en elegant måte, og fikser database‑spørringsfeil når medlemmer fjernes fra alle prosjekter. Kapasitetsdata integreres med Gantt‑diagrammer og burndown‑verktøy, noe som muliggjør realistisk sprint‑ og milepælsplanlegging. Ledere kan justere estimater dynamisk, og endringer propagere til nedstrøms rapporter og dashbord. Denne funksjonen er kritisk for ressursstyring og prognostisering på porteføljenivå i flerprosjektmiljøer.
Filtrer ressurskapasitet etter nullverdier
// 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());
}
}
Arbeidsflytautomatisering og tilpasning av metafelter
Plandoras arbeidsflytmotor støtter tilpassbare godkjenningskjeder, statusoverganger og oppfølgingskommentarer knyttet til forespørsler, oppgaver og hendelser. Det popup‑arbeidsflytgrensesnittet viser nå relaterte forespørselsbeskrivelser og full kommentarthistorikk, noe som forbedrer sporbarhet. Metafelter lar administratorer definere egendefinerte attributter (f.eks. samsvarstagger, klient‑IDer) for oppgaver, forespørsler og prosjekter—inkludert obligatoriske felt håndhevet via UI‑validering. Disse feltene vises i rutenett, rapporter og eksport, og muliggjør fleksibel datamodellering uten kodeendringer. Systemet støtter også visning av metafelter i hovedskjema‑rutenett og CSV‑import, og sikrer konsistens på tvers av datapunkter. Denne utvidbarheten gjør Plandora egnet for regulerte industrier og komplekse organisasjonsstrukturer som krever revisjonsspor og standardiserte prosesser.
Definer obligatorisk meta-felt 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");
}
