Skip to content

TeachersPetBot is a Discord Bot for class instructors to streamline their Discord servers

License

Notifications You must be signed in to change notification settings

chandur626/TeachersPetBot

Β 
Β 

Repository files navigation

https://drive.google.com/file/d/1AN1_ogV7DrMxMMEdWf1HOMlxwH-fbyPm/view?usp=sharing

alt text

Teacher's Pet

Streamline Your Class Discord

DOI Python GitHub GitHub issues GitHub closed issues Lines of code codecov GitHub Workflow Status GitHub deployments

Contents

  1. Description
  2. New Features
  3. Installation and Running
  4. Testing
  5. Bot Commands
  6. Future Scope
  7. Want to contribute?
  8. License

Click Below to Watch Our Video!

highlightvideo.V2.comp.mp4

Software Engineering Project for CSC 510 : Phase III

Teacher's Pet is a Discord Bot for class instructors to streamline their Discord servers. Discord is a great tool for communication and its functionalities can be enhanced by bots and integrations.

For 3.0, we created new tools for instructors and students to use to improve course communication. Some of our implemented features were partly suggested by iteration 2 such as regrade requests, project event, and live spam checking. We implemented other features we thought would be helpful such as email interactions, link saving, and data visualization. Our main objective for 3.0 was to add more organizational tools to make a course's discord channel more than just a messenger.


Bot Features

Click here to see the features of iterations I and II.

Charts

Instructors (like TAs, and Professors) can quickly make graphcs and charts directly in discord to share with students/users. Instructors can use this feature to share grade distributions, lecture participation/attendance, or other course statistics. All charts are named and stored into a json file when they are created. Students have acess to a command that allows them to view previously presented charts.

Email Configuration

This feature enables users to configure their email address in the system to receive important notifications, attachments from professors, assignment reminders. Users can also update, view and unconfigure a configured email address through the system.

Email Interaction

This feature notifies all students regarding the next assignment deadline which is due for a day through email.

Re-Grading

This feature provides a way for students to submit regrade requests and Instructors can collect information of the requests submitted. There are various commands included to add, update, display and remove regrade requests. This usecase was based on regrade request submission for CSE 510 SE FALL21 mid examination.

Link Saving

This feature is helpful to save all the messages which contain important URLs. we have built a user command "!send_links" This command lets users access all messages which contain URLs. The messages Containing URLs are automatically get appended in a file and the file is attached when the "!send_links" command is input.

Project Event

This feature allows instructors or teaching assistants to create a project event by providing information such as description, link for project submission and deadline. The deadline reminder is taken care of Email Interaction feature.

Spam Detection

This feature is used to detect spam in message channels. When a user tries to send too many messages in the channel, it gives a warning. This is useful when multiple users are trying to send mutiple messages. The warning lets the student know that they have sent too many messages.


Installation and Running

Tools and Libraries Used

In addition to the packages from requirements.txt which need to be installed, please have the following installed on your machine:

To install and run Teacher's Pet, follow instructions in the Installation and Testing Guide.

Testing

To run tests on the Teacher's Pet, follow instructions in the Installation and Testing Guide.


Bot Commands

Bot commands from iteration III

πŸ“‚ !regrade-request command

πŸ“‚ !update-request command

πŸ“‚ !remove-request command

πŸ“‚ !display-requests command

πŸ“‚ !chart command

πŸ“‚ !check_chart command

πŸ“‚ !create_email_command

πŸ“‚ !view_email_command

πŸ“‚ !update_email_command

πŸ“‚ !remove_email_command

πŸ“‚ !project_event command


Bot commands from iteration I and II

!setInstructor <@member> Set a server member to be an instructor (Instructor command)

!removeInstructor <@member> Remove a server member from the instructor role (Instructor command)

!getInstructor Get the current instructors in the server

!attendance Find attendance from voice channel (Instructor command)

!ask "<question>" Ask a question

!answer <question_number> "<answer>" Answer a question

!poll <command> Run a poll for students (Instructor command)

!create Start creating an event (Instructor command)

!oh enter Enter an office hour queue as an individual student

!oh enter <group_id> Enter an office hour queue with a group of students

!oh exit Exit the office hour queue

!oh next Go to next student in queue as an instructor (Instructor command)

!help Gets the descriptions for all commands

!help <command> Describes a command in detail

!ping Find the latency of network

!stats Gets the statistics of system and softwares used


Future Scope

This bot has endless possibilities for functionality. Features which we are interested in adding but did not have time for include but are not limited to:

  • Custom Events
  • Allow events to be edited
  • Show error information on discord
  • Make Instructor commands private
  • Add new roles
  • Track participation and user ranking
  • Refactor code to use cogs
  • Save data charts on DB rather than locally in json
  • Store data based on user emote reactions to instructor messages

For a detailed description of each of the above future enhancements listed visit Future Scope.


How to Contribute?

Check out our CONTRIBUTING.md for instructions on contributing to this repo and helping enhance this Discord Bot, as well as our Code of Conduct guidelines.

License

The project is licensed under the MIT License.


Team Members

Chandrahas Reddy Mandapati

Sri Pallavi Damuluri

Niraj Lavani

Harini Bharata

Sandesh Aladhalli Shivarudre Gowda

Previous Authors

Ashwin Shankar Umasankar

Itha Aswin

Kailash Singaravelu

Saikaushik Kalyanaraman

Shakthi Nandana Govindan

About

TeachersPetBot is a Discord Bot for class instructors to streamline their Discord servers

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%