Comparte en Facebook Twitter Google+

En este post, Shirley Concepción, una de nuestros primeros estudiantes, nos hablará de su proyecto Caja Amiga, realizado con Laravel 5.5, y además, nos dará algunos consejos sobre cómo realizar nuestros propios proyectos de forma exitosa.

¿Cómo y cuándo descubriste a Styde?

Tengo la suerte haber visto nacer a Styde.

En agosto del 2014 había creado un mini gestor de contenidos para dar respuesta a los proyectos web que iba desarrollando, pero llegó un punto en el que el alto ritmo de crecimiento de las nuevas tecnologías y la demanda de nuevos requerimientos hizo que no pudiera dar abasto a todo, necesitaba apoyarme en un framework.

Estudié varios frameworks, entre ellos Django, Ruby on Rails, Sinatra, Codeigniter, Yii, y Laravel; fue entonces cuando me topé con un post de Duilio en Cristalab y lo comencé a seguir por su canal de YouTube y su website http://duilio.me.

Para esa época Laravel tenía una buena crítica y comenzaba a destacar; pero lo que realmente me hizo decantarme por Laravel fue ver los comentarios en el código fuente… Es increíble, ¡Mantienen un patrón!, Pensé: “si Taylor, su creador, tiene la delicadeza de escribir los comentarios en el código de forma armónica ¿Cómo será entonces la lógica del código?,  ¡Tiene que ser exquisita!” Y así fue, cada vez que iba conociendo más el framework, me iba enamorando más y más de éste.

Era seguidora del canal de Duilio en YouTube, y a los pocos meses nació el canal de Slack “AprendiendoLaravel”, creo recordar. Allí, en Slack creció la comunidad de seguidores y luego Duilio creó Styde y aquí seguimos. Creo haber sido la segunda persona en contratar el Plan Anual en Styde, era la primera vez que contrataba una membresía anual, mi confianza era plena.

¿Qué has aprendido en este tiempo en Styde?

Conocer las capas internas de Laravel me ha permitido desarrollar proyectos web más seguros, aplicando una lógica más óptima. Por otra parte, el uso de TDD es muy importante si queremos llevar a cabo un desarrollo web profesional. Este conocimiento lo he adquirido gracias a Styde.

Cuéntanos sobre tu proyecto “Caja Amiga”

¿Qué es Caja Amiga?

Caja Amiga es un proyecto que busca brindar una herramienta de trabajo gratuita para los comercios minoristas especializados en el sector de la restauración, es decir, bares y restaurantes.

Es un programa que se puede instalar bajo el sistema operativo Windows (en cualquiera de sus versiones a partir de Windows 7). Una vez instalado, el usuario de Caja Amiga podrá llevar a cabo la definición de artículos o alimentos, sus tarifas, impuestos, zonas de trabajo, entre otros. Además, cuenta con todo lo necesario para emitir el ticket o factura de venta. Sin ningún tipo de restricción.

Caja Amiga - TPV

Formulario de selección de artículos – Gestión de Ventas – TPV

¿Y si es gratis?, ¿Dónde está el modelo de negocio?

Emitir el ticket o factura de venta es solo el primer paso en los procesos que realiza nuestro sistema. Por ejemplo, nuestro sistema brinda estadísticas y análisis del proceso de venta cuya compresión ayudará a mejorar la productividad y eficiencia de los establecimientos. Además, nuestra versión Premium ofrece cuidado y protección adicional de la información mediante copias de seguridad, tanto del catálogo de productos como de las ventas realizadas. Esta información estará disponible de forma segura para que los gerentes puedan monitorear las transacciones del negocio en tiempo real y desde cualquier dispositivo móvil. Estas son algunas de las ventajas de nuestra Suscripción Premium.

Suscripción Premium - Caja Amiga

Zona privada (acceso al estado de la Suscripción Premium)

¿Cómo nace Caja Amiga y con qué finalidad?

Hace 8 años un cliente me pidió desarrollar una aplicación de escritorio para un TPV (Terminal Punto de Venta), consistía en un programa para gestionar los pedidos y ventas que se producían en su restaurante. Un año más tarde, un familiar, cuyo modelo de negocio también proviene del mundo de la restauración (bares y restaurantes), me pidió ampliar su sistema informático, y por supuesto, esto me ayudó a detectar nuevos requerimientos en el mercado.

En vista de lo fácil que me resultó adaptar la primera etapa del desarrollo, e integrarlo con este segundo requerimiento, me puse a pensar en desarrollar una solución global que pueda ayudar y llegar a muchas más personas en este sector. Por medio del desarrollo para otros clientes del sector mejoré los sistemas de venta en línea, así como también los dispositivos para la captación del pedido desde la mesa (comanderas), que envían el pedido a la zona de trabajo. Esto me permitió ver la cadena del valor del negocio, combinando diferentes áreas de desarrollo, como lo son la Web y las aplicaciones de escritorio (TPV), e integrar ambos mundos.

La finalidad de Caja Amiga es ofrecer una solución integral y segura a las empresas del sector de la restauración (bares y restaurantes) desde donde quiera que estén.

Está formada por dos aplicaciones:

  • La Plataforma Web: Desarrollada en Laravel 5.5, es la encargada de ofrecer información al cliente en tiempo real sobre las ventas que lleva a cabo, permite la gestión de tickets de soporte, respaldo de datos en la nube (cloud backup), estadísticas en línea, entre otros beneficios.
  • Gestión de Ventas (TPV): Es una aplicación de escritorio desarrollada en RAD Studio 10.2, lleva toda la gestión de venta, clientes, usuarios, artículos, pedidos, croquis de mesas, sala o comedor; además de tarifas, impuestos y zonas de trabajo.
