📱 🗂 InfoVeBot: Desarrollo de aplicación para consultar información de instituciones públicas venezolanas con frontEnd en Telegram


¡Hola a todos en Steemit! Especialmente a aquellos que formamos parte de STEM y STEM-espanol. En esta oportunidad les comparto un post acerca de un proyecto de programación en el cual estoy trabajando, con lo cual procuro desarrollar contenido para el área de Tecnología (la T en las siglas STEM), concretamente la tecnología informática, un sector ampliamente conocido en inglés como Informatic Technology (IT)

El propósito de esta publicación es hacer una presentación del proyecto de software InfoVeBot, describiendo su fundamentación, desarrollo y funcionamiento técnico, a fin de evidenciar la utilidad de las soluciones informáticas sobre necesidades que experimentan los usuarios de sistemas de información públicos de Venezuela. 

Procuraré cubrir esto a lo largo de cuatro secciones. En el proceso, me valdré de algunas imágenes de la aplicación que he creado, para lo cual tengo que recurrir necesariamente a capturas de pantalla, destacando el hecho de que estas imágenes son de un producto de mí autoría y adicionalmente han requerido un proceso de edición. También insertaré las referencias a los materiales utilizados en el contenido de la publicación y del producto generado. ¡Espero les guste! Comencemos. 


FUNDAMENTACIÓN 

Los estudios de mercado indican que cada día son más los usuarios que se conectan a internet a través de dispositivos móviles como los teléfonos celulares inteligentes (smartphone). Así lo revela, por ejemplo, un estudio reciente de TriaPanel, según el cual 80 de cada 100 personas con teléfonos celulares lo usan para “conectarse a internet”, y un 86% de los usuarios de internet lo son porque “necesitan estar informados” [1]. Esto pone de relieve el uso masivo de celulares y las necesidades de información de sus usuarios. 

Y es que la adopción de estos dispositivos está asociada normalmente a las necesidades de comunicación de las personas, pero con el auge tecnológico en esta industria, hoy día los teléfonos celulares cumplen también múltiples propósitos, entre los cuales está la gestión de información a través de infinidad de aplicaciones. Los celulares aportan ventajas frente a otros dispositivos como las computadoras de escritorio, en término como comodidad, accesibilidad, portabilidad, algunas prestaciones añadidas, entre otros. 

El popular uso de los teléfonos celulares para satisfacer necesidades de información no sería de sorprender considerando el hecho de que prácticamente todas las instituciones públicas modernas así como las medianas y grandes empresas privadas poseen un sitio en la red, lo que hace que muchos de sus trámites y servicios se realicen de manera online.

En el caso de Venezuela, algunas instituciones públicas con sistemas en línea bastante concurrentes son el Servicio Nacional Integrado de Administración Aduanera (SENIAT), el Instituto Venezolano de los Seguros Sociales (IVSS), la Corporación Eléctrica Nacional (CORPOELEC), la Compañía Anónima de Telecomunicaciones de Venezuela (CANTV), el Consejo Nacional Electoral (CNE), entre otras. 

No obstante, uno de los aspectos significativos que emergen en la utilización de estos servicios es la calidad de la experiencia de navegación. Aquí no solamente influye la velocidad de la conexión, que en Venezuela no llega a la media en toda Latinoamérica [2], sino también la facilidad de uso del sitio web, que puede medirse por la cantidad de clics o gestos realizados, la cantidad de caracteres ingresados desde cualquier navegador promedio, el diseño responsive de las páginas web (y si lo hay), la visualización del acceso a lo módulos o funciones deseadas, etc. 

A esto hay que añadir que para la fecha de realización de este proyecto de software no se ha conocido una aplicación (app) u otro servicio accesible a través de dispositivos móviles que integre en un único servicio el acceso a varios de los sistemas anteriormente mencionados, aprovechando las ventajas que ofrecen los dispositivos móviles y sus aplicaciones. 

El seno de esta discusión se ha dado también con algunos colegas informáticos y desarrolladores de software en los encuentros virtuales de una iniciativa de conformación de una nueva comunidad de software libre en Venezuela, que tendría entre sus objetivos el ofrecer soluciones informáticas para problemas comunes de usuarios informáticos del país. 

Todo esto da contexto al surgimiento del software que se presenta, denominado “InfoVeBot” que, visto como proyecto de investigación, ha sido abordado metodológicamente por el autor de la publicación bajo la modalidad de proyecto especial, el cual según Palella y Martins (2010: 97):

Está destinado a la creación de productos que puedan solucionar deficiencias evidenciadas y se caracterizan por su valor innovador y aporte significativo en cualquier área de conocimiento [2].

