Initially we had a hard time figuring out what to make as we as a team did not have much experience with hackathons. Discussing through discord, we realized that instead of creating a project on a different platform, we could just enhance the app that we all use very often, Discord. This is when we came up with the idea of creating a Discord bot. Setting out to brainstorm, we looked at many different ideas in multiple categories, but we as a team weren't able to agree on any of them. We then stumbled upon the idea of translating. As a team, we all agreed that translating is an important addition to Discord and one that should be implemented. This then brought upon the idea of a translating Discord bot. Towards the end of our project, we realized that there were so many other additions that we could make to Discord to make it a better app and so added all of these additions together to make a multi-tasking bot. From here, Discord.Chocolate was born.
What it does
Discord.Chocolate does a variety of things. The main thing that it does is it translates between languages using the !translate [language] [message] setup. We also created a to English function as English is a widely spoken language around the world and would be a shortcut way instead of using our original function. The setup of our to English function is !english [message]. On top of these translate function, we also have the !quotes, !quotetoday, and !quotenumber [int] functions. The !quotes function prints a random quote retrieved from our API. The !quotetoday function prints the quote of the day. The !quotenumber [int] function takes in an int as an argument and produces that number of quotes. For example if you input 2 in the !quotenumber function, it will output 2 quotes.
How we built it
We used Discord.Py to as our database. We also used many APIs such as google translate and zenquotes.io to retrive data. We coded our bot in Python on a webist called Repl.it and tested it on a Discord server.
Challenges we ran into
The whole process of making this Discord bot was difficult as it was a new project that we were all creating and only one of us had used Discord.Py before. That too in a very basic manner. We had a tough time debugging all of the functions and keeping it all organized since it was a lot of code all in one place. Towards the beginning of the project, it took us some time to find usable APIs to assist with our project as many of them were unusable or had fees associated wit them. Implementing and creating our first official project was a huge challenge all together, but we were able to get through it.
Accomplishments that we're proud of
We are very proud of the project that we ended up making. I don't think going into this that any of us thought we would come out with such a versatile project, but we are glad that we ended up making it. We are also delighted that we were able to develop new skills in working with Discord.py and creating a bot.
What we learned
Throughout this process we learned so many new skills such as learning how to manage our long pieces of code, working slowly through that code to figure out what line applied to what action, and what lines to look at when debugging. This was a new thing for all of us and most of the skills that we implemented in creating this bot were new for us. This was a really great learning opportunity for all of us. Another thing that I our team learned through this project was the mechanics of Discord.py as well as API mechanics. We learned which websites to look at when trying to look at open source data and how to access it.
What's next for Discord.Chocolate
Discord.Chocolate has so much in store. It has not even pushed the envelope for the amount of features that we can add. It has only a few basic commands and because of this short time span, we were unable to add more features. In the future, our team will add features such as chat response, meme generator, reminders, events, polls, and much more. We plan to expand our knowledge of Discord.py and python overall and so hope to implement harder functions to our multi-tasking robot.