
Plandora
Sistem Pengurusan Projek Sumber Java Terbuka
Rancang, Jejak & Urus Projek dengan Carta Gantt, Papan Agile, Aliran Kerja & Integrasi melalui Platform Java Sumber Terbuka.
Apakah Plandora?
Plandora ialah sistem pengurusan projek sumber terbuka yang matang dibina dengan Java, direka untuk perancangan, penjejakan, dan kerjasama projek berskala perusahaan. Ia menyediakan alat lengkap termasuk carta Gantt, papan agile, automasi aliran kerja, perancangan kapasiti sumber, dan laporan tersuai melalui JasperReports. Dengan sokongan terbina dalam untuk integrasi seperti JIRA, SVN, dan RT4, Plandora membolehkan pasukan mengurus projek kompleks sambil mengekalkan kebolehjejasan dan ketelusan merentasi jabatan. Sistem meta-field yang fleksibel dan borang yang boleh disesuaikan membenarkan organisasi menyesuaikan platform kepada aliran kerja unik tanpa perubahan kod.
Sistem menekankan kebolehgunaan dan kebolehsuaian, menampilkan pangkalan pengetahuan dengan carian serupa Google, tinjauan projek berbilang peringkat, pengurusan risiko, dan senarai TO-Do berasaskan tugas. Plandora menyokong kedua-dua metodologi tradisional waterfall dan agile melalui kad skor seimbang, widget burndown iterasi, dan hierarki makro-tugas. Sejak dimulakan semula pada tahun 2023, projek ini telah membaiki lebih daripada 30 pepijat kritikal, meningkatkan prestasi, menambah import/eksport CSV, dan mempertingkat keupayaan pelaporan—termasuk penjanaan laporan berjadual dan output JPG. Pembangun boleh menyumbang melalui repositori [GitHub Plandora](https://github.com/Cynjut/Plandora) dan memperluas fungsi menggunakan seni bina modular serta pola JDBC/DAO.
Mula Menggunakan Plandora
Plandora ialah aplikasi web berasaskan Java yang biasanya dipasang pada Tomcat atau pelayan JEE lain. Untuk memulakan, klon sumber dari repositori [Plandora GitHub](https://github.com/Cynjut/Plandora), pastikan Java 8+ dan Maven dipasang, dan bina fail WAR menggunakan `mvn clean package`. Deploy WAR yang dijana ke kontena servlet anda. Sistem menyokong kedua-dua pengumpulan sambungan Tomcat dan sambungan JDBC langsung (dikonfigurasikan dalam `web.xml`). Selepas persediaan awal, konfigurasikan kelayakan pangkalan data, tetapan SMTP, dan integrasikan dengan sistem luaran seperti JIRA atau SVN. Plandora termasuk wizard persediaan terbina dalam untuk komponen teras seperti aliran kerja, medan-meta, dan peranan pengguna untuk mempercepatkan pelaksanaan.
Bina & Sebarkan Plandora melalui 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/
Carta Gantt dengan Acara Kalendar & Penanda Aras
Carta Gantt Plandora memvisualisasikan garis masa projek dengan sokongan untuk tugas makro, pencapaian, dan acara kalendar. Ia menapis sumber dan tugas secara dinamik, memastikan penjejakan kemajuan yang tepat walaupun sumber diberikan atau dibuang. Carta kini termasuk penanda pencapaian dan berintegrasi dengan kalendar projek untuk mencerminkan hari bekerja dan cuti. Pengguna boleh mengeksport paparan Gantt ke format CSV, XLS, atau JPG untuk pelaporan dan perkongsian. Penambahbaikan prestasi memastikan rendering yang lancar untuk set data besar, dan sistem mengendalikan pemotongan tugas dengan betul semasa import MSProject. Medan khusus dan meta-medan boleh dipaparkan secara langsung pada grid Gantt, memberikan konteks yang lebih kaya tanpa meninggalkan paparan garis masa. Ini menjadikan Plandora ideal untuk kedua-dua pengurus projek tradisional dan pasukan hibrid yang menggunakan gabungan agile-waterfall.
Eksport Carta Gantt ke JPG melalui Laporan Berjadual
// 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();
Integrasi JIRA untuk Import Isu
Plandura termasuk agen khusus untuk mengimport isu JIRA sebagai permintaan Plandora, termasuk lampiran dan metadata. Integrasi ini menjembatani tiket dan perancangan projek, membolehkan pihak berkepentingan bukan teknikal menggunakan RT4 atau JIRA sementara pembangun mengurus kerja dalam Plandora. Proses import mengekalkan hubungan isu, keutamaan, penugasan, dan cap masa. Ia menyokong penapisan mengikut projek, status, atau julat tarikh dan mengendalikan kumpulan besar dengan cekap. Selepas import, isu menjadi permintaan Plandora yang lengkap dengan medan yang boleh disunting, peralihan aliran kerja, dan hierarki tugas. Ciri ini sangat berharga bagi organisasi yang berpindah dari JIRA atau mengekalkan sistem berganda. Pembangun boleh memperluas agen melalui konfigurasi atau plugin khusus untuk menyokong medan JIRA tambahan atau medan khusus.
Import Isu JIRA melalui Ejen Baris Perintah
// 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();
Pengurusan Kapasiti Sumber & Perbandingan
Borang kapasiti sumber Plandora membolehkan perancangan terperinci dan penjejakan ketersediaan pasukan berbanding penggunaan sebenar. Ia mengira kapasiti yang digunakan berdasarkan tugas yang ditetapkan, iterasi, dan helaian masa, dengan penapis untuk nilai sifar/kosong dan julat tarikh. Pengguna boleh membandingkan kapasiti anggaran vs. yang digunakan secara bersebelahan untuk mengenal pasti peruntukan berlebihan atau kurang. Sistem menyokong sumber yang tidak dialokasikan dengan baik, memperbaiki ralat pertanyaan DB apabila ahli dikeluarkan dari semua projek. Data kapasiti diintegrasikan dengan carta Gantt dan peranti burndown, membolehkan perancangan sprint dan pencapaian yang realistik. Pengurus boleh menyesuaikan anggaran secara dinamik, dan perubahan disebarkan ke laporan dan papan pemuka hiliran. Ciri ini penting untuk tadbir urus sumber pada peringkat portfolio dan ramalan dalam persekitaran berbilang projek.
Tapis Kapasiti Sumber mengikut Nilai Sifar
// 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());
}
}
Automasi Aliran Kerja & Penyesuaian Medan Meta
Enjin aliran kerja Plandora menyokong rantaian kelulusan yang boleh disesuaikan, peralihan status, dan komen susulan yang berkaitan dengan permintaan, tugas, dan kejadian. Antara muka aliran kerja pop‑up kini memaparkan penerangan permintaan yang berkaitan dan sejarah komen penuh, meningkatkan kebolehkesanan. Medan meta membolehkan pentadbir menentukan atribut khusus (contoh: tag pematuhan, ID pelanggan) untuk tugas, permintaan, dan projek—termasuk medan wajib yang dikuatkuasakan melalui pengesahan UI. Medan ini muncul dalam grid, laporan, dan eksport, membolehkan pemodelan data yang fleksibel tanpa perubahan kod. Sistem juga menyokong paparan medan meta dalam grid borang utama dan import CSV, memastikan konsistensi di semua titik kemasukan data. Kebolehsuaian ini menjadikan Plandora sesuai untuk industri yang dikawal selia dan struktur organisasi yang kompleks yang memerlukan jejak audit dan proses standard.
Takrifkan Meta-Field Wajib melalui 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");
}