En concreto, la génesis de este proyecto ha seguido los siguientes principios y requerimientos

  • Ser una solución informática a un problema común.
  • Estar delimitado a los usuarios informáticos habitantes de Venezuela principalmente.
  • Poder consultar información de sistemas en línea de distintas instituciones públicas venezolanas.
  • Funcionar óptimamente través de dispositivos móviles como los teléfonos celulares inteligentes y tabletas.
  • Ser de software libre y código abierto.
  • Ser innovador. 

Todo esto ya ha empezado a materializarse en InfoVeBot, siglas de "Información Venezuela Bot", una aplicación en software libre que en su primera versión funciona a través de Telegram y permite consultar información de algunos sistemas en línea de instituciones venezolanas, tales como la renta del servicio telefónico CANTV y la data generada por el módulo de “cuenta individual” en el sitio web del instituto Venezolano de los Seguros Sociales (IVSS).


NATURALEZA DE INFOVEBOT 

InfoVeBot es un software ofrecido como servicio (software as a service SAAS). Esto significa que prácticamente todo se ejecuta de manera online en un servidor remoto, en lugar de un dispositivo cliente cuya única función es la intermediación entre el usuario y el servicio.   

La variante concreta de este SAAS es el de chatbot, un software que que simula el comportamiento de un usuario humano y basa su interacción al estilo de una conversación en línea. En concreto, se trata de un chatbot de Telegram, siendo este último un servicio de mensajería bastante versátil y de creciente popularidad entre los usuarios de dispositivos móviles en todo el mundo. 

De tal manera que los usuarios humanos interactúan a través de su cliente de Telegram (su app para móviles, en la mayoría de los casos) con InfoVeBot, tal como si fuese un contacto más, pero que tras bambalinas es controlado por un usuario no-humano, en este caso, un software, y responde a todas sus peticiones.


ASPECTOS TÉCNICOS DEL DESARROLLO DE INFOVEBOT 

Una vez establecidos los principios generales y requerimientos del producto esperado previamente indicados, fue necesario determinar el origen de los datos, para hacerse una idea de las capacidades reales de la aplicación así como para determinar algunos aspectos del diseño e implementación. 

Tras una fase de documentación e intercambio con algunos colegas, surgió la idea de hacer algún aprovechamiento de la Infove-API. Éste es un servicio que internamente utiliza técnicas de web scraping para extraer datos de páginas web de varias instituciones del Estado. Funciona con web scraping puesto que estas instituciones no ofrecen una API oficial y de acceso público. Está implementado con Flight en PHP y su código es distribuido bajo licencia de software libre y código abierto [4].

Para este proyecto, la Infove-API mencionada anteriormente ha sido de utilidad para proveer las ideas y los algoritmos de web scraping y desarrollar así una transcripción y actualización de esos scripts hacia un módulo en lenguaje Python. Se trata, por tanto, de un porting parcial de PHP a Python. El módulo obtenido ha sido llamado python-infove-api en reconocimiento de la idea inspiradora. 

El testing del módulo en sus primeras versiones de desarrollo arrojó la viabilidad de implementar la recolección de datos de las web de la CANTV y del IVSS, lo cual ayudó a delimitar el alcance de InfoVeBot. Esto lleva implícito el determinar qué datos de entrada se requieren y qué información es proporcionada como respuesta, lo cual tendría que ser tomado en cuenta a la implementar la aplicación. 

Asimismo, se determinó que la aplicación tendría como frontend a Telegram, es decir, sería un bot conversacional de Telegram. Esto en mérito de que esta última es una mensajería disponible para dispositivos móviles y también por el hecho de que las aplicaciones bots están ganando cada vez más terreno en el panorama de desarrollo de software mundial, debido al crecimiento de los servicios de computación en la nube (cloud computing).

La implementación se hizo en lenguaje Python, usando el módulo python-infove-api creado y la librería python-telegram-bot que también es distribuida bajo licencia de software libre. Se siguieron orientaciones para desarrollar el bot como las planteadas en una de las publicaciones previas del autor de este post [véase referencia 5].

Tras algunas semanas del primer ciclo de desarrollo (desde la discusión de requerimientos hasta el lanzamiento) se obtuvo un primera versión, que pasó a ser desplegada en desde un VPS gracias al apoyo de un colega desarrollador a quien se incluye entre los reconocimientos en el README del repositorio. La cuenta en Telegram del servicio oficial ha sido llamada “Información Venezuela” y su alias es @infovebot

Esta aplicación no sólo es un servicio activo sino que también se distribuye bajo licencia de software libre y de código abierto, razón por la cual posee un repositorio de acceso público en GitHub, de tal manera que otros pueden forkearlo y/o desplegarlo por sí mismos.

FUNCIONAMIENTO DEL BOT 

La interacción con InfoVeBot se basa principalmente en comandos, soportando los siguientes:   

  • /start o inicio: muestra la presentación del bot. 
  • /help o ayuda: muestra un mensaje de ayuda para los usuarios.
  • /cantv: consulta datos en CANTV. 
  • /ivss: consulta datos en el IVSS. 

