TelegramBOT para votar acuerdos en el Consejo Técnico
de Facultad de Medicina

https://doi.org/10.22201/dgtic.ctud.2024.2.1.34
Vol. 2, Núm. 1. enero-marzo 2024

TelegramBOT para votar acuerdos en el Consejo Técnico de Facultad de Medicina

Información del reporte:

Licencia Creative Commons

El contenido de los textos es responsabilidad de los autores y no refleja forzosamente el punto de vista de los dictaminadores, o de los miembros del Comité Editorial, o la postura del editor y la editorial de la publicación.

Para citar este reporte técnico:

Barradas Culebro, G. (2024) TelegramBOT para votar acuerdos en Consejo Técnico de la Facultad de Medicina de la UNAM. Cuadernos Técnicos Universitarios de la DGTIC, 2 (1). https://doi.org/10.22201/dgtic.ctud.2024.2.1.34

Gustavo Barradas Culebro

Facultad de Medicina
Universidad Nacional Autónoma de México

gbarradas@unam.mx

ORCID: 0000-0001-8528-5655

Resumen:

Se describe la implementación de BOTs de la aplicación Telegram para la votación de acuerdos llevados a cabo en el H. Consejo Técnico de la Facultad de Medicina de la UNAM, mediante dispositivos de uso cotidiano, como son teléfonos celulares, tabletas o computadoras, en las sesiones llevadas a cabo en la modalidad virtual, presencial o híbrida, la cual permite contar con la legalidad y participación de sus consejeros al emplear herramientas de licencia pública como son Debian, Apache, PHP, Bootstrap y PostgreSQL.

Palabras clave:

PHP, PostgreSQL, Telegram BOT, votación a distancia, licencia pública.

1.INTRODUCCIÓN

Gracias a la pandemia que vivimos debido al COVID 19, las instituciones tuvieron la necesidad de replantear muchas actividades que desarrollaban de manera cotidiana, para la Facultad de Medicina de la UNAM una de estas fueron las reuniones del H. Consejo Técnico en su accionar mediante la aprobación o rechazo de acuerdos tratados en cada sesión por los consejeros técnicos propietarios y suplentes, dando a través de este proceso legalidad de sus decisiones (Consejo Técnico de la Facultad de Medicina UNAM, 2023).

En dicho proceso, los consejeros técnicos deben pasar asistencia en la sesión que se lleve a cabo y por área votar: a favor, en contra o abstenerse. Sólo un consejero de cada área puede ejercer el voto, en caso de que el consejero propietario no se encuentre, el consejero suplente puede ejercerlo.

La propuesta para resolver tal reto tenía que ser de bajo costo, reutilizar recursos existentes, ser fácil de usar por el personal del Consejo Técnico y funcionar en la modalidad virtual, presencial o híbrida. Con base en lo antes descrito, este reporte detalla la manera en que se dio solución a las necesidades planteadas por el H. Consejo Técnico de la Facultad de Medicina de la UNAM.

2. OBJETIVO

Proporcionar una herramienta que permita al H. Consejo Técnico solventar los acuerdos de sus sesiones, dando certeza y legalidad a cada uno de los integrantes de manera ágil y sin importar la modalidad en que la sesión se lleve a cabo, basándose en las votaciones hechas.

3. DESARROLLO

3.1 Antecedentes

El H. Consejo Técnico de la Facultad de Medicina de la UNAM es el órgano de mayor jerarquía en la dependencia y quien trata todos los asuntos que rigen a su comunidad. Antes de la pandemia, las sesiones presenciales se votaban a mano alzada en las tres opciones posibles: de acuerdo, no de acuerdo y abstención, en cada acuerdo se realizaba la contabilidad y se decidía la aprobación del mismo o no.

Los consejeros técnicos están organizados por áreas en donde existe normalmente un propietario y un suplente, ambos tienen derecho a voz y voto. Si el consejero técnico propietario está presente, es él quien emite el voto en el acuerdo, en caso de no estar presente, el suplente debe votar el acuerdo que se está tratando.

Durante la pandemia la presencialidad no fue posible, por lo que las sesiones se realizaron inicialmente en plataformas como Google Meet y posterior en Zoom, donde se intentó votar a distancia con encuestas, manos alzadas y reacciones por parte de los consejeros técnicos para poder decidir sobre el acuerdo en cuestión. Pronto el conteo, la selección de votos de los consejeros técnicos propietarios para verificar la no duplicidad del voto por parte de los suplentes (evitar que el área votara doble en un acuerdo) y la comprobación de la suma correcta, volvió tedioso el proceso, motivo por el cual se buscaron alternativas para realizarlo de otra manera, con el propósito de darle mayor control y legalidad a esta actividad.

