
پلاندورا
سیستم مدیریت پروژه منبع باز جاوا
برنامهریزی، پیگیری و مدیریت پروژهها با نمودارهای گانت، تابلوهای چابک، گردش کار و ادغامها از طریق پلتفرم جاوا متن باز.
پلاندورا چیست؟
Plandora یک سیستم مدیریت پروژه منبع باز و بالغ است که با جاوا ساخته شده و برای برنامهریزی، پیگیری و همکاری در سطح سازمانی طراحی شده است. این سیستم ابزارهای جامع از جمله نمودارهای گانت، تابلوهای چابک، خودکارسازی گردش کار، برنامهریزی ظرفیت منابع و گزارشگیری سفارشی از طریق JasperReports را ارائه میدهد. با پشتیبانی داخلی از ادغامهایی مانند JIRA، SVN و RT4، Plandora به تیمها امکان میدهد پروژههای پیچیده را مدیریت کنند در حالی که قابلیت ردیابی و شفافیت را در سراسر بخشها حفظ میکند. سیستم متا-فیلد انعطافپذیر و فرمهای قابل تنظیم آن به سازمانها اجازه میدهد پلتفرم را بدون تغییر کد به جریانهای کاری منحصر به فرد خود سازگار کنند.
سیستم بر قابلیت استفاده و گسترشپذیری تأکید دارد و شامل یک پایگاه دانش با جستجوی شبیه به گوگل، نظرسنجیهای چندسطحی پروژه، مدیریت ریسک و فهرستهای کارهای TO-Do مبتنی بر وظیفه است. Plandora از متدولوژیهای سنتی آبشاری و چابک همزمان پشتیبانی میکند از طریق کارت امتیاز متعادل، ابزارهای کاهش سرعت تکرار و سلسلهمراتب ماکرو‑وظیفه. از زمان راهاندازی مجدد در سال 2023، این پروژه بیش از 30 باگ بحرانی را رفع کرده، عملکرد را بهبود بخشیده، قابلیت واردات/صادرات CSV را اضافه کرده و تواناییهای گزارشگیری را ارتقا داده است — از جمله تولید گزارش زمانبندیشده و خروجی JPG. توسعهدهندگان میتوانند از طریق مخزن [Plandora GitHub](https://github.com/Cynjut/Plandora) مشارکت کنند و با استفاده از معماری مدولار و الگوهای JDBC/DAO عملکرد را گسترش دهند.
شروع کار با پلاندورا
Plandora یک برنامه وب مبتنی بر جاوا است که معمولاً بر روی Tomcat یا سایر سرورهای JEE مستقر میشود. برای شروع، منبع را از مخزن [Plandora GitHub](https://github.com/Cynjut/Plandora) کلون کنید، اطمینان حاصل کنید که Java 8+ و Maven نصب شدهاند، و فایل WAR را با استفاده از `mvn clean package` بسازید. WAR تولید شده را به کانتینر سرولت خود مستقر کنید. این سیستم از هر دو اتصال pooling در Tomcat و اتصال مستقیم JDBC (پیکربندی شده در `web.xml`) پشتیبانی میکند. پس از تنظیم اولیه، اعتبارنامههای پایگاه داده، تنظیمات SMTP را پیکربندی کنید و با سیستمهای خارجی مانند JIRA یا SVN یکپارچه شوید. Plandora شامل ویزاردهای تنظیمات داخلی برای اجزای اصلی مانند گردش کار، فیلدهای متا و نقشهای کاربری است تا استقرار را تسریع کند.
ساخت و استقرار پلاندورا از طریق 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/
نمودارهای گانت با رویدادهای تقویم و نقاط عطف
نمودار گانت Plandora زمانبندی پروژهها را با پشتیبانی از کارهای کلان، نقاط عطف و رویدادهای تقویمی به تصویر میکشد. این نمودار بهصورت پویا منابع و کارها را فیلتر میکند و حتی زمانی که منابع اختصاص یا حذف میشوند، ردیابی دقیق پیشرفت را تضمین مینماید. اکنون این نمودار شامل نشانگرهای نقاط عطف است و با تقویمهای پروژه یکپارچه میشود تا روزهای کاری و تعطیلات را نشان دهد. کاربران میتوانند نماهای گانت را به فرمتهای CSV، XLS یا JPG برای گزارشگیری و اشتراکگذاری صادر کنند. بهبودهای عملکردی رندر روان برای مجموعهدادههای بزرگ را تضمین میکند و سیستم بهدرستی برش کارها را هنگام واردات از MSProject مدیریت مینماید. فیلدهای سفارشی و متا‑فیلدها میتوانند مستقیماً بر روی شبکه گانت نمایش داده شوند و زمینهٔ غنیتری را بدون ترک نمای زمانبندی فراهم میکنند. این ویژگی Plandora را برای مدیران پروژهٔ سنتی و تیمهای ترکیبی که از ترکیب روشهای چابک‑آبشاری استفاده میکنند، ایدهآل میسازد.
صادرات نمودار گانت به JPG از طریق گزارش زمانبندیشده
// 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 برای وارد کردن موارد
پلاندورا شامل یک عامل اختصاصی برای وارد کردن موارد JIRA به عنوان درخواستهای پلاندورا است، که شامل پیوستها و متادیتا میشود. این یکپارچهسازی بین تیکتگذاری و برنامهریزی پروژه پل میزند و به ذینفعان غیر فنی اجازه میدهد از RT4 یا JIRA استفاده کنند در حالی که توسعهدهندگان کار را در پلاندورا مدیریت میکنند. فرآیند واردات روابط موارد، اولویت، مسئولان و زمانبندیها را حفظ میکند. این امکان فیلتر بر اساس پروژه، وضعیت یا بازه زمانی را فراهم میکند و دستههای بزرگ را بهصورت کارآمد مدیریت مینماید. پس از واردات، موارد به درخواستهای کامل پلاندورا تبدیل میشوند با فیلدهای قابل ویرایش، انتقالهای جریان کار و سلسلهمراتب وظایف. این ویژگی بهویژه برای سازمانهایی که از JIRA مهاجرت میکنند یا سیستمهای دوگانه را نگه میدارند، ارزشمند است. توسعهدهندگان میتوانند عامل را از طریق پیکربندی یا افزونههای سفارشی گسترش دهند تا فیلدهای اضافی JIRA یا فیلدهای سفارشی را پشتیبانی کنند.
وارد کردن موارد JIRA از طریق عامل خط فرمان
// 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();
مدیریت ظرفیت منابع و مقایسه
فرم ظرفیت منابع Plandora امکان برنامهریزی دقیق و پیگیری در دسترس بودن تیم نسبت به استفاده واقعی را فراهم میکند. این فرم ظرفیت استفادهشده را بر اساس وظایف اختصاص دادهشده، تکرارها و برگههای زمانسنجی محاسبه میکند و فیلترهایی برای مقادیر صفر/خالی و بازههای زمانی دارد. کاربران میتوانند ظرفیت تخمینزدهشده و استفادهشده را بهصورت کنار هم مقایسه کنند تا تخصیص بیش از حد یا کمبود را شناسایی کنند. سیستم بهصورت روان منابع حذفشده را پشتیبانی میکند و خطاهای پرسوجوی پایگاهداده را هنگام حذف اعضا از تمام پروژهها برطرف میسازد. دادههای ظرفیت با نمودارهای گانت و ابزارهای برنداون یکپارچه میشوند و برنامهریزی واقعی برای اسپرینتها و نقاط عطف را امکانپذیر میسازند. مدیران میتوانند تخمینها را بهصورت پویا تنظیم کنند و تغییرات به گزارشها و داشبوردهای پاییندست منتقل میشوند. این ویژگی برای حاکمیت منابع در سطح پرتفوی و پیشبینی در محیطهای چندپروژهای حیاتی است.
فیلتر کردن ظرفیت منابع بر اساس مقادیر صفر
// 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());
}
}
اتوماسیون گردش کار و سفارشیسازی فیلدهای متا
موتور گردش کار Plandora از زنجیرههای تأیید قابل تنظیم، انتقال وضعیتها و نظرات پیگیری مرتبط با درخواستها، وظایف و رخدادها پشتیبانی میکند. رابط کاربری پاپ‑آپ گردش کار اکنون توضیحات درخواستهای مرتبط و تاریخچه کامل نظرات را نمایش میدهد و قابلیت ردیابی را بهبود میبخشد. متا‑فیلدها به مدیران امکان تعریف ویژگیهای سفارشی (مانند برچسبهای انطباق، شناسههای مشتری) برای وظایف، درخواستها و پروژهها را میدهند—بهطوری که فیلدهای اجباری از طریق اعتبارسنجی UI اعمال میشوند. این فیلدها در جدولها، گزارشها و خروجیها ظاهر میشوند و مدلسازی دادهای انعطافپذیر را بدون تغییر کد فراهم میکنند. سیستم همچنین نمایش متا‑فیلدها را در جدولهای فرم اصلی و واردات CSV پشتیبانی میکند تا سازگاری در نقاط ورود داده حفظ شود. این قابلیت گسترشپذیری، Plandora را برای صنایع تحت نظارت و ساختارهای سازمانی پیچیده که به ردپای حسابرسی و فرآیندهای استاندارد نیاز دارند، مناسب میسازد.
تعریف متا-فیلد اجباری از طریق 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");
}
