This is a Discord bot specifically designed to practice for the Science Olympiad event Fermi Questions. In Fermi Questions, you are provided a type of estimation problem, where the answer is an educated guess using logical reasoning and minimal data. The bot will ask a Fermi question, and users have 2 minutes to respond with their answer in the form of the power of ten that is closest to the actual answer
- Python 3.6 or higher is required.
discord.py
library, which can be installed using pip:
pip install discord.py
-
Obtain your Discord bot token from the Discord Developer Portal.
-
Clone or download this repository to your local machine.
-
Place your Discord bot token in the
DISCORD_BOT_TOKEN
variable inside thebot.py
file.
There are two options for using this bot: self-hosting and using the hosted version. The main difference is that self-hosting is a bit more difficult, tedious, and expensive than using the hosted version. However, self-hosting give you more control over the bot and allows you to make your own customizations as you see fit.
- Click the bot invite link here and select the server you want to add the bot to. Also make sure you have the right permissions, Manage Server, to be able to add Discord Bots to your server.
- Run the bot.py script:
python bot.py
- The bot will log in and display a message indicating that it's ready.
- Invite the bot to your Discord server using the OAuth2 URL generated in the Discord Developer Portal.
- Type
!help
in any text channel on your server to get instructions. - Use the
!fermi
command to trigger the bot to ask a Scioly Fermi question. - The bot will present randomly selected question from the
questions.json
file and wait for a user response. - Users should respond with the power of ten that is closest to the actual answer within 2 minutes.
- The bot will provide feedback on whether the answer is correct or incorrect.
Remember to keep your DISCORD_BOT_TOKEN private and DO NOT share them publicly. Also, ensure your bot has the necessary permissions to read messages and send messages in the channels where it will be active.
This bot is for educational and entertainment purposes only. The questions in the questions.json file have been used in previous Scioly competitions and are not of the bot owner's own making.
This project is licensed under the GNU General Public License v3.0