Project: Dragon and Trainer
Dragon & Trainer is an annual event in Residential College 4 with ~70 participants. The aim of the event is to come up with the most ridiculous pranks involving users’ rooms, no holds barred.
For instance, this was my room. It was ‘combined’ with the room next door

I was part of the tech team in this project, with my buddy Raihan. Since the event was meant to be anonymous between users ‘Dragon’ and ‘Trainer’, there was some tech work to be done to ensure that the user could communicate anonymously with their respective ‘Dragons’ and ‘Trainers’.
Fortunately, there was a Github repo created back in 2017 to get the job done. All we had to do was to make some compatibility and bug fixes, find a way to get this thing hosted on a server, and maintain it for a month while the event lasted.

We’re using Telegram here, because practically everyone here at NUS uses it. Through our bot, users (Trainer) can text their assigned ‘Dragon’, to give them little updates on the progress and maybe drop a few gems along the way.

However, there were some issues we faced along the way.
- User IDs were stored as an
intin MSSQL.
The users couldn’t use the bot as their Telegram IDs were larger than the MAX_INT limit on SQL, causing the bot to crash.
Solution: Change the tables to store the IDs as VARCHAR instead. Pretty simple fix. While we were at it, we Dockerised the thing so we could use it on whatever machine we needed it to.
- There wasn’t a server present to run the Telegram bot on.
The initial idea was to run and host the bot on a Raspberry Pi 3B+ that we had lying around in the College, pulling ethernet from a common room on our floor. After some basic network auth, we got it to work. However, the moment some of us got on the bot simultaneously, it crashed.
Solution: AWS EC2. It allowed us to simply throw more resources at our bot without much effort. Reliability and 24/7 server operation meant that users could text their ‘Dragons’ at 4am(?) in the morning with no problem. Server costs for the entire month ended up costing about ~$40 SGD.
After we got those out of the way, the rest was smooth sailing. Raihan and I had tons of fun working on the project, and we had a good laugh from the insane projects submitted.
Our favourite project was this ‘sideways’ room/optical illusion. It was quite unsettling.
