Textil ERP
Capture and Ship es una compleja aplicación web con funcionalidades especificas para la industria de impresión de prendas de vestir que se centran en la productividad, la eficacia y la eficiencia.
Fase de Inicio
Al comienzo de este proyecto, los socios del proyecto, quienes fueron proyectando esta plataforma, vinieron a consultarnos si seríamos capaces de ayudarles con este proyecto. Por supuesto respondimos "sí". Así fue como empezamos a trabajar en la fase inicial para recolectar juntos todos los requerimientos en base a las ideas que ellos tenían, la definición de requisitos de alto nivel y comenzar a diseñar una arquitectura del sistema con una estructura de base de datos. Después de semanas de trabajo, alcanzamos el primer documento de especificaciones con mayor prioridad para empezar a trabajar en nuestra primera fase de desarrollo, en ese momento sabíamos que iba a ser un proyecto muy grande con mucho trabajo por hacer.
Fase de desarrollo
Solemos trabajar con un enfoque ágil para todos nuestro proyecto, seguro este no sería una excepción, empezamos a trabajar en los milestones con las principales funcionalidades para implementar el núcleo de esta plataforma. Durante los primeros meses nos dimos cuenta de que la innovación y la creatividad serían prioridad para la mayor parte del proceso, por eso integramos tecnologías de vanguardia para este trabajo, no sólo HTML5, CSS3, jQuery Bootstrap o FontAwesome como lo hacemos desde hace unos años, pero también AngularJS, npm, Bower, Grunt, así como las pruebas automáticas y el despliegue de los distintos entornos utilizando GIT para acelerar tiempos en cada liberaciones.
Durante nuestro desarrollo, hemos tenido que aprender sobre muchas de reglas de negocio, herramientas específicas y proceso de impresión de las prendas con el fin de tener la mejor comprensión para ofrecer la mejor solución que permita gestionar las campañas, distintos productos de cada tipo de prendas de vestir, los trabajos de arte, proceso de impresión (en ingles, DTG printing) y envío de productos finalizados a cada uno de los clientes.
La aplicación web proporciona a los administradores la capacidad de gestionar los usuarios, cuentas de clientes, cuentas de proveedores, ventas y pedidos, ordenes de compra y transacciones integrando varias funcionalidades para cada interfaz de usuario. Hay más de 8 niveles de usuarios, cada uno con diferentes permisos sobre el sistema para ejecutar acciones específicas.
Los clientes pueden enviar campañas y gestionar distintas temporadas para sus productos, crear nuevas ordenes de compra por productos y talles, gestionar múltiples usuarios bajo su cuenta del cliente, por ejemplo, si usted es dueño de una empresa y necesitas camisas para sus empleados entonces puede volver a ordenar más productos de vez en cuando.
Además, con el fin de completar y poner en marcha el módulo ERP para esta plataforma hemos integrado la gestión de productos de stock, el módulo de comercio electrónico interno, el pago basado en la contabilidad de doble entrada, informes, gráficos y estadísticas.
En una de las ultimas fases, implementamos un API que permite a otras aplicaciones conectarse con el app principal de Capture para crear y gestionar trabajos de manera automatizada. En este caso se desarrollo un plugin de CakePHP totalmente desde cero que permite gestionar las conexiones externas, validar y autenticar usuarios a través de OAuth 2.0. Una vez validada la conexión, la aplicación cliente debe enviar un request REST para crear y monitorizar trabajos de impresión. Estos request están ajustado a la documentación online que se provee, la cual fue generada a partir de nuestro desarrollo.
Tecnologías
- CakePHP: Framework PHP basado en patrón MVC.
- MySQL: Se define la base de datos utilizando el motor InnoDB para la integridad de las tablas requeridas y MyISAM para consultas rápidas a las tablas no relacionales.
- Boostrap + FontAwesome + GoogleFonts: estas son unas de las mejores herramientas para construir interfaces de usuario totalmente multiplataforma y adaptables para dispositivos móviles (responsive).
- AngularJS: Framework MVC totalmente codificado en javascript, producido por Google, que nos permite implementar la interfaz de usuario dinámica, nos ayuda mejorar el tratamiento de los datos en tiempo real, mucho más rápido, lo que reduce las necesidades de conectarse al servidor para su procesamiento, totalmente compatible con móvil, es multiplataforma y la más importante es de código abierto.
- MongoDB: base de datos NoSQL que permite una mayor cantidad de consultas de datos en menos tiempo que una base de datos SQL.
- Elastic Search 1.5.2 / Lucene v4.10.4: motor de búsqueda interno que ofrece varias funcionalidades para realizar la búsqueda complejo basado en una palabra clave y devuelve resultados casi instantáneos.
- npm, Bower y Grunt: son tecnologías geniales que hacen las cosas mucho más fáciles para gestionar paquetes instalados en nuestros entornos de desarrollo, entorno de prueba e incluso de producción. Nos permite instalar y manejar por ejemplo FontAwesome, Bootrstrap, Less, jQuery entre otros.
- OAuth 2.0: Es un protocolo que provee un flujo para autenticar conexiones remotas en aplicaciones web, móviles y también de escritorio que necesitan conectarse con un servidor.