UIU Discord Bot
How It Started
I missed a mid-term exam. During COVID, everything moved online and all updates were posted on the university website. I didn't check it in time, and nobody notified me. That was frustrating.
But I was already active on Discord daily. Most of my classmates were too. So instead of just being annoyed about it, I thought: why not build something that checks the website for me and sends updates where I'm already looking?
That's how this bot came to be.
What It Does
The bot scrapes the UIU (United International University) official website on a scheduled cron job. When there's a new notice, news item, or event, it sends a message to the Discord server automatically. No one has to manually check the website anymore.
Users can also pull updates on demand with commands:
-recentto get the latest notices, news, and events-notice2to fetch the last 2 notices-news3for the last 3 news items-event4for the last 4 events
Simple prefix commands. Nothing complicated.
The Stack
Built with NestJS and TypeScript. Prisma handles the database layer to track which updates have already been sent so nothing gets posted twice. The bot runs on Heroku with a cron job triggering the scraper at regular intervals.
At the time, my job required me to learn NestJS and GraphQL. So this project was a good opportunity to apply what I was picking up at work on something I actually needed. Learning by building something real always sticks better than tutorials.
NestJS was a good pick here. The modular architecture made it clean to separate the scraping logic, the Discord integration, and the database layer.
Where It Led
This project ended up meaning more than just a Discord bot. It got me noticed in the university tech community, which eventually led to joining the UIU CanSat team. I ended up leading the software team and traveling to the USA to represent our university and country in competition.
All because I missed an exam and decided to fix the problem instead of just complaining about it.