3.2 Desarrollo técnico

Con base en los recursos identificados en la Facultad, sus requerimientos y tras analizar las diferentes opciones en la actualidad, se decidió usar BOTs de Telegram (Telegram, 2023), PHP (The PHP Group, 2023), Apache (Apache HTTP Server Project, 2023), BootStrap (Bootstrap, 2023) y PostgreSQL (The PostgreSQL Global Development Group, 2023) para desarrollar la solución. La parte central de la solución está basada en BOTs de Telegram. A continuación, se describe su comportamiento en el proyecto.

El primer paso fue crear un BOT en la aplicación de mensajería llamada Telegram, usando el BOT que ofrece llamado BotFather (Telegram, 2023), donde se establecieron el nombre y los requerimientos iniciales. Una vez realizada la configuración, cualquier entrada al BOT es registrada por Telegram. Existen dos métodos de consultarlas: getUpdates y webhooks.

Las actualizaciones realizadas en los BOTs quedan almacenadas por 24 horas en los servidores de Telegram, la diferencia entre ellos es que con getUpdates se debe consultar continuamente el servidor de Telegram para saber qué actualización existe en nuestro BOT, mientras que con webhooks cada vez que existe alguna actualización, Telegram (Modrzyk, 2019) envía un HTTPS POST por la entrada estándar (Mora, 2016) a un URL que podemos definir (Telegram, 2023).

Para esta solución se configuró el webhooks y se definió un URL a un servidor de la Facultad, programado en PHP, con el que se recibe la actividad dentro del BOT y se ejecutan procesos respondiendo a las peticiones hechas por los usuarios.

El proceso usado en este proyecto fueron las actualizaciones por webhooks que se describen en la Figura 1.

Figura 1

Interacción de actualizaciones mediante el BOT de Telegram

Nota:

Paso 1. El usuario manda alguna petición al BOT
Paso 2. El BOT recibe la información y la manda a Telegram agregando el BOT ID.
Paso 3. Telegram identifica la acción a realizar y envía un HTTPS POST a la URL definida.
Paso 4. El servidor determina las acciones que debe tomar basado en la información recibida y en el caso del proyecto manda a Telegram información mediante el BOT al usuario.
Paso 5. Telegram con el ID del BOT envía de regreso al usuario la información.
Paso 6. El BOT de Telegram regresa información al usuario.

Basándose en esta manera de funcionar, se desarrolló un sitio WWW que permite las siguientes funciones:

En cada acuerdo que debe votarse el servidor manda al BOT, por Telegram, el envío de un mensaje mediante la función sendMessage, con formato HTML para asegurar que el envío sea rápido y sin usar grandes recursos de ancho de banda (Team, 2023), con el acuerdo y las opciones: “Estoy de acuerdo”, “No estoy de acuerdo” y “Me abstengo” en un arreglo inline_keyboard, el cual permite que el consejero reciba tres botones con las opciones (Team, 2023) en donde podrá votar por su elección.

El consejero recibe mediante el BOT de Telegram, en el dispositivo que esté utilizando, la votación que le solicita el Consejo Técnico, mediante el cual sólo le permite ejercer un voto único por una opción, y sólo mientras la votación en cuestión esté habilitada. Cuando el consejero vota, el BOT manda los siguientes datos:

La información anterior es recibida mediante callback_query, resultado de un botón que forma parte de un inline_keyboard (Telegram, 2023), y registrada en una base de datos para poder contabilizar y tomar decisiones por parte del Consejo Técnico.

Cada consejero debe realizar un proceso inicial y único dentro del BOT, con el cual el sistema registra su chat ID de Telegram y lo asocia con el número de trabajador, que queda almacenado en la base de datos del sistema. En caso de que el consejero cambie de número celular y requiera usar uno nuevo, existen procedimientos para liberar un registro; cabe señalar que no se registra el número telefónico o algún otro dato.

4. Resultados

Al inicio de cada sesión el encargado técnico del H. Consejo Técnico utiliza el sistema WWW entregado para abrir la sesión y los consejeros pasen asistencia, cada uno debe realizar esta actividad para poder participar en las votaciones de los acuerdos a tratar. Al registrar su asistencia, el sistema determina si se trata de un propietario o suplente para hacer el envío a los consejeros por área que participen en la sesión.

