
Plandora
Sistema de Gestión de Proyectos Java de Código Abierto
Planifique, siga y gestione proyectos con diagramas de Gantt, tableros ágiles, flujo de trabajo e integraciones a través de la plataforma Java de código abierto.
¿Qué es Plandora?
Plandora es un sistema de gestión de proyectos de código abierto maduro, desarrollado en Java, diseñado para la planificación, seguimiento y colaboración de proyectos a nivel empresarial. Proporciona herramientas integrales que incluyen diagramas de Gantt, tableros ágiles, automatización de flujos de trabajo, planificación de capacidad de recursos e informes personalizados mediante JasperReports. Con soporte incorporado para integraciones como JIRA, SVN y RT4, Plandora permite a los equipos gestionar proyectos complejos mientras mantienen la trazabilidad y la transparencia entre departamentos. Su sistema flexible de meta‑campos y formularios personalizables permiten a las organizaciones adaptar la plataforma a flujos de trabajo únicos sin necesidad de cambios de código.
El sistema enfatiza la usabilidad y la extensibilidad, ofreciendo una base de conocimientos con búsqueda al estilo de Google, encuestas de proyecto multinivel, gestión de riesgos y listas de tareas basadas en TO-Do. Plandora admite tanto metodologías tradicionales en cascada como ágiles a través de su cuadro de mando equilibrado, gadgets de quema de iteraciones y jerarquías de macro‑tareas. Desde su reinicio en 2023, el proyecto ha corregido más de 30 errores críticos, mejorado el rendimiento, añadido importación/exportación CSV y potenciado las capacidades de generación de informes, incluyendo la generación programada de informes y salida JPG. Los desarrolladores pueden contribuir a través del repositorio [GitHub de Plandora](https://github.com/Cynjut/Plandora) y ampliar la funcionalidad usando su arquitectura modular y los patrones JDBC/DAO.
Comenzando con Plandora
Plandora es una aplicación web basada en Java que normalmente se despliega en Tomcat u otros servidores JEE. Para comenzar, clona el código fuente del repositorio [Plandora GitHub](https://github.com/Cynjut/Plandora), asegúrate de que Java 8+ y Maven estén instalados, y construye el archivo WAR usando `mvn clean package`. Despliega el WAR generado en tu contenedor de servlets. El sistema soporta tanto el agrupamiento de conexiones de Tomcat como conexiones JDBC directas (configuradas en `web.xml`). Después de la configuración inicial, configura las credenciales de la base de datos, los ajustes SMTP y la integración con sistemas externos como JIRA o SVN. Plandora incluye asistentes de configuración incorporados para componentes centrales como flujos de trabajo, metacampos y roles de usuario para acelerar el despliegue.
Compilar y desplegar Plandora mediante 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/
Diagramas de Gantt con eventos de calendario y hitos
El diagrama de Gantt de Plandora visualiza las líneas de tiempo de los proyectos con soporte para macro tareas, hitos y eventos del calendario. Filtra dinámicamente recursos y tareas, garantizando un seguimiento preciso del progreso incluso cuando los recursos se asignan o eliminan. El diagrama ahora incluye marcadores de hitos e integra los calendarios del proyecto para reflejar los días laborables y los festivos. Los usuarios pueden exportar vistas de Gantt a formatos CSV, XLS o JPG para informes y compartir. Las mejoras de rendimiento aseguran una renderización fluida para conjuntos de datos grandes, y el sistema maneja correctamente el truncamiento de tareas durante importaciones de MSProject. Los campos personalizados y metacampos pueden mostrarse directamente en la cuadrícula de Gantt, proporcionando un contexto más rico sin salir de la vista de la línea de tiempo. Esto hace que Plandora sea ideal tanto para gerentes de proyecto tradicionales como para equipos híbridos que utilizan combinaciones ágil‑waterfall.
Exportar diagrama de Gantt a JPG mediante informe programado
// 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();
Integración con JIRA para importación de incidencias
Plandera incluye un agente dedicado para importar incidencias de JIRA como solicitudes de Plandera, incluyendo adjuntos y metadatos. Esta integración une la gestión de tickets y la planificación de proyectos, permitiendo a los interesados no técnicos usar RT4 o JIRA mientras los desarrolladores gestionan el trabajo en Plandera. El proceso de importación conserva las relaciones de incidencias, prioridad, asignados y marcas de tiempo. Soporta filtrado por proyecto, estado o rango de fechas y maneja lotes grandes de manera eficiente. Después de la importación, las incidencias se convierten en solicitudes completas de Plandera con campos editables, transiciones de flujo de trabajo y jerarquías de tareas. Esta característica es especialmente valiosa para organizaciones que migran de JIRA o mantienen sistemas duales. Los desarrolladores pueden extender el agente mediante configuración o complementos personalizados para soportar campos adicionales de JIRA o campos personalizados.
Importar incidencias de JIRA mediante agente de línea de comandos
// 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();
Gestión y comparación de la capacidad de recursos
El formulario de capacidad de recursos de Plandora permite una planificación detallada y el seguimiento de la disponibilidad del equipo frente al uso real. Calcula la capacidad utilizada en función de las tareas asignadas, iteraciones y hojas de tiempo, con filtros para valores cero/vacíos y rangos de fechas. Los usuarios pueden comparar la capacidad estimada y la utilizada lado a lado para identificar sobreasignación o subasignación. El sistema admite recursos desasignados de manera elegante, corrigiendo errores de consultas a la base de datos cuando los miembros se eliminan de todos los proyectos. Los datos de capacidad se integran con diagramas de Gantt y gadgets de burndown, permitiendo una planificación realista de sprints y hitos. Los gerentes pueden ajustar las estimaciones de forma dinámica, y los cambios se propagan a los informes y paneles posteriores. Esta característica es fundamental para la gobernanza y previsión de recursos a nivel de cartera en entornos de múltiples proyectos.
Filtrar capacidad de recursos por valores cero
// 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());
}
}
Automatización de flujos de trabajo y personalización de metacampos
El motor de flujo de trabajo de Plandora admite cadenas de aprobación personalizables, transiciones de estado y comentarios de seguimiento vinculados a solicitudes, tareas y ocurrencias. La interfaz emergente del flujo de trabajo ahora muestra descripciones de solicitudes relacionadas y el historial completo de comentarios, mejorando la trazabilidad. Los meta-campos permiten a los administradores definir atributos personalizados (p. ej., etiquetas de cumplimiento, IDs de cliente) para tareas, solicitudes y proyectos, incluidos campos obligatorios aplicados mediante validación de la interfaz de usuario. Estos campos aparecen en cuadrículas, informes y exportaciones, lo que permite un modelado de datos flexible sin cambios de código. El sistema también admite la visualización de meta-campos en las cuadrículas del formulario principal y en importaciones CSV, garantizando la consistencia en todos los puntos de entrada de datos. Esta extensibilidad hace que Plandora sea adecuada para industrias reguladas y estructuras organizativas complejas que requieren auditorías y procesos estandarizados.
Definir meta‑campo obligatorio mediante 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");
}
