Plandora

 
 

Відкрита система управління проєктами на Java

Плануйте, відстежуйте та керуйте проєктами за допомогою діаграм Ганта, agile-дошок, робочих процесів та інтеграцій на платформі Java з відкритим кодом.

Що таке Plandora?

Plandora — це зрілий open-source система управління проєктами, написана на Java, призначена для корпоративного планування, відстеження та співпраці над проєктами. Вона надає комплексні інструменти, включаючи діаграми Ганта, agile‑дошки, автоматизацію робочих процесів, планування ресурсної місткості та кастомізовану звітність за допомогою JasperReports. Завдяки вбудованій підтримці інтеграцій, таких як JIRA, SVN та RT4, Plandora дозволяє командам керувати складними проєктами, зберігаючи простежуваність і прозорість у всіх підрозділах. Гнучка система метаполів та налаштовувані форми дозволяють організаціям адаптувати платформу під унікальні робочі процеси без змін коду.

Система наголошує на зручності використання та розширюваності, включаючи базу знань з пошуком, схожим на Google, багаторівневі опитування проєктів, управління ризиками та списки завдань у вигляді TO-Do. Plandora підтримує як традиційні каскадні, так і гнучкі методології через збалансовану карту показників, гаджети спаду ітерацій та ієрархії макрозавдань. З моменту перезапуску у 2023 році проєкт виправив понад 30 критичних помилок, покращив продуктивність, додав імпорт/експорт CSV та розширив можливості звітування — включаючи планове генерування звітів та вивід у форматі JPG. Розробники можуть робити внесок через репозиторій [Plandora GitHub](https://github.com/Cynjut/Plandora) та розширювати функціональність, використовуючи його модульну архітектуру та шаблони JDBC/DAO.

Previous Next

Початок роботи з Plandora

Plandora — це веб-застосунок на базі Java, зазвичай розгорнутий на Tomcat або інших JEE‑серверах. Щоб розпочати, клонувати вихідний код з репозиторію [Plandora GitHub](https://github.com/Cynjut/Plandora), переконатися, що встановлені Java 8+ та Maven, і зібрати WAR‑файл за допомогою `mvn clean package`. Розгорнути згенерований WAR у вашому контейнері сервлетів. Система підтримує як пулінг з’єднань Tomcat, так і прямі JDBC‑з’єднання (налаштовані у `web.xml`). Після початкового налаштування сконфігуруйте облікові дані бази даних, параметри SMTP та інтегруйтеся з зовнішніми системами, такими як JIRA або SVN. Plandora включає вбудовані майстри налаштування для основних компонентів, таких як робочі процеси, метаполя та ролі користувачів, щоб прискорити розгортання.

Збірка та розгортання 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 ідеальним як для традиційних менеджерів проєктів, так і для гібридних команд, що використовують поєднання agile‑waterfall.

Експорт діаграми Ганта у 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 підтримує налаштовувані ланцюги затвердження, переходи статусу та коментарі після дій, пов’язані із запитами, завданнями та випадками. Спливаючий інтерфейс робочих процесів тепер відображає опис пов’язаних запитів та повну історію коментарів, покращуючи простежуваність. Метаполя дозволяють адміністраторам визначати користувацькі атрибути (наприклад, теги відповідності, ідентифікатори клієнтів) для завдань, запитів та проєктів — включаючи обов’язкові поля, що контролюються валідацією інтерфейсу. Ці поля відображаються у таблицях, звітах та експорті, забезпечуючи гнучке моделювання даних без змін коду. Система також підтримує відображення метаполів у головних таблицях форм та імпорт 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");
}
 Українська