Discord is an online Voice-over-Internet-Protocol(VoIP) and messaging application. In addition to messaging capabilities, Discord offers support for "bots", programmable robotic users that can interact with human users. These bots are capable of a plethora of interactive actions. For example, a Discord bot can help with the governance of a Discord server, relay real time sports game data, and even play music within a voice channel. The goal of our project is to design and build a Discord bot that can do many actionable tasks that are useful, intuitive, and entertaining to any Discord user. This project will be a backend-intensive undertaking and will have the frontend development abstracted away using a Discord developer account, which allows developers to test backend code with Discord's user interface. We will also have a custom API server connected to a front-end displaying information and biographical details about the bots.
https://github.com/Shashanka-Sharma
https://github.com/cameronvong
https://github.com/chowdhurytahmeed
The purpose of our project is to build a Discord bot using the tech stack mentioned in class.
We will be using Python with Discord's Python library discord.py
which contains extensive implementations for Discord's API in a pythonic way for the backend of the project, Heroku for cloud deployment, Github / Github Actions for version control, and Discord's API in order to interact with the Discord UI. In addition to the available libraries for python and discord, there is a flask module specifically designed for discord called flask_discord_interactions
which enables the efficient use of flask as our routing framework. Furthermore, if we wish for the project to use a database, we can collect user data through the bot, store it in a database, and fetch the data for use in the application.
We are all interested in using this technology as we all share a common interest in gaming and the constant rise in use cases for Discord, and as a close derivative, Slack. By developing our skills in our product stack, we will not only learn skills to build for Discord, but apps that target other fields as well.
local.sh
file resides in the server directory)https://github.com/Tyarporn/coldbrew-coders
.cd server
and run local.sh using ./local.sh
. http://127.0.0.1:8080/
on a web browser of your choice.Note: Open http://52.72.178.160:8080
on a web browser of your choice if server is activated.
.env
within that directory.DISCORD_TOKEN
variable in the .env file and set it to the discord token for the bot, accessed from the discord developer portal.DISCORD_GUILD
in the .env file, which is the name of the discord server you wish to add the bot to. Ensure you have proper permissions to add users to your chosen discord server.shank-bot.py
under shashanka-testing
directory. makefile
within that directory.export PYTHONPATH=<project directory path>/back-end:<project directory path>/back-end/db:$PYTHONPATH
to set the python path locally. make all_tests
.Main Language: Python 3.9 or greater
OS: UNIX-like (MacOS, Linux, Windows Subsystem for Linux, etc.)
Testing: pytest
API server: flask and flask-restx
Finance API: YFinance - Yahoo Finance News and Reviews API: NYT - New York Times
Database: MongoDB
Build: make
Lint: flake8
CI/CD: GitHub Actions
Cloud deployment: AWS EC2 (Server)
Bot Frontend: Discord UI
Web Frontend: React JS (work in progress)
Project management: Kanban board on GitHub