Plandora

 
 

Sistema di gestione progetti Java Open Source

Pianifica, monitora e gestisci progetti con diagrammi di Gantt, board Agile, workflow e integrazioni tramite piattaforma Java Open Source.

Che cos'è Plandora?

Plandora è un sistema di gestione progetti open-source maturo, sviluppato in Java, progettato per la pianificazione, il monitoraggio e la collaborazione su progetti di livello aziendale. Offre strumenti completi, tra cui diagrammi di Gantt, board agile, automazione dei flussi di lavoro, pianificazione della capacità delle risorse e reportistica personalizzata tramite JasperReports. Con supporto integrato per integrazioni come JIRA, SVN e RT4, Plandora consente ai team di gestire progetti complessi mantenendo tracciabilità e trasparenza tra i dipartimenti. Il suo sistema flessibile di meta-campi e i moduli personalizzabili permettono alle organizzazioni di adattare la piattaforma a flussi di lavoro unici senza modifiche al codice.

Il sistema enfatizza usabilità ed estensibilità, includendo una base di conoscenza con ricerca in stile Google, indagini di progetto a più livelli, gestione del rischio e liste di attività basate su TO-Do. Plandora supporta sia metodologie tradizionali waterfall che agili attraverso il suo balanced scorecard, gadget di burndown iterativo e gerarchie macro-task. Dal suo rilancio nel 2023, il progetto ha risolto oltre 30 bug critici, migliorato le prestazioni, aggiunto l'import/export CSV e potenziato le capacità di reporting—incluse la generazione programmata di report e l'output JPG. Gli sviluppatori possono contribuire tramite il repository [GitHub di Plandora](https://github.com/Cynjut/Plandora) e estendere le funzionalità usando la sua architettura modulare e i pattern JDBC/DAO patterns.

Previous Next

Come iniziare con Plandora

Plandora è un'applicazione web basata su Java tipicamente distribuita su Tomcat o altri server JEE. Per iniziare, clona il codice sorgente dal repository [Plandora GitHub](https://github.com/Cynjut/Plandora), assicurati che Java 8+ e Maven siano installati e costruisci il file WAR usando `mvn clean package`. Distribuisci il WAR generato nel tuo contenitore servlet. Il sistema supporta sia il pooling di connessioni Tomcat sia connessioni JDBC dirette (configurate in `web.xml`). Dopo la configurazione iniziale, imposta le credenziali del database, le impostazioni SMTP e integra con sistemi esterni come JIRA o SVN. Plandora include wizard di configurazione integrati per componenti core come workflow, meta‑field e ruoli utente per accelerare il deployment.

Compila e distribuisci Plandora tramite 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/

Diagrammi di Gantt con eventi del calendario e traguardi

Il diagramma di Gantt di Plandora visualizza le tempistiche dei progetti con supporto per macro attività, traguardi e eventi del calendario. Filtra dinamicamente risorse e attività, garantendo un monitoraggio accurato dei progressi anche quando le risorse vengono assegnate o rimosse. Il diagramma ora include marcatori di traguardo e si integra con i calendari di progetto per riflettere i giorni lavorativi e le festività. Gli utenti possono esportare le visualizzazioni di Gantt in formati CSV, XLS o JPG per report e condivisione. Miglioramenti delle prestazioni assicurano un rendering fluido per grandi set di dati, e il sistema gestisce correttamente il troncamento delle attività durante le importazioni da MSProject. Campi personalizzati e meta‑campo possono essere visualizzati direttamente sulla griglia di Gantt, consentendo un contesto più ricco senza lasciare la vista della timeline. Questo rende Plandora ideale sia per i tradizionali project manager sia per i team ibridi che utilizzano combinazioni agile‑waterfall.

Esporta il diagramma di Gantt in JPG tramite report programmato

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

Integrazione JIRA per l'importazione di issue

Plandora include un agente dedicato per importare i ticket JIRA come richieste Plandora, includendo allegati e metadati. Questa integrazione collega il ticketing e la pianificazione dei progetti, consentendo ai soggetti non tecnici di utilizzare RT4 o JIRA mentre gli sviluppatori gestiscono il lavoro in Plandora. Il processo di importazione preserva le relazioni tra i ticket, la priorità, gli assegnatari e i timestamp. Supporta il filtraggio per progetto, stato o intervallo di date e gestisce grandi batch in modo efficiente. Dopo l'importazione, i ticket diventano richieste Plandora complete con campi modificabili, transizioni del flusso di lavoro e gerarchie di attività. Questa funzionalità è particolarmente preziosa per le organizzazioni che migrano da JIRA o mantengono sistemi doppi. Gli sviluppatori possono estendere l'agente tramite configurazione o plugin personalizzati per supportare campi JIRA aggiuntivi o campi personalizzati.

Importa le issue di JIRA tramite agente da riga di comando

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

Gestione e confronto della capacità delle risorse

Il modulo di capacità delle risorse di Plandora consente una pianificazione dettagliata e il monitoraggio della disponibilità del team rispetto all'uso reale. Calcola la capacità utilizzata in base ai compiti assegnati, alle iterazioni e ai fogli di tempo, con filtri per valori zero/vuoti e intervalli di date. Gli utenti possono confrontare stima e capacità utilizzata fianco a fianco per identificare sovra- o sotto-allocazione. Il sistema gestisce le risorse deallocati in modo fluido, correggendo gli errori di query del database quando i membri vengono rimossi da tutti i progetti. I dati di capacità si integrano con diagrammi di Gantt e gadget di burn-down, consentendo una pianificazione realistica di sprint e milestone. I manager possono regolare le stime in modo dinamico, e le modifiche si propagano ai report e ai cruscotti a valle. Questa funzionalità è fondamentale per la governance delle risorse a livello di portafoglio e per le previsioni in ambienti multi-progetto.

Filtra la capacità delle risorse per 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());
    }
}

Automazione del flusso di lavoro e personalizzazione dei meta-campi

Il motore di workflow di Plandora supporta catene di approvazione personalizzabili, transizioni di stato e commenti di follow‑up collegati a richieste, attività e occorrenze. L’interfaccia popup del workflow ora visualizza le descrizioni delle richieste correlate e la cronologia completa dei commenti, migliorando la tracciabilità. I meta‑campi consentono agli amministratori di definire attributi personalizzati (ad es., tag di conformità, ID cliente) per attività, richieste e progetti, inclusi campi obbligatori applicati tramite la convalida dell’interfaccia utente. Questi campi compaiono in griglie, report ed esportazioni, consentendo una modellazione flessibile dei dati senza modifiche al codice. Il sistema supporta inoltre la visualizzazione dei meta‑campi nelle griglie dei moduli principali e nelle importazioni CSV, garantendo coerenza tra i punti di inserimento dati. Questa estensibilità rende Plandora adatto a settori regolamentati e a strutture organizzative complesse che richiedono tracciabilità e processi standardizzati.

Definisci meta-campo obbligatorio tramite 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");
}
 Italiano