Overview

What is Discord?

Discord is a social networking platform featuring voice and video calls as well as voice and text channels in the form of a server. At the enterprise level, Discord appears to be similar to Slack without the collobarative features. On the developer side, Discord supports bot creations to create custom commands for text, images and audio.

Project Overview

There are many Discord bots that are free to use however, as a side project, I wanted to develop a personalized bot with custom commands pertaining directly to my friend group. This would be one of my first personal projects. While I wanted to offer commands that could compete with the market, I had no knowledge of Discord.js nor Node.js. Ultimately, this project would be a way to test my language learning skills while creating something meaningful to my friends. Using the resources listed on the right, I was able to develop a working bot.

Project Goals

-Create a working bot that responds to commands
-Create commands that would offer something that bots for the general public could not offer
-Host the bot 24/7 without having to manually enable it on a local PC

Bot Commands

-% The prefix needed to activate the command
-%Help: Shows an embedded image with all the commands listed
-%Steve: Shows a randomly selected image of Steve
-%Arthur: Shows a randomly selected image of Arthur
-%Trash: Returns a random number between 0 and 100 and designates it as the "trashrate"
-%Flip: Shows an image of either the heads or tails of a quarter
-%Games: Returns a randomly selected name of a game
-%Quote: Returns a randomly selected quote from the members of the server.
-%8Ball: Shows a randomly selected image of a magic 8Ball answer
-%Love: Checks compatability rate with mentioned user (randomly generated)
-%Leaders: Shows embedded image of leaders with descriptions
-%Italy: Kicks specified user from the server
-%Sound: Plays a randomly selected audio clip if user is in a voice channel
-%Website: Returns the link to the server website
-%Google - shows one of the first five google images request
-%Shoot - Shoots the mentioned user's avatar
-%Roulette - Play Russian Roulette
-%Roll - Rolls a dice
-%Who - responds to a question with a crew members' name
-%Drip - Gives mentioned user the drip

Conclusion

Following the online tutorials and official documentation, I found it very easy to pick up and develop. While Javascript is not the same as Java, I found it very easy to follow and could easily translate concepts over such as RNG, arrays, string methods, and conditional statements. I also learned how to host an app via Github and Heroku. Additionally, the bot was used to support the custom server website I created. My friends were very supportive of the idea and were thoroughly entertained by what it had to offer for some time. The source code can not be made public as malicious users may be able to modify it and wreak havoc on the integrity of the server.

Image of Bot Profile

The bot will appear as a user on a Discord server but will have the official "Bot" tag attached to indicate it.

Server Logo

Private Discord server logo

Other Projects

Layered Laser Defense

I was tasked with redesigning, implementing new features, and fixing bugs for the main laser turret executive GUI.

ClassifAI

I co-led a team to build an artificial intelligence tool to transcribe and analyze audio/video for teachers.

Superfrog Student Scheduler

I co-led a team of fullstack developers to make a scheduling website using Vue.js and Spring Boot.

BINOCS Gaia Enhancements

For my Honor's thesis, I worked on enhancing binary star detection software through automated data collection and more.

IOS Apps

I developed clones of popular apps such as Twitter and Instagram.

Sharepoint Site

I was tasked with creating and administering a new Sharepoint site equipped with Infopath forms.

Microsoft Windows Automation

Using Powershell and Batch Scripts, I was able to automate onboarding Windows processes for many assets.

Raspberry Pi Motion Sensor

My partner and I challenged ourselves in creating a motion sensor with automated notifications.