Plandora

 
 

Sistem de Management al Proiectelor Java Open Source

Planificați, urmăriți și gestionați proiecte cu diagrame Gantt, panouri agile, flux de lucru și integrări prin platforma Java Open Source.

Ce este Plandora?

Plandora este un sistem de management de proiecte open-source matur, dezvoltat în Java, conceput pentru planificarea, urmărirea și colaborarea la nivel enterprise. Oferă instrumente cuprinzătoare, inclusiv diagrame Gantt, panouri agile, automatizare a fluxului de lucru, planificarea capacității resurselor și rapoarte personalizate prin JasperReports. Cu suport încorporat pentru integrări precum JIRA, SVN și RT4, Plandora permite echipelor să gestioneze proiecte complexe menținând trasabilitatea și transparența în toate departamentele. Sistemul său flexibil de meta-câmpuri și formularele personalizabile permit organizațiilor să adapteze platforma la fluxuri de lucru unice fără modificări de cod.

Sistemul pune accent pe utilizabilitate și extensibilitate, oferind o bază de cunoștințe cu căutare asemănătoare Google, sondaje de proiect pe mai multe niveluri, gestionarea riscurilor și liste de sarcini TO-Do bazate pe activități. Plandora suportă atât metodologiile tradiționale waterfall, cât și cele agile prin intermediul scorecard-ului echilibrat, gadget-urilor de ardere a iterațiilor și ierarhiilor macro-sarcină. De la repornirea sa în 2023, proiectul a corectat peste 30 de erori critice, a îmbunătățit performanța, a adăugat import/export CSV și a îmbunătățit capacitățile de raportare — inclusiv generarea programată a rapoartelor și ieșirea JPG. Dezvoltatorii pot contribui prin depozitul [Plandora GitHub](https://github.com/Cynjut/Plandora) și pot extinde funcționalitatea folosind arhitectura modulară și modelele JDBC/DAO.

Previous Next

Începeți cu Plandora

Plandora este o aplicație web bazată pe Java, de obicei implementată pe Tomcat sau alte servere JEE. Pentru a începe, clonează sursa din depozitul [Plandora GitHub](https://github.com/Cynjut/Plandora), asigură-te că Java 8+ și Maven sunt instalate și construiește fișierul WAR folosind `mvn clean package`. Deplasează fișierul WAR generat în containerul tău servlet. Sistemul suportă atât pool‑ul de conexiuni Tomcat, cât și conexiunile directe JDBC (configurate în `web.xml`). După configurarea inițială, configurează acreditările bazei de date, setările SMTP și integrează-te cu sisteme externe precum JIRA sau SVN. Plandora include asistenți de configurare încorporați pentru componentele de bază, cum ar fi fluxurile de lucru, meta‑câmpurile și rolurile utilizatorilor, pentru a accelera implementarea.

Construiește și implementează Plandora prin 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/

Diagrame Gantt cu evenimente din calendar și repere

Diagrama Gantt a Plandora vizualizează cronologia proiectelor, cu suport pentru sarcini macro, repere și evenimente calendaristice. Filtrează dinamic resursele și sarcinile, asigurând o urmărire precisă a progresului chiar și atunci când resursele sunt atribuite sau eliminate. Diagrama include acum marcatori de repere și se integrează cu calendarele de proiect pentru a reflecta zilele lucrătoare și sărbătorile. Utilizatorii pot exporta vizualizările Gantt în formatele CSV, XLS sau JPG pentru raportare și partajare. Îmbunătățirile de performanță asigură redarea fluidă pentru seturi mari de date, iar sistemul gestionează corect trunchierea sarcinilor în timpul importurilor din MSProject. Câmpurile personalizate și meta-câmpurile pot fi afișate direct pe grila Gantt, oferind un context mai bogat fără a părăsi vizualizarea cronologiei. Acest lucru face ca Plandora să fie ideală atât pentru managerii de proiect tradiționali, cât și pentru echipele hibride care utilizează combinații agile-waterfall.

Exportă diagrama Gantt în JPG prin raport programat

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

Integrare JIRA pentru importul de probleme

Plandora include un agent dedicat pentru importarea problemelor JIRA ca cereri Plandora, inclusiv atașamente și metadate. Această integrare leagă sistemul de ticketing de planificarea proiectelor, permițând părților interesate non-tehnice să folosească RT4 sau JIRA, în timp ce dezvoltatorii gestionează munca în Plandora. Procesul de import păstrează relațiile dintre probleme, prioritatea, responsabilii și marcajele temporale. Suportă filtrarea după proiect, stare sau interval de date și gestionează eficient loturi mari. După import, problemele devin cereri Plandora complete, cu câmpuri editabile, tranziții de flux de lucru și ierarhii de sarcini. Această funcționalitate este deosebit de valoroasă pentru organizațiile care migrează de la JIRA sau mențin sisteme duale. Dezvoltatorii pot extinde agentul prin configurare sau pluginuri personalizate pentru a susține câmpuri JIRA suplimentare sau câmpuri personalizate.

Importă probleme JIRA prin agentul din linia de comandă

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

Gestionarea și compararea capacității resurselor

Formularul de capacitate a resurselor Plandora permite planificarea detaliată și urmărirea disponibilității echipei în raport cu utilizarea reală. Calculează capacitatea utilizată pe baza sarcinilor atribuite, iterațiilor și fișelor de timp, cu filtre pentru valori zero/vid și intervale de date. Utilizatorii pot compara capacitatea estimată cu cea utilizată, alăturat, pentru a identifica supra- sau subalocarea. Sistemul acceptă resursele dezalocate cu grație, corectând erorile de interogare DB atunci când membrii sunt eliminați din toate proiectele. Datele de capacitate se integrează cu graficele Gantt și gadgeturile de burn‑down, permițând planificarea realistă a sprinturilor și a etapelor. Managerii pot ajusta estimările dinamic, iar modificările se propagă către rapoartele și tablourile de bord ulterioare. Această funcționalitate este esențială pentru guvernanța și prognoza resurselor la nivel de portofoliu în medii cu multiple proiecte.

Filtrează capacitatea resurselor după valori zero

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

Automatizarea fluxului de lucru și personalizarea meta-câmpurilor

Motorul de flux de lucru al Plandora suportă lanțuri de aprobare personalizabile, tranziții de stare și comentarii de urmărire legate de cereri, sarcini și evenimente. Interfața pop-up a fluxului de lucru afișează acum descrierile cererilor aferente și istoricul complet al comentariilor, îmbunătățind trasabilitatea. Meta-câmpurile permit administratorilor să definească atribute personalizate (de ex., etichete de conformitate, ID-uri de client) pentru sarcini, cereri și proiecte — inclusiv câmpuri obligatorii impuse prin validarea UI. Aceste câmpuri apar în grile, rapoarte și exporturi, permițând modelarea flexibilă a datelor fără modificări de cod. Sistemul suportă, de asemenea, afișarea meta-câmpurilor în grilele formularului principal și importurile CSV, asigurând consistență la punctele de introducere a datelor. Această extensibilitate face ca Plandora să fie potrivită pentru industrii reglementate și structuri organizaționale complexe care necesită piste de audit și procese standardizate.

Definește meta-câmpul obligatoriu prin 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");
}
 Română