This is a Discord bot designed to facilitate a virtual classroom environment. The bot provides features for role assignment, private student channels, assignment distribution, and checklists for students and teachers.
- Role Management: Assign
studentorteacherroles. - Private Channels: Creates a private channel for each student and a shared teacher channel.
- Assignments:
- Teachers can create assignments.
- Assignments can be given to all students or specific students.
- Students can submit completed assignments.
- Checklists:
- Teachers can create checklists for students.
- Students can mark checklist items as completed by reacting with emojis.
| Command | Description |
|---|---|
.start |
Initiates the role selection process. |
.student |
Assigns the student role. |
.teacher |
Assigns the teacher role. |
.mychannel |
Creates a private text channel for the user. |
.assign |
Starts the assignment creation process (teachers only). |
.create <ID> %%% <Title> %%% <Description> $$$ <Due Date> |
Creates an assignment with a unique ID (teachers only). |
.giveto @student <ID> |
Assigns a specific assignment to an individual student. |
.allassign <ID> |
Assigns an assignment to all students. |
.done <ID> <message> |
Marks an assignment as completed and notifies teachers. |
.checklist |
Creates a checklist for students (teachers only). |
- Python 3.8+
discord.pylibrarydotenvfor environment variables
- Clone the repository:
git clone https://github.com/yourusername/discord-classroom-bot.git cd discord-classroom-bot - Install dependencies:
pip install -r requirements.txt
- Create a
.envfile and add your Discord bot token:TOKEN=your-bot-token
- Run the bot:
python bot.py
- Invite the bot to your Discord server.
- Run
.startto begin setting up roles and channels. - Teachers can create assignments using
.assignand distribute them with.givetoor.allassign. - Students can submit assignments using
.done. - Teachers can create checklists for students using
.checklist.
This project is open-source and available under the MIT License.
Contributions are welcome! Please open an issue or submit a pull request.
- The bot must have permission to manage roles and channels.
- Ensure the bot has the correct intents enabled in the Discord Developer Portal.