Applied Labs ha tenido la experiencia de realizar un proyecto para uno de los distribuidores más grandes de productos farmacéuticos y de consumo. Esta vez, integramos el Login único federado que permita a diferentes negocios y usuarios acceder a su entorno de trabajo con acceso provisionado hacia diferentes servicios como lo es el ingreso a sus aplicaciones permitidas o a las pantallas de gestión de accesos de usuarios, esto fué posible gracias a PrivatiaID y un proceso de desarrollo de software 100% enfocado en brindarle a nuestro cliente la mejor experiencia posible.
¿Qué usamos en Applied para desarrollar?
En la actualidad se está trabajando cada vez más con Typescript, muchos programadores lo toman como algo que se maneja día a día en sus proyectos, Typescript es un lenguaje de programación construido por encima de JavaScript. Si bien javascript es un excelente lenguaje, tenemos que ser sinceros y aceptar que deja mucho que desear; mientras que Typescript, dota el lenguaje de varias características adicionales que hacen que podamos escribir código con muchos menos errores y de una forma más sencilla.
Pero no nos confundamos, Typescript sigue siendo JavaScript solo que de forma completa y con nuevas características, pero para que los navegadores lo entiendan, se debe compilar a JavaScript tradicional. Puede que la curva de aprendizaje de Typescript sea mayor, pero vale la pena incorporarlo dentro de nuestros skills.
Ahora hablemos de Nest.js, este es el Framework con el cual se realizó este maravilloso proyecto y se manejó Typescript para la gestión del mismo. Nest.js es un framework desarrollado completamente en Typescrip con un buen enfoque del lado del servidor, este framework no es uno más del montón, pues cuenta con características que lo diferencian del resto.
Nest.js es un framework progresivo de Node.js para la creación de aplicaciones eficientes, confiables y escalables del lado del servidor. Cabe resaltar, que Nest.js está inspirado en Angular y que comparte muchos conceptos de este, como la forma en la cual maneja los generadores.
En este proyecto se formó un gran reto, este fue cambiar la forma particular en la que se utiliza Auth por una nueva, una que nos permitá tener un servicio que se encargue específicamente solo de la autentificación y dar acceso a diferentes aplicaciones conectadas.
Facebook y Google ya usan esta tecnología dentro de su stack.
NUESTRO. FRONTEND
Sin duda, usamos Angular, esta es la herramienta perfecta para simplificar la interacción de los usuarios con cada una de las pantallas. Estas tecnologías mejorar la aceptación por parte de los usuarios y hacen que su adaptación sea fácil. Añadido a esto, son de fácil uso y corta curva de aprendizaje.
Todas las navegaciones de las pantallas de Química Suiza, tienen una carga mínima al momento de ingresar a cada una de ellas.
Acerca del material, Angular tiene su propia librería orientada al minimalismo y simplicidad, ya que está enfocada en la construcción de pantallas orientadas a componentes. De esta forma brinda la facilidad de utilizar sus recursos previamente creados y tiene la opción de modificar la librería a nuestro antojo.
También hicimos uso de Pug, este es un pre-procesador de código HTML, el cual simplifica la codificación y ordena el código de una manera muchísimo más limpia para leerla e implementarla. Adicional a ello, convierte el código en HTML que es lo que Angular utiliza para poder desplegarlo con normalidad.
De igual manera, se ha usado el lenguaje Typescript, como ya se mencionó anteriormente, en estos últimos años está dando a conocer todo su potencial brindado una buena aceptación en la comunidad de desarrollo, desplazando así al tan conocido Javascript al tener un mejor orden y estandarización que este.
Esto es de gran ayuda para los desarrolladores en el camino de generar un código más limpio y ordenado al momento de crear los componentes o una página completa.
SOBRE LA BASE DE DATOS.
Para este proyecto, la premisa principal es que todo sea robusto y con crecimiento línea, donde se pueda saber mediante acciones de auditoría que está realizando un usuario en el sistema. Por esto, se optó por una BD relacional, con buen performance como es un SQL Server 2017, pero PrivatiaID puede trabajar con otros motores.
El proceso de desarrollo nos permitió lograr buen producto que cumpla con todas las expectativas del cliente, que pueda crecer y ser adaptado a los diferentes sistemas existentes, así como añadir futuros sistemas que no existen actualmente. Además se colocó un sistema de auditoría que registra todo lo que hace un usuario, desde que entra al sistema hasta que cierra el navegador, con este proceso se podría llegar a determinar cualquier error que un usuario este cometiendo, o también alguna acción n autorizada, todo ello se realizó con triggers de SQL y esquemas separados, donde solo el administrador tiene accesos y no los usuarios de la BD.
CALIDAD DE SOFTWARE EN PERÚ
Como en todos nuestros proyectos, la calidad está presente en todas las etapas del desarrollo, desde un inicio se diseñaron los casos de prueba priorizados por seguridad, riesgos y proceso de negocio. Para ello, se contemplaron pruebas unitarias y pruebas de vulnerabilidad, ya que estuvimos tratando con accesos restringidos a usuarios de negocio, además se aplicaron pruebas funcionales, no funcionales, de confirmación y de regresión en cada Sprint.
Se realizó también, el proceso de refinamiento de Historias de Usuario para cada Sprint y así tener la más alta claridad posible acerca de los requerimientos, para ello mantenemos comunicación constante con nuestro cliente y desde el principio captamos la necesidad del proyecto.
Aplicando todo lo anterior, hemos logrado superar la expectativa de Química Suiza, puesto que agregamos valor a lo que inicialmente nos habían solicitado, facilitando así la auditoría en todo sentido tanto para los eventos de la plataforma integral, como de cada aplicación integrada a ella.