EPSEM BOT

Un robot de discord que gestiona usuarios y roles.

¿Qué es?

Tenemos un servidor de Discord donde nos encontramos casi todos los estudiantes de mi grado académico. Allí, podemos quedar y trabajar, o simplemente hablar. Este año (debido a la pandémia) no hemos podido quedar mucho presencialmente, así que el servidor ha sido una buena alternativa para conocernos entre nosotros.

El principal problema que tiene este servidor en comparación con los otros servicios que proporciona la universidad, es que cualquiera puede unirse al servidor: no se pide ninguna verificación para confirmar que seas estudiante del mismo grado, ni de la misma universidad... no era un lugar seguro.

Por eso pensé que seria una buena idea añadir un robot de Discord para que gestionara todas las verificaciones de usuarios, y ya que estamos, asignar los roles personalizados por cada estudiante relacionados con cada grado y asignatura.

Al tener un e-mail personalizado (@universidad.edu) en la universidad, si hacemos un robot de Discord que únicamente verifica e-mails si tienen esta terminación, ya podememos saber si un usuario puede entrar o no en el servidor.

Situación actual

Para finales de 2020 he logrado sacar el MVP (producto viable mínimo) de este proyecto. Puede asignar roles y verificar e-mails. Y está hecho a prueba de errores: ¡todos los casos errónios han sido planificados y controlados!

Actualmente, estoy alojando este robot en la misma Raspberry Pi 4 que está alojando el proyecto del robot de Telegram, así que los costes de mantenimiento són mínimos si no nulos.

Podéis comprobar el estado actual del código fuente del proyecto yendo a su repositorio de GitHub, donde subo cada cambio que hago en el código. Y hace un tiempo también hice un vídeo donde muestro la versión preliminar del robot a unos compañeros de la universidad. Lo tengo subido (en catalán) a YouTube, en oculto. Lo podéis ver aquí:


Mejoras planeadas

Todavía hay muchas cosas por hacer en este proyecto, pero estoy orgulloso del resultado actual porque la parte más importante ya funciona: comprovar si un usuario es estudiante o no.

De momento solo tengo pensadas dos posibles mejoras:

  • Automatizar la parte de assignar los roles: actualmente, una vez el estudiante ha sido verificado, debe clicar en los botones correspondientes a las asignaturas que está cursando para obtener los respectivos roles. Si la universidad me diera alguna forma de ver en su base de datos que asignaturas está cursando un usuario con este e-mail, podría poner los roles automáticamente, sin pedir nada más al usuario. De esta forma, el robot seria mucho más eficiente.
  • Gestionar todos los canales de voz: si un usuario entra un canal de voz de una asignatura para hacer un trabajo en grupo, este canal estará ocupado. ¿Qué pasará entonces si otro grupo también quiere hacer un trabajo conjunto de la misma asignatura? En este caso deberíamos de crear un canal de voz temporal para este segundo grupo, y eliminarlo cuando el primero vuelva a estar libre. Este trabajo duro es una tarea que típicamente haria un robot.
En este proyecto he usado...PythonDiscord.pyDemo terminada enDiciembre de 2020

Más Proyectos