jcgoble3 / mrc-discord-bot Goto Github PK
View Code? Open in Web Editor NEWA simple Discord bot. Group 8 project for CEG 4110 at Wright State University.
License: MIT License
A simple Discord bot. Group 8 project for CEG 4110 at Wright State University.
License: MIT License
For User Story #51, our options for testing Discord commands are to build our own mocks by hand, or use a third-party library such as https://github.com/craftspider/dpytest. The options should be evaluated and pros and cons laid out.
Completion criteria: Provide a list of pros and cons for each available option as a comment on #51 and select one to proceed with.
Due: Wednesday, April 7
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.
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 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:
Due: Tuesday, March 23
Implement User Story #2.
Completion Criteria: Pull request in which bot responds to each user join with a welcome message.
Due: Tuesday, April 13
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 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
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
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.
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 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.
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
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 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 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
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
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 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 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.
Investigate the options for automatic deployment -- webhooks vs. CI service.
Completion Criteria: Document a few pros and cons of each and select a choice.
Associated User Story: #3
Due: Sunday, February 28
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.
As a user of the discord server, I would like the ability to generate memes for entertainment and to joke with my friends.
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.
Contribute to the trivia communication protocol Task #34 together with @NateDawg96.
Completion Criteria: Pull request with implementation of trivia commands with the basic communication protocol, including one or more non-trivial commits by yourself.
Due date: Tuesday, April 6
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
Get the code hosted, set up the bot with Discord, and add it to our server. See user story #16.
Due Wednesday 2/17/2021.
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.
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 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
Implement the communication protocol described at #9 (comment).
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
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.
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.
As the professor, I would like to be able to get random xkcd comics in order to amuse myself.
As a code maintainer, I want documentation of all changes so that I understand the design of the code.
Ensure all code merged through Tuesday, April 13 is documented correctly as part of User Story #44.
Completion Criteria: Pull request documenting all code merged through Tuesday, April 13.
Due: Friday, April 16
Contribute to the trivia communication protocol Task #34 together with @jluckenbill.
Completion Criteria: Pull request with implementation of trivia commands with the basic communication protocol, including one or more non-trivial commits by yourself.
Due date: Tuesday, April 6
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.
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.
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.
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.
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 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 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
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
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 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
Provide instructions to the team on how to run the bot on a local machine and add it to a personal Discord server.
Due Wednesday, February 24.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.