Click here to watch the video explaining Phase 3 improvements and new features - Evaluation media
Basic Overview :: Description :: Installation :: Commands :: Future Scope :: Contributors
This project helps to improve the life of students, TAs and teachers by automating many mundane tasks which are sometimes done manually. ClassMateBot is a discord bot made in Python and could be used for any discord channel.
In Iteration 2, we added 6 main quality-of-life improvements to be more useful to admins (Professor and TA) and students alike.
There are three basic user groups in a ClassMateBot, which are Students, Professor and TAs. Some basic tasks for the bot for the students user group should be automating the task of group making for projects or homewroks, Projection deadline reminders, etc. For TAs it is taking up polls, or answering FAQs asked by the students. Our ClassMateBot focuses on the student side of the discord channel, i.e. currently it focuses on the problems faced by the students while using these discord channels.The user stories covered here would be more concerned about the activities for the channel for Software Engineering class in North Carolina State University for the Fall 2021 semester.
For Iteration 3, we aimed to expand the Bot's functionality so Professors and TAs can be more efficient and widened our scope outside of just our Software Engineering class. We researched how different roles and channels help in ease of communication and tracking. We believe our bot's commands like attendance, sending reminders to all members, auto numbering of questions, new channels for different tasks and etc, greatly benefits class management and information distribution.
You can find the Features from Iteration 1 here
You can find the Features from Iteration 2 here
We have introduced more channels for ease of communication. We have below channels created at the start of the bot,
- Instructor
- Q-and-A
- TA
- Course Calendar
We have introduced roles for better classification of the members and to restrict access for certain commands. We have added below roles,
- Instructor
- TA
- Student
- Guest
We have multiple commands to handle functionalities related to instructor roles. Only the instructors have access to the instructor cannel and we have restricted ceratin commands(like attendance) to be used only in that channel.
We have multiple commands to handle functionalities related to TA roles. Only TAs and Instructors will have access to the TA channel but unlike instructors channel they aren't any channel specific commands yet.
Direct messsaging commands allows people to dm privately to any other member of the guild. We also have a command to send a reminder message or a broadcast message to all the members of the guild privately.
The instructors can check the attendees and absentees list using this command. This can be executed only in the instructors channel. This will also show them a pie chart of the same.
This enables users to add a custom word to the profanity filter. These words will be added to the profanity filter and will be blocked from the messages.
This functionality enables users to ask questions in the q-and-a channel. They can ask it as themselves, that is, the author name will be displayed next to the question, or they can ask questions anonymously. All the questions are auto-numbered for ease of tracking.
Members can also answer these questions. The role will be displayed next to the answer.
When a member is spamming the server, after 5 consecutive messages within a short span of time, they will get a warning. The Instructors/TA can ban the spammers or members if necessary. An unban command is also added.
This functionality enables members to set a personal reminder. After the given amount of time, the bot will remind you in the same channel.
This enables ease usage of cogs. Every feature is represented as a cog in our development model. This functionlity eable easy maintenance of the cogs. You can load, unload or reload a cog with simple commands.
- Clone the Github repository to a desired location on your computer. You will need git to be preinstalled on your machine. Once the repository is cloned, you will then
cd
into the local repository.
git clone https://github.com/chandur626/ClassMateBot.git
cd (into the ClassMateBot folder. If you type the commmand "ls", you should see the contents of the ClassMateBot folder)
- This project uses Python 3, so make sure that Python and Pip are preinstalled. All requirements of the project are listed in the
requirements.txt
file. Use pip to install all of those.
pip install -r requirements.txt
- Once the installation is complete with requirements installed, you have to generate a .env file and place it in the root of your project folder. The .env file contains your bot TOKEN and your Discord GUILD (guild is your discord server name). Check out this video to see how you can setup your discord developer settings and .env file. You may also contact Niraj Lavani (nrlavani@ncsu.edu) for additional information on this process.
PLEASE DO NOT SHARE THE TOKEN ONLINE,
DO NOT UPLOAD TO GITHUB OR ELSE THE TOKEN WILL AUTOMATICALLY GET DESTROYED AND HAS TO BE REGENERATED.
- Once all the requirements are installed, use the python command to run the
bot.py
file.
python3 bot.py
Attendance
Messaging
Profanity
Question and Answers
New Role - Instructor
New Role - TA
Spam Warning and Ban
Reminder
Cog Maintenance
Data Visualization
User Ranking
Email Specification
Auto-Grouping
Sentiment Analysis
Link Saving
For the newComer.py file
For the voting.py file
For the deadline.py file
📂 $change_reminder_due_date command
📂 $clear_all_reminders command
For the pinning.py file
For the groups.py file
Project 3 TODO tasks are located in the Projects tab.