Este proyecto surge como la solución a una necesidad notoria en el departamento de sistemas de la universidad del cauca, específicamente en el Grupo de Investigacion IDIS.
IDIS es un grupo multidisciplinar de investigación y desarrollo de la Ingeniería del Software, en el cual gracias a la importancia y reconocimiento nacional e internacional que han adquirido sus proyectos y a su carácter multidisciplinar ha aumentado el número de integrantes, y la comunicación entre los mismos se ha tornado muy difícil, ya que estos en su mayoría residen en el exterior, lo que ha hecho que la dinámica de trabajo se torne complicada por la dispersa ubicación geográfica de dichos integrantes y las herramientas existentes como Skype o el Messenger son insuficientes a las necesidades del grupo de trabajo. El docente Libardo Pantoja plantea la necesidad de disponer de un sistema web groupware que permita organizar adecuadamente el trabajo de sus integrantes y soportar su dinámica de trabajo, donde se requiere la formulación, ejecución, monitoreo y control de proyectos conjuntos, tareas y actividades.
Es de esta forma como una vez planteado el problema empezamos a buscar soluciones que en lo posible pudieran ser las más optimas.
El primer problema era la tecnología a utilizar, la cual se debería escoger dependiendo del tiempo de desarrollo, tamaño, experiencia y disponibilidad de tiempo de los integrantes del grupo y recursos económicos para soportar el proceso de desarrollo de la aplicación que nos estaban planteando.
Optamos por la tecnología Scripting(php), la cual debido a sus características de costos, desempeño, escalabilidad, facilidad de desarrollo e interoperabilidad, era la más apropiada.
Después de esto se escogió un framework de desarrollo, para evitar estar pensando en los “detalles” y facilitar el trabajo. Se debía aprender a utilizarlo y sacar el mayor provecho de sus propiedades, apropiarnos de su filosofía de trabajo, usar al máximo las librerías y funciones para hacer la programación más fácil y de esta manera ahorrar trabajo y tiempo en la producción de aplicaciones más fáciles de mantener, evitando código duplicado, y preocupándonos únicamente por interfaces, lógica y procesos más intuitivos y prácticos para los usuarios.
¿Porque Kumbia y no otro Framework?
Decidimos escoger este framenwork, primero que todo por lo que ya habíamos escuchado de él con nuestros colegas, segundo porque llama la atención utilizar un producto propio de nuestra tierra, y tercero por sus características propias tales como:
- Implementación de los mejores patrones de programación orientados a la Web
- Utilización de características Web 2.0 en nuestro software.
- Facilidad en el mantenimiento de la aplicación.
- Es software libre por lo tanto obtiene todas las ventajas que este proporciona.
- Su documentación esta principalmente en español
Kumbia es un web framework libre, escrito en PHP5, basado en las mejores prácticas de desarrollo web, usado en software comercial y educativo. Kumbia fomenta la velocidad y eficiencia en la creación y mantenimiento de aplicaciones web, reemplazando tareas de codificación repetitivas.
Se ha visto en Kumbia una alternativa para la creación de proyectos en PHP con características como:
- Sistema de Plantillas sencillo
- Administración de Cache
- Scaffolding Avanzado
- Modelo de Objetos y Separación MVC
- Soporte para AJAX
- Generación de Formularios
- Componentes Gráficos
- Seguridad
Lo que nos hizo pensar que Kumbia era la solución que estábamos buscando.
El número de prerrequisitos para instalar y configurar fue muy pequeño, apenas Unix o Windows con un servidor web y PHP5 instalado. Kumbia es compatible con motores de Base de datos como MySQL, PostgreSQL y Oracle.
Kumbia tiene una curva de aprendizaje que está reducida a un día para personas que han usado PHP y han trabajado patrones de diseño para aplicaciones de Internet, nosotros realmente no habíamos trabajado en PHP pero si su aprendizaje se reducía a un día, muy probablemente lograríamos adaptarlo no en un día pero si en muy pocos días dado que kumbia promete un diseño limpio y de fácil lectura de código. Los desarrolladores pueden aplicar principios de desarrollo como DRY, KISS ó XP, enfocándose en la lógica de aplicación y dejando atrás otros detalles que quitan tiempo.
Kumbia intenta proporcionar facilidades para construir aplicaciones robustas para entornos comerciales. Esto significa que el framework es muy flexible y configurable. Al escoger Kumbia sabíamos además que estábamos apoyando un proyecto libre publicado bajo licencia GNU/GPL.
Ahora deberíamos pensar en un IDE’s, ya que estos proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación, El escogido fue Eclipse, una herramienta tan potente como popular que incorpora un sin fin de utilidades para simplificar la labor de los programadores. Aparte de ser un entorno de desarrollo supercompleto, una de las particularidades más interesantes para la comunidad es que es de código libre y gratuito.
Para Eclipse existen diversos plugins o añadidos para proveer de nuevas utilidades al programa, enfocadas a diversos usos que los distintos tipos de programadores pueden necesitar. Unos de los añadidos de Eplipse que más nos interesaron a nosotros como desarrolladores de páginas web fue el módulo para programación en PHP.
Empezamos por crear el proyecto PHP dentro de eclipse con soporte para PHP, solo debería llamarse con el mismo nombre que este tenía en el directorio www de wamp, obviamente dándole esta ruta de acceso a la hora de su ejecución. Fue muy agradable ver como de una manera bonita la herramienta nos mostro el código de la aplicación en forma ordenada por cada una de las carpetas que le provee el framework.