Inspiration
Our group was inspired to make StudyBuddy directly due to our personal experiences. All three of us being work-loaded STEM students, we frequently find ourselves doing work together on discord at even the earliest hours in the morning. We noticed that there was really no companion on discord that could provide everything we could possibly need while studying. In fact, leaving discord for things like music and Google distracted us at times, and we realized that we needed to create a one-stop-shop Discord Bot for all studying needs. This way, we would now have no real reason to leave the discord screen, as everything we could possibly need while studying would be available on discord itself. We created this project in hopes that we could greatly increase the productivity of our users.
What it does
StudyBuddy has a variety of useful features that can be utilized by users. Users have the ability to use StudyBuddy to ask WolframAlpha any question that they would need. From the atomic mass of Uranium to the definition of dystopian, WolframAlpha can answer almost any question that you would otherwise leave the screen to search for on Google. StudyBuddy also has the ability to play and skip YouTube videos, in the event that your study session needs a little more ambiance. Additionally, utilizing a real-time database, StudyBuddy keeps track of all of its users and stores various information like their favorite song and website to go to. StudyBuddy can both access and update this information from the text channel itself. Using this information, StudyBuddy can provide users motivation and access to some of their favorite websites and songs whenever the user feels overwhelmed with work. StudyBuddy also continuously scans the chat for lazy-sounding messages and sends users that it detects might fall asleep some uptempo music to wake them up. Users also have the ability to set themselves productivity timers based on how studious they are. Whenever users complete the time on this productivity timer, they are prompted to take a break. Users can also set goals for each study session and create ToDo lists, in order to make sure that the focus on the eventual goal for the session remains the same. StudyBuddy can do almost anything that you would need when studying with a group on Discord.
How we built it
We used the Discord API to create this Bot in Python. Making use of the API's client events, we programmed several commands in the on_message method of the API. We also created several algorithms in order to overcome several hurdles in our creation process such as a queue algorithm that deletes skipped songs in the queue automatically, a query system that allows multiple users to have conversations with the bot at the same time and much more. We utilized FireBase Realtime database and several APIs as well to accomplish many of the features of the Bot.
Challenges we ran into
The largest challenge we ran into was learning Python. None of us really knew much Python (other than the classic 'Hello World') and had to transfer our Java skills into Python in order to create a Discord Bot. Our group was committed to trying new things and challenging ourselves, we did things that many of our group members had very little experience with. Specifically, getting our play skip algorithm to work was probably what we spent the most time working on, as because we saved songs by their YouTube URLs, it was hard to debug. Additionally, learning how FireBase real-time database works were also pretty challenging and took us quite a bit of time as well. One of our group members also had a tough time working with async threads.
Accomplishments that we're proud of
We're generally proud that we got to all of the main features that we have been talking about creating for years now. Additionally, things like our play-skip feature and our Firebase-related features did not work for a very long time, so when we finally methodically figured out the solutions to these problems, it was extremely satisfying. Also, we are specifically proud of one of our groupmates: Advait Borkar. He has a lot less experience with coding than the rest of us and learned a lot while also contributing a lot to the project as well. He even created and utilized his own async method after struggling for hours, which was certainly a moment for celebration.
What we learned
In terms of actual development skills, HackRU was a very educational experience for us. We learned a lot about threads and Firebase, and about making Discord bots in general. Additionally we also learned a lot about debugging code, as when we are under such a time crunch, we must figure out ways to debug efficiently to save time.
What's next for StudyBuddy
Our next goal for StudyBuddy is to host it on a server that continuously runs, so several users can use the application at once. We also plan on adding more features such as a Machine Learning run lazy text detecter
Log in or sign up for Devpost to join the conversation.