Inspiration
The inspiration behind making this discord bot is the fact that we're all going back to school next week (for those of us studying at York) and it's difficult to connect with our classmates and friends due to schedule miscommunications.
So, we designed AtSchoolScheduleBot to solve that!
What it does
Our bot is designed to help people figure out who's on campus & available to hang out or study at any given time.
The first step of setting up our bot is to add it to your server of choice (or multiple of them) and then each user calls the sb!setup command to be DMd by the bot with setup instructions. We wanted to make this step as seamless, accessible, and headache-free for our users as possible. Thus, there are only 2 steps to the setup process:
1) Select which days you are usually on campus by reacting to our custom weekday emotes. Then reacting to the check mark emote as confirmation.
2) Entering up to 3 time slots per day where you are available (ie. not in a lecture). We simplified this for users by having them enter it in military time format (Ex. 0900 1200, 1400 1600)
After that's all setup, you can use the following commands in your discord server:
sb!today- gives list of discord IDs of people who are at school + available timessb!tomorrow- same but tomorrowsb!date- same but any datesb!help- lists out all commandssb!schedule @discordID#0000- displays the person’s schedulesb!now- displays discord IDs of everyone who is at school now and available at the current timesb!now @discordID#0000- displays whether the person is at school currently
A feature we are planning to add is assigning the school role to any user who is at school that day and currently available (by running a job every 10 minutes to query who is available). That will make things much easier for people because then they can ping everyone with that role to meet them somewhere (Ex. @school let's meet at the student centre) and it would not ping people who are currently in class to distract them from their studies.
How we built it
We started by using the discord.py API to build the basic functionality of the bot. After this, we researched options for hosting (more info in the next section) and eventually settled on Google Cloud. We created a virtual machine using a Compute Engine, as well as ported our mySQL database into CloudSQL, and connected the two Google Cloud components. We were able to host our bot and run it using the Compute Engine's SSH terminal, and continued working on our features and testing, keeping our cloud-hosted version up-to-date through GitHub.
We also drew custom emotes and an icon for the bot, to provide a unique user experience.
Challenges we ran into
SO MANY! None of us had ever made a Discord bot before and majority of our team members are new to using Git and have never worked in the Cloud or used a database before so ramping up took time. Every single step of the way we ran into so many errors. With IDEs malfunctioning, to discord bot commands not running, and many auth errors with Google Cloud. We also spent a considerable amount of time figuring out which service to use to host our bot. We first researched linode, then tried out repli.it and realized that the database wouldn't work for us, and then struggled to set up Google Cloud. We also ran into issues with writing sqlalchemy queries because of the lack of documentation when using connectors.
Accomplishments that we're proud of
We got some of it working! And we all learned so much.
What we learned
How to make discord bots, connect to GCP to host them, how to work together as a group, many other new technical skills.
What's next for At School Schedule Bot
We are going to continue building this bot because we really want to use it in our every day lives and hopefully it'll be all finished in reading week!


Log in or sign up for Devpost to join the conversation.