Demo Video Timestamps

  1. Description: 0:00
  2. Demo: 1:28
  3. Impact: 2:03
  4. Additions: 2:36
  5. Challenges: 3:05

Inspiration

Our project is a discord bot called the “Glenn Quest Bot.” To give a little bit of backstory on this bot, we’ve been giving our friends cute daily quests called “Glenn Quests” that were meant to be small tasks they could do that were beneficial (whether that was resting their eyes, stretching out their hands, doing jumping jacks, etc.). Sometimes, if people were having bad days, the idea is that a “Glenn Quest” could be something small that they could do that could cheer them up and motivate them. While we were brainstorming ideas for the project, we decided to create this bot so that it could give quests even when we weren't at our computer or awake, so that our friends could always get quests whenever they wanted.

What it does

This bot only has some basic commands, but we’d like to add more in the future. You can currently ping it to say “hi” or “bye,” but the more important commands include “quest,” “complete,” and “profile”. If you ping it for a “quest,” it will give several of three categories of quests and randomly determine the amount that someone has to do a task. You could also ping it for a "quest easy," which has quests that are more doable without much movement. “Complete” is what allows you to turn in a quest, and quest completion is reported using an honor system. Lastly, you can use the command “profile” to see your current level, exp, and quests that you have to do if the chat has scrolled past when you initially were given the quests.

How we built it

We used a variety of different technologies to create the bot. First, in order to even create a Discord bot, we had to use the Discord API. This allows us to connect the bot to Discord, have it join servers, and reply to messages just like a person could. Since our bot keeps track of levels and experience for multiple people, we needed a database to store all this information. We used a simple SQL database and sqlite3 for python to implement it. Finally, we wanted the bot to be running 24/7. Our friends are all across different timezones, and they could want Glenn quests to start their day or to cool down in the evening. This was the perfect opportunity for us to use Google Cloud. The bot is hosted on a small virtual machine on Google Cloud’s Compute Engine.

Challenges we ran into

One of the most difficult challenges was just learning everything, from the Discord API to the SQL syntax. It had been years since we had used the API and SQL, and it took a bit to readjust. We made a lot of small mistakes, from regular python errors to confusion with the API and SQL. We had to turn to documentation, old tutorials, and StackOverflow posts to figure out what was going on.

Accomplishments that we're proud of

We knew that learning all of this at once and within such a short time frame would be difficult, so we made sure to focus our scope on the core of our project, the daily quests, and we're proud to say that we were able to get the main function working well.

What we learned

Discord API, SQL databases, hosting using Google Cloud.

What's next for Glenn Quest Bot

If we had more time, we would add in more types of quests. Right now, there are easy and normal quests, but occasionally people want more involved quests, so the option to ping for harder quests should be added. More quests in the current categories would make quests more interesting and varied as well. In addition, having higher levels should also scale the difficulty of the normal quests, so it would be nice for levels to account for some portion of quest generation. It could also be cool to add in some “encounters” later, which could be bigger tasks like “get the groceries” or “do the dishes” that everyone must do.

Built With

Share this project:

Updates