La imagen 1 muestra una captura de pantalla de la respuesta del bot al comando /help o /ayuda (véase imagen 1). 

Imagen 1: funcionamiento del comando /ayuda o /help de InfoVeBot. Autor: @eniolw, como se explicó en la introducción. Licencia: CC BY.

También soporta el modo inline, que de momento cubre una función equivalente a la del comando /cantv.

Basicamente, esta versión de InfoVeBot ofrece la posibilidad buscar información en los sistemas de dos instituciones. En primer lugar, tomando valores numéricos a partir del texto ingresado con el comando /cantv (algo llamado “argumentos”, técnicamente hablando), el bot consulta los datos de facturación en el sistema en línea de CANTV, tales como saldo actual, fecha límite de facturación, fecha de corte, fecha de vencimiento, saldo vencido y último pago realizado, todo lo cual puede apreciarse a continuación (véase imagen 2). 

Imagen 2: demostración del funcionamiento del comando /cantv de InfoVeBot y la data generada. Autor: @eniolw, como se explicó en la introducción. Licencia: CC BY. 

En segundo lugar, de manera análoga al comando /cantv, el bot toma el número de cédula y la fecha de nacimiento del usuario con el comando /ivss a fin de consultar y mostrar algunos datos de la cuenta individual en el IVSS, tales como nombre de la empresa, número patronal, fecha de ingreso a la empresa, estatus del asegurado, fecha de la primera afiliación, fecha de contingencia, semanas cotizadas y total de salarios cotizados. Esto se muestra a continuación (véase imagen 3). 

Imagen 3: demostración del funcionamiento del comando /ivss de InfoVeBot y la data generada. Autor: @eniolw, como se explicó en la introducción. Licencia: CC BY.

DISCUSIÓN Y PROSPECTIVA 

El desarrollo de esta aplicación muestra la viabilidad de ofrecer soluciones informáticas a necesidades o problemas que pueden experimentar los ciudadanos en tanto usuarios de sistemas de información. Como se ha visto, la aplicación desarrollada ofrece la consulta para sistemas institucionales como los de la CANTV y el IVSS, y actualmente se encuentran bajo desarrollo las funciones equivalentes para el CNE, la CORPOELEC  y otros. 

Hay que destacar, no obstante, que el hecho de que las plataformas de estas y otras instituciones venezolanas no ofrezcan una auténtica y adecuada gestión de datos abiertos (como a través de una API) es una limitante a la hora de implementar este tipo de proyectos, razón por la cual hay que recurrir a las fuentes de terceros disponibles, las cuales pueden ser servicios pagos, o a otros medios. 

Por otra parte, este proyecto de software es un ejemplo del potencial de la integración de varios proveedores de servicios en una misma solución efectiva. Los usuarios desde su propio teléfono celular pueden efectivamente consultar y compartir rápida y cómodamente información de cualquier proveedor, sin apenas notar el hecho de que se han conectado los servidores de las instituciones públicas, de Telegram, del hosting del bot y otros. 

El proyecto también muestra lo práctico y conveniente que pueden ser los bots de Telegram, con los cuales los usuarios pueden gestionar información de su interés al mismo tiempo que chatean con alguien o con varias personas en un grupo. Todo esto sin necesidad de instalar aplicaciones de terceros (las apps convencionales) que ocupan espacio adicional en el dispositivo. 

Por último, recordar que InfoVeBot ha sido liberado como software libre y de código abierto, con lo cual puede ser aprovechado y reutilizado libremente por quien así lo desee, y deja también al proyecto en estatus de "abierto" a recibir sugerencias y contribuciones para su crecimiento.

REFERENCIAS:
  • [1] Artículo “¿Para qué utilizamos Internet? 7 de cada 10 usuarios realiza transacciones”, publicado en el blog de la consultora de estudios de mercado TrialPanel.
  • [2] Artículo “Cuáles son los países de América Latina con la mejor (y peor) conexión a internet vía celular” publicado por la BBC Mundo.
  • [3] Palella S., Martins F. (2010). Metodología de la investigación cuantitativa. Edición FEDUPEL. Caracas, Venezuela.
  • [4] William Cabrera (s/f). Infove-api. Repositorio en GitHub.
  • [5] @eniolw (2018). “Desarrollo de aplicación conversacional integrada a Telegram. TUTORIAL BÁSICO...” publicado en su blog de steemit.
     

NOTAS: 

  • Repositorio de InfoVeBot en GitHub.
  • Cuenta del servicio InfoVeBot en Telegram.
  • La imagen de portada es del autor de la publicación . Ha sido elaborada usando GIMP y teniendo como base una plantilla de dominio público. Es distribuida bajo licencia Creative Commons Atribution (CC BY).
  • La imagen del pie de página es de @carloserp-2000 y @iamphysical y es de dominio público.

H2
H3
H4
3 columns
2 columns
1 column
6 Comments
Ecency