EPSEM BOT
Un robot de Discord que gestiona rols i e-mails.
Què és?
Tenim un servidor de Discord d'estudiants on hi és quasi tothom del meu grau. Allà podem quedar per parlar o treballar. Com que aquest curs (degut a la pandèmia) no ens podem veure gaire presencialment, ha estat una bona alternativa per a conéixer-nos una mica més.
El principal problema que té el servidor comparat amb qualsevol altre servei que ens proporciona la universitat, és el fet que qualsevol persona pot entrar en el servidor: no calia verificar que fóssis estudiant... no era un lloc segur.
Per això vaig pensar que seria una bona idea de crear un robot de Discord que s'encarregués de gestionar totes les verificacions d'usuari, i que, ja de pas, assignés els rols relacionats al grau, el curs i les assignatures que cursa cada estudiant.
Al tenir un e-mail propi de la universitat, amb un domini personalitzat (@universitat.edu), la tasca es convertia molt senzilla: qualsevol persona que sigui capaç de verificar una adreça amb aquell domini es consideraria com a estudiant.
Situació actual
Cap a finals d'any, vaig aconseguir desenvolupar la primera versió del projecte. Pot assignar rols i verificar e-mails, enviant un codi que llavors l'usuari ha d'introduir. I està fet "a prova de bala": s'ha tingut en compte cada possibilitat d'entrada de l'usuari, fins i tot les més esbojarrades!
Actualment estic allotjant el robot a casa meva, en una Raspberry Pi 4 que es troba al cosatat del router, pel que els costos de manteniment i de servidor del bot són quasi nuls. He reutilitzat la mateixa Raspberry Pi 4 que allotja el bot de Telegram del projecte de la placa Node MCU.
Podeu veure l'estat actual del codi font anant en el seu repositori de GitHub, on penjo cada canvi i actualització que reb el robot. Fa un temps, també vaig crear un petit vídeo de demostració, per a uns companys de la universitat. Està penjat en ocult a YouTube, però el podeu veure aquí mateix:
Futures millores
Encara hi ha molta feina a fer en aquest projecte, però ja estic orgullós del seu estat actual, ja que compleix a la perfecció la seva funció principal: comprovar si un usuari és estudiant o no.
De moment només tinc en ment dues possibles millores:
- Automatitzar l'assignament dels rols: actualment, un cop l'estudiant ha verificat el seu e-mail, ha d'apretar una sèrie de botons per a comunicar al robot quines assignatures de guin grau està cursant. Si la universitat em proporcionés una llista on es relacionen els noms, e-mails i assignatures de cada estudiant, la tasca del robot es simplificaria molt més, i es podria automatitzar encara més, ja que no faria falta que cada estudiant fes clics a les seves assignatures.
- Gestionar els canals de veu: si un usuari entra dintre d'un canal de veu d'una assignatura amb altres companys, aquell canal de veu queda ocupat. Com ho faria un altre grup que també vol treballar en aquella assignatura? En aquest cas ens faria falta crear un canal temporal amb els mateixos permisos que l'original, per a que hi pugui entrar l'altre grup. Quan s'acabi el treball i els alumnes surtin del xat de veu, s'eliminaria el canal temporal. Aquesta feina tediosa es podria automatitzar amb el nostre robot.