GithubHelp home page GithubHelp logo

jcgoble3 / mrc-discord-bot Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 1.71 MB

A simple Discord bot. Group 8 project for CEG 4110 at Wright State University.

License: MIT License

Python 10.76% Dockerfile 0.05% Shell 0.11% HTML 84.84% JavaScript 2.85% CSS 1.39%
discord-bot python

mrc-discord-bot's People

Contributors

alexflipnote avatar atiwiex avatar bobby-burns avatar cyyynthia avatar dward118 avatar jcgoble3 avatar jluckenbill avatar k1m0ch1 avatar lepeli avatar maimisu avatar marck avatar mdlubbers167 avatar natedawg96 avatar perryprog avatar piemadd avatar sethsarchet avatar soheab avatar voiding avatar zenrac avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

mrc-discord-bot's Issues

Comprehensive testing

As a code maintainer, I want the ability to run comprehensive tests on as much code as possible, including Discord commands, so that I can trust my code and catch regressions.

Implement code coverage

For User Story #51, we need a code coverage tool. It doesn't really matter which one, so pick one that integrates with pytest and get it working.

Completion criteria: Screenshot showing that running pytest produces code coverage information, along with pull request iff code changes are needed.

Due: Sunday, April 11

Write a proof of concept function for future use with trivia

Write a proof-of-concept function for communicating with the bot to aid in the understanding of Python and the Discord API. The proof of concept will be used as a template for the trivia command in User Story #9.

Completion criteria: Pull request with a proof-of-concept function meeting the following requirements:

  • Must be a command
  • Must instruct the bot to ask the user a question
  • Must monitor the chat for a response from the user
    • There is no requirement at this time for how long the bot must monitor the chat (this will be determined at a later time, perhaps as part of Task #24)
  • Must evaluate the user's response (criteria: either matches or doesn't match the expected response)
  • Must send a message to the chat stating the result of the response evaluation, that it matched or did not match

Due: Tuesday, March 23

Implement automatic welcoming

Implement User Story #2.

Completion Criteria: Pull request in which bot responds to each user join with a welcome message.

Due: Tuesday, April 13

List and justify the bad words that should be filtered

For User Story #8, list the bad words that should be filtered and briefly justify each one with a one or two word comment. Also justify why some selected "lighter" curse words are not included in the filter list.

Completion Criteria: Comment on issue #8 containing all of the above.

Due Date: Tuesday, March 30

Write questions and answers for the trivia command (Derion)

Write at least 5-10 questions for use with the trivia command in User Story #9. Questions should have answers that are one or two words. Questions/answers can be initially written as plaintext, then upon merging of the pull request associated with Task/Action #25, converted to code and a pull request filed.

Completion Criteria: At least 5 trivia questions (more would be great ๐Ÿ˜„) with one- or two-word answers are prepared, coded in the format implemented in #25, and a pull request with that code is made.

Due: Thursday, March 25, or 72 hours after the pull request for #25 is merged, whichever is later

Document code merged already

Add support for Doxygen and add Doxygen comments to code merged already via previous pull requests in support of User Story #44.

Completion Criteria: Documentation comments exist for code previously merged since forking and these comments build into proper Doxygen documentation.

Due: Tuesday, April 6

Log Messages

As a server admin, I want the bot to keep a log of all the messages said in the server so that there is a record of all the messages, even the ones that get deleted. This would be useful in case someone says something against our guidelines and tries to cover it up by deleting it.

Trivia

As a server admin, I would like the discord bot to ask the users a trivia question, from a predefined list of trivia questions, when prompted by a user.

Trivia questions would provide entertainment for the users.

Ask Mr. Buck about the definition of "trivial"

Ask Mr. Buck at the start of the class on Thursday about his definition of "trivial" in grading requirements.

Completion Criteria: Class recording in Collaborate Ultra contains question and summary of response is posted here.

Enable testing of Discord command coroutine functions

As part of User Story #51, set up a solution (mocks, second bot, whatever) to test the command functions that is compatible with code coverage as implemented in #53.

Completion criteria: Discord commands are testable and tests are written for at least one command and submitted to a pull request.

Due date: Monday, April 19

Working bot

As a code maintainer, I would like to get the bot running on a hosting server so that we can test it on our team's Discord server.

Write listener for arbitrary word

Write a listener that scans all messages for a particular word (any arbitrary word) and performs some action to indicate when the word was detected. This will later be used for User Story #8.

Completion Criteria: Pull request containing a working listener for the above.

Due date: Tuesday, March 30

Implement trivia start/stop/status

Implement starting, stopping, and status updates on trivia for User Story #9.

Completion criteria: Pull requests with code for starting, stopping, and giving status updates on trivia, including program by contract.

Due date: Tuesday, April 20

Set up automatic deployment via webhooks

Make changes to main automatically deploy to the AWS instance that the bot on our group server is running on. This requires coding support for the webhook on my personal website, and configuring the webhook on GitHub.

Completion Criteria: Each push and merge to the main branch triggers an automatic update and restart of the bot on my AWS instance.

Associated User Story: #3

Due: Sunday, March 14

Read trivia questions from a file

Write code to read the trivia questions from a file, including determining the format of the file, for User Story #9.

Completion Criteria: Pull request that makes questions and answers are read in from a text file and placed in a QuestionList, without any questions hard-coded in the Python code.