Laravel 5.5, RX RAD Studio 10.2

Plataformas utilizadas en el proyecto

Ambas aplicaciones están interrelacionadas, lo que nos permite aprovechar lo mejor de cada sistema para beneficio de nuestros clientes.

¿Qué metodologías, principios o patrones de diseño has aplicado de forma exitosa para realizar este proyecto? ¿Cuáles has descartado?

Dado que ya contaba con una aplicación actualmente funcional en varios clientes del sector de la restauración, opté por la metodología de desarrollo JAD (Joint Application Design), contaba con la participación de los usuarios sobre el producto, esta información fue recopilada durante años desde que la primera versión de la aplicación se puso en marcha. Mi objetivo con este proyecto era llevar a cabo una mejora funcional e integrarlo en un ecosistema web, partiendo de un conjunto de especificaciones que ya conocía. La aplicación de esta metodología en el desarrollo del programa de escritorio redujo los tiempos de desarrollo. La aplicación fue desarrollada en 6 meses.

En lo referente a la Aplicación Web, como patrón de arquitectura destacaría MVP (Model View Presenter), aprovechando el cúmulo de experiencia en desarrollos web anteriores, por ejemplo, en la gestión de tickets y la emisión de facturas, los incorporé como módulos re-utilizables (en su lógica) en éste nuevo desarrollo web, basado en Laravel 5.5.

Por otra parte, dado la recurrencia en el acceso a la instancia del objeto que almacena la información del cliente, opté por implantar el patrón Singleton, únicamente para esta clase, siendo la más utilizada en la zona privada o restringida de la web.

Finalmente, debo confesar que aplicar TDD me resultaba chocante, las pruebas eran siempre la etapa final en el desarrollo, “¿Cómo voy a crear una prueba de algo que aún no he desarrollado?”, son preguntas comunes, que seguro a más de uno le ha pasado por la cabeza. En Styde el punto de partida es TDD, este enfoque ha hecho que poco a poco lo incorpore en el desarrollo y no puede faltar en este proyecto. Las pruebas automatizadas son el elemento exitoso en la creación de este proyecto.

Código y pruebas automatizadas

Las pruebas automatizadas aseguraron la realización exitosa del proyecto.

¿Qué le recomiendas a personas que quieren comenzar sus propios proyectos como tú?

Podría decir perseverar, pero soy sincera, perseverar en un proyecto o en una idea no hará que tu proyecto alcance la etapa de realización. No, no es perseverar lo que garantizará el éxito, es el conocimiento. Se puede perseverar y perseguir constantemente un objetivo, pero si la base de partida no es el conocimiento, no se llegará a alcanzar ninguna meta.

Así, mi recomendación es no pensar en cómo lograr el objetivo establecido, sino pensar dónde puedo adquirir el conocimiento necesario para lograr el objetivo. Cuando logres adquirir el conocimiento necesario para alcanzar el objetivo, entonces podrás establecer una meta cuantificable, establecer tiempos de desarrollo y llevarlo a cabo, y la suma de todos esos pequeños logros es lo que en su conjunto hará que logres alcanzar la etapa de realización.

¿Qué ritmo de estudio has llevado con nosotros? Tienes alguna recomendación para los demás usuarios?

Al inicio, traté de hacer todos los vídeos de un curso en el menor tiempo posible, esto es útil si tengo que desarrollar algo relacionado al tema, pero resulta muy difícil asimilar todo el contenido en tan poco tiempo. Más adelante, y durante el desayuno, me acostumbré a leer los titulares de las noticias en la tablet, y luego, a ver un vídeo relacionado con la programación, a veces no completo, pero sí al menos parte de uno, esto hacía que a la hora de desarrollar un tema en concreto pudiera recordar dónde buscar el material necesario para éste.

Gracias por tu tiempo y dedicación a Styde como estudiante. ¿Un último mensaje referente a Caja Amiga?

Esto es solo el principio, este proyecto parte explotando una única línea de negocio, hay muchas más en el tintero, y estoy segura que en esta comunidad hay mucho potencial que puede formar parte de este proyecto, así que invito a todo(a)s los que deseen participar en el desarrollo del proyecto a que me contacten a [email protected].

En el futuro, el usuario de Caja Amiga podrá adquirir un espacio web personalizado con la información de su propio negocio, información que no será necesaria volver a indicar, porque el sistema lo tomará de su nube. Del mismo modo, la venta on-line de los productos, los precios y la gestión de stock será controlada en tiempo real. La comandera, o tablet de pedidos, que el camarero podrá disponer para enviar las peticiones a la zona de trabajo, o cocina, para su preparación, son sólo algunos aspectos que pueden ser implantados en una solución integral.

Invito a todos los que deseen conocer este proyecto a visitar: https://cajaamiga.com

Quiero finalizar agradeciendo a todo el equipo de Styde por su valioso trabajo, por su alta profesionalidad y esmero que ponen en cada vídeo, post y podcast. La plataforma web que forma este proyecto no podría ser hoy una realidad sin todo el conocimiento adquirido en Styde.

¡Gracias!

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

 

Aprende desarrollo web con Laravel, Vue.js y mucho más a partir de 9 USD al mes: ver planes.