Giter Club home page Giter Club logo

classmatebot's Introduction

ClassMate Bot

                   
DOI License Python Lines of code Codacy Badge codecov GitHub pull requests GitHub closed pull requests GitHub issues GitHub closed issues GitHub issues by-label GitHub closed issues by-label Python application GitHub Workflow Status Pytest Pylint

Basic Overview :: Description :: Installation :: Commands :: Future Scope :: Contributors :: Wiki


A6ZDZP4QW175IK5P.mp4

Watch on YouTube


🎯 Basic Overview

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.

This is Project 2 for the ClassMate Bot. Changes are marked below and listed in Project 2 Changes.


📙 Description

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 homeworks, Projection deadline reminders, asking questions, getting questions for review etc. For TAs it is taking up polls, or answering questions 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.


1 - Student Verification

Once the new member joins the server, before giving them the access to the channels there is a need to get the real full name of the member to map it with the discord nick name. This mapping can later be used for group creation, voting and so on. To do this we first assign the unverified role to the new comer and then ask them to verify their identity using $verify command. If that goes through, the member is assigned a student role and has full access to the server resources. The bot then welcomes the member and also provides important links related to the course.
image

2 - Project Voting

Voting for projects is a common occurence that many students must endure. With the addition of a voting system, this task is made easier by allowing student groups to place themselves on projects through an easy to use discord system. With the combination of the ClassMateBot grouping system, teams can easily vote their group into a project, switch their votes, or view the full list of projects that have been voted for.
image image

3 - Deadline Reminder

The next important thing our project covers is the Deadline reminder feature of our bot. Students may add homeworks, links, and due dates using the system, and then view their daily or weekly dues with ease. No longer will a student be vulnerable to those odd submission times like 3:00 PM. See homework specific to one class, due today, or due this week! $addhw CSC510 HW2 SEP 25 2024 17:02

4 - Personally Pinning Messages

Another problem that the students face is that they cannot pin important messages they want to go back to later. With pinned messages, the student can save discord message links easily to point back to prior messages or just leave their own general messages. It is a very easy system to use and could be creatively used by a student in many different ways to promote better classroom success. image

5 - Group Creation

Another unique and useful feature of our ClassMateBot is that it helps the students in the process of group making for their projects. Through this feature, the bot could help the students identify other members of the class with similar ideals and acts as a medium to connect them initially. This feature is also helpful for students randomly assigned to a group to connect with the new member which would not only save time, but also, saves effort as many times students do not have their names as their usernames on discord. Through this students can join, leave or connect with others.

image

Moreover, the group creation feature allows members of the group to join a private text channel to communicate with ease! This works by assigning a role to the user when they join a group and giving them access to the private channel specically for their group, this is especially useful when switching groups because a change in the user's role will automatically revoke access to the private channel. Additionally, the private channels are set up so instructors can help with clarifications directly without having to reach out to them via DMs.

group demo group demo chg

6 - Question and Answer (New Project 2 Commands)

A common usage for our current class Discord is for students to ask questions about the course. It is helpful for the questions to be numbered and for the answers to be attached to the question so it be easily found. Some students may feel more comfortable asking and answering questions anonymously. It is also helpful for users to know if the question is answered by a student or instructor. This feature keeps the questions and answers all in one channel so it does not clutter other channels and can be more easily viewed. image
image

7 - Review Questions (New Project 2 Commands)

An essential part of studying is going over questions related to the exam topics. This feature allows instructors to add review questions and students to get random review questions. To enhance its effectiveness, the answers to the review questions are hidden as a spoiler that students can choose to unveil when they are ready. image


⬇️ Installation

To install and run the ClassMate Bot, follow instructions in the Installation Guide.


💻 Commands

For the newComer.py file

📂 $verify command (Modified Command in Project 2)

For the voting.py file (All Modified Commands in Project 2)

📂 $projects command

📂 $vote command

For the deadline.py file

📂 $add_homework command

📂 $change_reminder_due_date command

📂 $clear_all_reminders command

📂 $course_due command

📂 $delete_reminder command

📂 $due_this_week command

📂 $due_today command

📂 $list_reminders command

📂 $timenow command (New Command in Project 2)

For the pinning.py file (All Modified Commands in Project 2)

📂 $pin command

📂 $unpin command

📂 $pinnedmessages command

📂 $updatepin command

For the groups.py file

📂 $startupgroups command (New Command in Project 2)

📂 $reset command (New Command in Project 2)

📂 $connect command (New Command in Project 2)

📂 $groups command (Modified Command in Project 2)

📂 $group command (New Command in Project 2)

📂 $join command (Modified Command in Project 2)

📂 $leave command (Modified Command in Project 2)

For the qanda.py file (All New Commands in Project 2)

📂 $ask command

📂 $answer command

For the reviewqs.py file (All New Commands in Project 2)

📂 $addQuestion command

📂 $getQuestion command


🌎 Future Scope

Project 3 suggested tasks are located in the Projects tab.


✏️ Contributors for Project 3


Emily Tracey

Peeyush Taneja


Jonathan Nguyen


Leila Moran


Shraddha Mishra


✏️ Contributors for Project 2


Tanya Chu

Steven Jones

Shikha Nair

Alex Snezhko

Pradhan Chetan Venkataramaiah

✏️ Contributors for Project 1


Chaitanya Patel

Evan Brown


Kunwar Vidhan


Sunil Upare


Sumedh Salvi

classmatebot's People

Contributors

sunil1511 avatar tanyachu avatar war-keeper avatar wevanbrown avatar kunwarvidhan avatar salvisumedh2396 avatar shikhanair avatar alex-snezhko avatar stevejones92 avatar snapcat avatar prdhnchtn avatar pradhan-chetan avatar jhnguye4 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.