Además el encargado técnico manda mensajes dentro del BOT para recordar a los consejeros que registren la asistencia y administra el envío de las votaciones, así como el despliegue del resultado para cada acuerdo. Al final de las sesiones, el encargado envía el resultado de las votaciones a los integrantes del Consejo Técnico a través del BOT (ver Anexo 1).

5. Conclusiones

La aplicación de Telegram funciona en dispositivos celulares, tabletas y equipos de escritorio, gracias a ello, la adopción del sistema fue rápida e intuitiva ya que el medio por el cual los integrantes del H. Consejo Técnico pasan asistencia, reportan algún problema técnico y ejercen el voto en cada acuerdo es por medio del BOT y, la gran mayoría, por su teléfono celular.

Otra ventaja tecnológica importante de resaltar es que al utilizar el servicio de BOT en Telegram, se garantiza el funcionamiento en los sistemas operativos más usados en dispositivos móviles y de escritorio y se cubra la mayor cantidad de usuarios posibles.

Todos los acuerdos de las sesiones del H. Consejo Técnico son votados por este medio sin importar en donde se encuentre el consejero, presencial o a distancia, y permite atender de manera ágil incidencias técnicas que pudieran presentarse.

Gracias a este tipo de desarrollos, la Facultad de Medicina de la UNAM ha implementado el uso de otros BOTs en diversas aplicaciones para brindar más servicios a su comunidad, tales como:

6. Agradecimientos

Se agradece al secretario y staff técnico del Consejo Técnico por toda la disposición e información brindada para el desarrollo y exploración de la solución, a la Dra. Irene Durante Montiel, Secretaria General y al Dr. Germán Fajardo Dolci, Director, por la confianza y el apoyo al uso de nuevas tecnologías en pro de la comunidad de la Facultad de Medicina de la UNAM.

REFERENCIAS BIBLIOGRÁFICAS

Apache HTTP Server Project. Apache. Recuperado el 28 de noviembre de 2023 de https://httpd.apache.org/

Bootstrap. Bootstrap. Recuperado el 28 de noviembre de 2023 de https://getbootstrap.com/

Consejo Técnico de la Facultad de Medicina UNAM. (2023). Integrantes del Consejo Técnico. Secretaría del Consejo Técnico de la Facultad de Medicina UNAM: http://consejo.facmed.unam.mx/home/aaintegrantes.html

Modrzyk, N. (2019). Telegram Bot with Webhooks. In N. Modrzyk, Building Telegram Bots: Develop Bots in 12 Programming Languages usgin the Telegram Bot API (p. 234). Tokyo Japan: Apress.

Mora, S. L. (2016). Formularios. En S. L. Mora, HTML & CSS: Curso Práctico(pág. 243). Alfaomega Grupo Editor, S.A. de C.V.

Telegram. CallbackQuery. Telegram BOT API. Recuperado el 23 de noviembre de 2023 de https://core.telegram.org/bots/api#callbackquery

Telegram. Telegram. Recuperado el 28 de noviembre de 2023 de https://telegram.org/

Telegram. Telegram Bot API Getting updates. Recuperado el 28 de noviembre de 2023 de https://core.telegram.org/bots/api#getting-updates

Telegram. Telegram Bot Features. Recuperado el 28 de noviembre de 2023 de https://core.telegram.org/bots/features#creating-a-new-bot

Team, T. B. Text Messages and More. Telegram Bots Book. Recuperado el 28 de noviembre de 2023 dehttps://telegrambots.github.io/book/2/send-msg/text-msg.html

The PHP Group. PHP. Recuperado el 28 de noviembre de 2023 de https://www.php.net/

The PostgreSQL Global Development Group. PostgreSQL. Recuperado el 28 de noviembre de 2023 de https://www.postgresql.org/

Anexo 1

A continuación se muestran algunas pantallas de las funciones implementadas en el sistema desarrollado:

Figura 2

Administración de votaciones a consejeros técnicos y muestra de resultados

Figura 3

Envío de mensajes generales a los integrantes del H. Consejo Técnico

Figura 4

Apertura de asistencia

Figura 5

Administración de integrantes del H. Consejo Técnico

Figura 6

Manera en que los consejeros reciben los acuerdos para ejercer el voto

El control del sistema en cada sesión es totalmente hecho por el personal técnico del Consejo Técnico de la Facultad de Medicina de la UNAM.