Inspiration

After going through this intense year of online school, all of our group members felt that they spent way too much time on the computer and had developed some very bad habits. We all felt it would be great for both our mental and physical health if we had something that could remind us about some of the important things you should do while studying, gaming, or doing any other task that involves using the computer for an extended amount of time. Our group is almost always on discord or at least have it open, so a discord bot seemed like the perfect solution and thus, Study Buddy Bot was born!

What it does

Despite its name, Study Buddy Bot is so much more than your personal studying assistant! Study Buddy Bot comes equipped with everything you need to keep yourself productive and healthy while doing tasks on the computer. The following are just some of the amazing features Study Buddy comes with:

  1. Allows you to study with the world-famous Pomodoro Technique. With just one simple command you will be reminded when to start studying and when to take a break according to the methodology of the Pomodoro Technique, which you can read all about here!
  2. Gives you the option to set a reminder to follow the 20-20-20 rule to help reduce eye strain. For a great explanation of this rule, you can watch this short video by the Canadian Association of Optometrists. This is great for long study sessions or really any task that will leave you staring at your computer screen for hours on end!
  3. Lets you begin and end a gaming session. When you are in a gaming session, you will be reminded every hour to take a break from gaming and get up and move around! We know when you're in the moment gaming with your friends it's easy to forget to take a break when the time flies by, but with Study Buddy Bot, you don't have to worry about keeping track of the time, your study buddy will take care of it for you!
  4. Lets you keep track of your many tasks with ease using its To-Do List features. No more will you have to fumble around with a loose piece of paper or the notes on your phone. With Study Buddy Bot, you can create a personal to-do list that you can view at any time with a simple command. You can add a task when it comes up, and remove one when you're done.
  5. Ensures you are properly hydrated throughout the day by allowing you to enable an hourly reminder to drink enough water to keep you going strong all day and also lets you easily track your fluid intake with a simple command. Whenever you finish a bottle of water, you can tell your study buddy and it will update your bottle count for the day!
  6. Lets you quickly and easily access some music to study too! With a simple command, your study buddy will send you a multi-hour studying playlist. This is great as it removes the hassle of going onto the youtube homepage or other media sharing platform and removes the possibility of getting distracted.
  7. Provides you with meditation and breathing exercises to help you reduce your stress and/or anxiety during those exam week crams! Once again, just a simple command and relief is at your fingertips!
  8. Lets you see who is studying at any given moment! This makes sure you don't bother anyone (and that no one bothers you!) when they are studying for an important test! We've all felt the pain of being bothered while you are trying to cram for your last final and the wrath of bothering someone who is! With your study buddy keeping track of who is studying, you'll be able to avoid those situations.

Information on how to take advantage of all these amazing features for yourself can be found on the official Study Buddy Bot website!

How we built it

The Study Buddy Bot itself is created using the Python programming language with the Discord Python API. The associated website is created using javascript, html5, and css3. Finally, the website is hosted by firebase and the domain name is registered with Domain.com.

We split up the work into three major parts.

  1. Discord integration
  2. Website design
  3. Backend

We had group planning sessions where we decided how we delegated the work, playing to our groupmate's strengths whenever possible. The people working on discord integration worked on creating the bot itself, defined the commands, and created the icon for the bot. Meanwhile, the website design team worked on getting the website hosted, the domain registered, and designing the website itself. Finally, the backend team worked to implement the functionally of all the commands and managing the database of user information.

Challenges we ran into

Since nobody in our group had ever done anything even vaguely similar to a discord bot before, the first challenge we faced was that we honestly had no idea where to start! Eventually, after some digging, we found the Discord Python API and decided on using that. However, as wonderful as the API is, we still had no prior experience in using many of the features included in it. One of these that caused us the most trouble was having to use async functions. Since we never used these before, we found them quite confusing and our initial lack of understanding of them lead to us having to redesign key parts of our bot's front end several times, each time costing us precious hours. Finally, a rather strange problem we faced was that code worked perfectly fine on some computers and not others. This caused us to spend hours trying to debug perfectly working code! Again, wasting many hours of our limited time.

Accomplishments that we're proud of

As stated before, we were all complete novices when it came to discord bots so honestly, the accomplishment we are most proud of is that we were able to learn a new API and create a working discord bot! Also, this was the first hackathon most of our group attended, with only one having prior experience. As such, we are really proud of our ability to work as a team and successfully split up and merge all our respective pieces into a working whole.

What we learned

The most important things we all learned as a group was to:

  1. Effectively delegate work, e.g backend, frontend, website
  2. Create a methodology for the way functions and classes are implemented so that everyone would be on the same page and that all our code could work together.
  3. How to effectively communicate what each part of the team needed done in order to move to the next phase of their development.
  4. How to use the discord API
  5. An event-based model of processing tasks.

What's next for Study Buddy Bot

We have grand plans for Study Buddy Bot! We plan to continue to work on and maintain the project after the hackathon, as well as use it in our own personal discord servers. We would love to get more features, clean up the implementation, and most importantly get it a decided host so that anyone in the world can use it for themselves!

Share this project:

Updates