Es muy habitual requerir una gestión de proyectos (proyectos y tareas) en muchas actividades de un empresa.
La primera impresión puede ser que se requiera para la gestión de los proyectos informáticos, pero no sólo es para eso, sino que también se requiere para el control de Planes (sistemas, estratégicos, etc.) que normalmente tienen Medidas y que esta Medidas tienen Proyectos de ejecución.
También, otros pretenden que sean herramientas que sustituye a herramientas como MS Project. Esto no es así, estas herramientas sirven para coordinar y controlar muchos proyectos, pero no el detalle de los proyectos.
Cuando he utilizado soluciones de este tipo (DotProject y Web2Project, productos open source desarrollados en PHP y MySQL) siempre se complementaba los detalles de los proyectos con su seguimiento detallado en MS Project.
También, cuando he trabajado en la ejecución y seguimiento de los planes, una parte importante era el seguimiento de los proyectos, pero otras muy importantes eran:
- Inventario de las Medidas/Acciones con todos sus atributos de agrupaciones.
- Informes y cuadros de mando de seguimiento.
- Resumen de seguimiento para la dirección de la empresa.
- Etc.
Con esto quiero señalar que si utilizaba, por ejemplo Web2Project, tenía que integrar sus datos con otro aplicativo que manejase el resto de los datos y todos los informes y cuadros de mandos.
Lo que he pretendido es disponer de una solución de gestión de proyectos que pudiera crecer y adecuarse el resto de los datos que se requieren en los Planes y esto es bastante sencillo utilizando PHPRunner, por lo que se requiere es la funcionalidad básica de la gestión de los proyectos, a saber:
- Las entidades básicas son Compañías, Departamentos, Proyectos y Tareas.
- Las tareas se planifican según calendario laboral (sin fines de semana y festivos) o días naturales.
- En las tareas debe poderse definir jerarquía entre ellas (agrupación de tareas).
- Entre las tareas se pueden definir dependencias y poderse recalcular la fecha de inicio sí la tarea de la que depende se retrasa (camino crítico).
Otro aspecto muy importante es la seguridad, de tal forma que:
-
A los proyectos se podrán configurar los acceso según:
-
Público (todos los usuarios podrán acceder)
-
Compañía (sólo podrán acceder los usuarios de la compañía del proyecto).
-
Departamento (sólo podrán acceder los usuarios del departamento del proyecto)
-
Propietario (sólo podrá acceder el propietario del proyecto)
-
Propietario proyecto y propietarios de tareas (Sólo podrán acceder estos usuarios)
-
-
A las tareas se podrán configurar los acceso según:
-
Público (todos los usuarios podrán acceder)
-
Compañía (sólo podrán acceder los usuarios de la compañía del proyecto).
-
Departamento (sólo podrán acceder los usuarios del departamento del proyecto)
-
Propietario (sólo podrá acceder el propietario del proyecto)
-
Propietario proyecto y propietarios de tareas (Sólo podrán acceder estos usuarios)
-
Esta gestión de seguridad se ha realizado definiendo una lógica diferente a la utilizada normalmente en los desarrollos de PHPrunner y complementaria a estos.
Para el apoyo visual de la información se ha incluido la librería de JavaScript AnyGantt y FULLCALENDAR
Se han utilizado los plugins (descargables gratuitamente):
- Colors.- Para selección y visualización de colores.
- BootstrapDataPicker.- Calendario para días festivo
El ejemplo se ha desarrollado en inglés y español y se ha partido del modelo de datos de web2Project, para la definición de los atributos de “projects” y “tasks”.
También hay definición de CSS para disponer de un interfaz de aplicación agradable.
Esta figura muestra la página principal del ejercicio. También dispone de la funcionalidad de ver integrado en el Gantt los subproyectos que tenga el proyecto.
Consulta de Tareas:
(1) Pestaña de todas las tareas.
(2) Pestaña de las tareas en que el usuario conectado es el propietario
(3) Pestaña de las tareas en que el usuario conectado está asignado.
(4) Se pueden aplicar diferentes filtros para restringir las tareas que salen en las distintas pestañas
(5) Se pueden buscar las tareas asignadas a un usuario.
Consulta de Usuarios asignados (Recursos);
(1) Se pueden utilizar los filtros para conocer las tareas asignadas a los usuarios.
(2) Se muestran las tareas, según asignación, mostrando el porcentaje de asignación.
(3) se puede hacer clic en el segmento y visualizar todos los datos de la tarea.
Los usuarios de acceso son los que se muestran en la imagen con sus password.
Ampliación de la gestión de seguridad
He cambiado la gestión de seguridad, haciendo qué:
- Todos los datos de Proyectos y Tareas sean consultables para todos los usuarios que tengan acceso al sistema.
- Sólo podrán modificar Proyectos (1) o Tareas (3), los usuarios que se ajusten a la configuración de acceso que tengan estas informaciones.
- Las Tareas y ficheros (2) heredaran de Proyectos (1) los accesos cuando los estemos tratando.
- De igual forma, los Log (4) y Ficheros (4) heredaran los accesos de Tareas (3) cuando los estemos tratando.
- Para agilizar el interfaz, de ha cambiado la lógica de PHPRunner para que las Altas/Inserciones de Log y Ficheros se hagan de forma directa en «POPUP».
Los últimos cambios realizados son:
- Cambiar el producto de visualización de los Gantt para utilizar la solcuión de AnyChart. Esto nos ha dado nuevas posibilidades.
- Poder visualizar y editar todas las características de las tareas desde el mismo Gantt.
- He corregido un error en el calculo de la fecha final partiendo de los días de la tarea. El problema era la edición del formato de fecha para español e inglés.
- He incluido la funcionalidad de Backup y Restore de la base de datos, desde la misma aplicación. Esto me facilitará la restauración de los datos iniciales, ya que al final los usuarios «destruyen» el juego de pruebas con que lo instalo.
- He pasado y dejado la versión en la versión 10.91 de PHPRunner. Desde ella, podría ser migrada a versiones 11 del producto.
- También, voy a dejar una versión generada, para que quién no tenga PHPRunner pueda instalarlo y configurarlo, apoyándose en el fichero «config.php» que tiene los datos de conexión a la Base de Datos. He tenido varios usuarios que estaban interesados en la solución, pero no contaban con PHPRunner.
Para los que no dispongan de PHPRunner, debéis tener en cuenta que el KIt que os dejo requiere:
- Web Server Apache o similar, con PHP 8.2 o PHP 8.3
- MySQL o Maria DB.
Las instrucciones de instalación son simples:
- Descargar el KIT de instalación directorio «php».
- Desplegar el zip de la aplicación en el directorio del «document Root» de tu web Server, por ejemplo, directorio «project».
- Crear una base de datos, por ejemplo «project» y crear todos los objetos con el Backup del modelo de datos, con el fichero del directorio «database».
- Configurar el fichero «config.php», que si has instalado en el directorio «project» sería el path «project/config.php» y ahí escribir los datos de la conexión a la base de datos.
- Con eso, ya tienes el producto instalado y el usuario por defecto es «admin»/»admin». Con este usuario, ya puedes cambiar el resto de configuración, así como los usuarios existentes o nuevos.
Para los usuarios que dispongan de PHPRunner, debéis instalar en vuestro disco el directorio «phprunner» y crear la base de datos con el contenido del fichero «database». Después de los pasos anteriores hay que ejecutar PHPRunner y abrir el fichero «project2.phpr».