Due: Tuesday, April 6

Write questions and answers for the trivia command (Seth)

Write at least 5-10 questions for use with the trivia command in User Story #9. Questions should have answers that are one or two words. Questions/answers can be initially written as plaintext, then upon merging of the pull request associated with Task/Action #25, converted to code and a pull request filed.

Completion Criteria: At least 5 trivia questions (more would be great ๐Ÿ˜„) with one- or two-word answers are prepared, coded in the format implemented in #25, and a pull request with that code is made.

Due: Thursday, March 25, or 72 hours after the pull request for #25 is merged, whichever is later

Get bot running in personal Discord server and understand the code

Get familiar with the existing code and how the discord.py library works, and experiment with local tweaks to gain a better understanding of how the code works. Get the bot running on your own personal server (@jcgoble3 will provide instructions) for User Story #83. Write notes on what you have learned.

Proof of completion: Brief summary (a few sentences) explaining what you've learned about how the bot works, and a screenshot of a successful !ping command on your own server.

Due Sunday, March 14.

Command to switch branches

As a developer, I would like the ability to issue a command to the bot in Discord to load a feature I am developing so that I can test it without relying on @jcgoble3 to manually update the code on the hosting server.

Memes

As a user of the discord server, I would like the ability to generate memes for entertainment and to joke with my friends.

Jokes

As a user of the discord server, I would like the bot to be able to generate random jokes, in text, so that my friends and I can have a good laugh.

Design and implement question storage

Design and implement a data structure to hold questions and answers for use by the trivia command in User Story #9.

Completion Criteria: Pull request with code for a data structure (or multiple data structures) used to hold questions for the trivia command.

Due: Sunday, March 21

CI integration

As a code maintainer, I would like to have continuous integration set up with a CI service, so that we can more quickly identify regressions and be capable of automating deployments later.

Blocks #3.

Mute users

As a server admin, I would like the bot to be able to automatically mute users in both text and voice channels for a certain period of time, in order to keep these channels clean and reduce the frequency of spam messaging.

Implement checking trivia answers

Implement all logic for checking trivia answers and handling correct and incorrect guesses as part of User Story #9.

Completion Criteria: Pull request with code for the above.

Due: Tuesday, April 13

Misc Games

As a server admin, I would like the bot to have a variety of misc games for users in the discord server, in order for users to engage in entertainment while using a server

Weather

As a discord user, I would like the bot to be able to fetch weather data for their location to easily provide the users with the weather for that day.

Automatic welcoming

As a server admin, FuzzyBanana would like the bot to automatically welcome users when they first join the server, in order to make them more likely to stay and engage in discussion.

Random xkcd comics

As the professor, I would like to be able to get random xkcd comics in order to amuse myself.

Document all changes

As a code maintainer, I want documentation of all changes so that I understand the design of the code.

Automatic deployment

As a code maintainer, I would like to automate code deployments, with every commit to master deployed to a testing server and selected commits deployed to the real server.

Blocked by #1.

Design the control flow for the bad word filter

Design the control flow for the bad word filter in User Story #8.

Completion Criteria: Comment on issue #8 containing a complete design of the control flow following a detection of a bad word.

Due date: Tuesday, March 30

Voting Polls

As a discord user, I would like the bot to generate a poll for amusement, to allow the users to vote on what they prefer more.

Automated Language Warnings

As a server admin, I would like the discord bot to monitor the chat and and issue warnings when a user uses inappropriate words. A list of words that are considered inappropriate will be provided.

Automated language warnings would discourage the use of foul language on the server.

Message flagging

As a server admin, I would like the bot to automatically flag messages that violate server rules, in order to ensure a positive experience for everyone in the server and reduce the time that the admins spend monitoring text channels.

Remove users

As a server admin, I would like the bot to be able to remove users from a server, in order to keep a server friendly from disobedient users who can't follow the server rules or users that have been inactive in the server for a extensive amount of time.

Implement message logging to file

Implement logging of all messages to a file, which for now will be stored locally within the repo and ignored via .gitignore as part of User Story #11.

Completion Criteria: Pull request with code to log all messages in all channels to a file within the repo.

Due: Tuesday, April 13

Implement a joke command

Implement a command to tell the user a joke (User Story #10).

Completion Criteria: Pull request containing code for the joke command.

Due date: Saturday, March 27

Design communication protocol for trivia function

Create a list of requirements (syntax, timing, etc.) and a control flow graph for the trivia function described in User Story #9 and post that design to issue #9.

Completion Criteria: Complete requirements for how the trivia command should behave from the user's perspective and a basic graph showing control flow exist as a comment to issue #9.

Due: Tuesday, March 23

Ban Users

As an admin of the discord server, I would like the functionality of automatically banning users that break the rules of the server. This would save me time and effort, and ensure the other users of the server have a positive experience.

Write questions and answers for the trivia command (Max)

Write at least 5-10 questions for use with the trivia command in User Story #9. Questions should have answers that are one or two words. Questions/answers can be initially written as plaintext, then upon merging of the pull request associated with Task/Action #25, converted to code and a pull request filed.

Completion Criteria: At least 5 trivia questions (more would be great ๐Ÿ˜„) with one- or two-word answers are prepared, coded in the format implemented in #25, and a pull request with that code is made.

Due: Thursday, March 25, or 72 hours after the pull request for #25 is merged, whichever is later

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.