馃摫 馃梻 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 鈥渃onectarse 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 鈥淚nfoVeBot鈥 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 鈥渃uenta 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 鈥淚nformaci贸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 鈥渁rgumentos鈥, 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 鈥溌縋ara 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 鈥淐u谩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). 鈥淒esarrollo 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