Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
About
People
Publications
Teaching
Resources
Research Blog
Wiki Functions
Recent changes
Help
Licensing
Page
Discussion
Edit
View history
Editing
Software Engineering (Fall 2025)
(section)
From CommunityData
Jump to:
navigation
,
search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Project: Developing a Discord Bot as a Team === Your team will develop, analyze, and deploy a Discord bot in ways that indicate your understanding of key course concepts. This overall project has been broken up into multiple tasks, each building on the previous. ==== Bot Project Task #1 ==== ;Task: Set up your project environment ;Due: Friday, October 3, 11:59 pm Pacific Time ;Deliverables: You are done with task 1 if you have a GitHub project environment, a Discord test server for yourself, and a Discord deployment server set up for your group, with all group members and Dr. Champion able to access both the project environment and your group's deployment server. This is a <60 minute task; don't over-complicate it! ;Turn In: A screenshot of your individual Discord test server, a screenshot of your Discord group deployment server, and a screenshot of your GitHub project environment. '''Steps''' # Devise a team name. (in class) # Create a GitHub project environment (one per group) to match the name. Create a Kanban board to track your work; it's ok to just use the provided template. (in class) [Some screenshots of the process] # Create a Discord deployment server (one per group) (in class). [Some screenshots of the process] [https://support.discord.com/hc/en-us/articles/204849977-How-do-I-create-a-server and Discord has a how-to page as well.] # Create a Discord test server (one per student). # All group members and Dr. Champion need invites to and should join all group environments. # Ping Dr. Champion in Discord to tell her you're done. She does not want to install your bot, she only wants to be a member of your server! # Make sure Dr. Champion has the power to add user stories into your project Kanban board (you will need these for task 3 and beyond). ;Tips: * Feel free to add customizations / tweak the icons (it will help you tell your environments apart from your classmates') * Feel free to use AI tools as a tutor or source for debugging any issues that come up. ==== Bot Project Task #2 ==== ;Task: Version 1.0 of your bot ;Due: Friday, October 10, 11:59 p.m. Pacific time ;Deliverables: You are done with task 2 if you have cloned your group repository from our class organization, deployed a working Discord bot in your individual test environment, and deployed a working Discord bot in your team's deployment environment ('working' in this case means, able to play the simple 7-option rock-paper-scissors style game described in the tutorial). ;Turn In: Screenshots with a visible chat history which demonstrates that this is the case. '''Steps''' # Follow the tutorial at https://discord.com/developers/docs/quick-start/getting-started closely -- with one exception: '''ignore the git command in the tutorial''' and instead '''fork [https://github.com/CSS360-2025-Fall/discord-example-app our class organization version] of the Discord sample app''' described in the tutorial. This will mean we all start with the same code even if Discord makes updates, any changes you make will not go to Discord HQ, you are working with the repository associated with your group, and your work will be attributed correctly. # You will end up installing ngrok, npm, cloning the GitHub example, and establishing an identity with discord for your bot. ;Tips: * If you get stuck, walk through the tutorial line by line: it's detailed, and it works, but there are some subtleties. * I found it helpful to do this phase on a pair of large monitors so that I could have all my windows open side-by-side. * Be very careful with the API tokens and secrets: do NOT exchange them via public channels, do NOT commit them into GitHub, and do NOT paste them into AI tools or search engines! * Step 4 of the tutorial has you edit the sample project's code. If you get a 'didn't respond in time' error when testing your bot, perhaps it is because there's no response to the '/challenge' command in your project code? * Remember that your team only needs one deployment environment (screenshot that it works). * Feel free to use AI tools as a tutor or source for debugging any issues that come up. * You should consider your fork to be a 'hard fork' -- that is, I do not expect (or want...) you to create a pull request merging your group's code into the class's default code. You will be taking a very basic shell and heading in your own independent direction from the starting point I provide. * I am unlikely to be able to help you troubleshoot the particulars of your computer: my daily use machines all run Linux, and I only use Windows and MacOS for gaming and streaming shows. If you have limited familiarity with your operating system, don't have administrator access to your operating system, or have run into problems in CSS classes before in dealing with your computer, try using a Docker image from the CSS Remote Linux Lab: https://csswiki.uwb.edu/css-linux-lab-docker-image/ ==== Bot Project Task #3 ==== ;Task: Version 1.1 of your bot ;Due: Friday, October 17, 11:59 p.m. Pacific time ;Deliverables: You are done with task 3 if you have each completed at least one of the user stories supplied by Dr. Champion for your first sprint and successfully deployed the updated bot to your deployment environment for Dr. Champion to review. Tag the code so that it is clear which version is 1.1. ;Turn in: A screenshot of version 1.1 of your bot in action. '''Steps''' # In sprint planning, assign one of the user stories written by Dr. Champion to each member of the group. # During the sprint, resolve that user story. # Commit often! Test often! # Open a pull request to merge your code into the team's main branch. # Review your pull requests for conflicts. # Merge code and tag a release when done with the sprint scope # Deploy your version 1.1 into the production environment ;Tips: * The exact path your project takes will be different from other groups at this point. Be ready to sort through conflicts using your group chat or in standups! * Our architecture means someone will need to be running the bot locally for it to be graded, so expect your group to get a ping on Discord to coordinate this. * Feel free to use AI tools as a tutor, as a rapid prototyper, for code review, and as a source for debugging any issues that come up. ==== Bot Project Task #4 ==== ;Task: Analyze the architecture of your assigned bot ;Due: Friday, October 24, 11:59 p.m. Pacific time. ;Deliverables: You are done with Task 4 if your group has written an architectural guide and added it to your main repository on GitHub. All group members should have made at least one substantive commit to the guide to receive credit and include a diagram explaining how pieces connect to one another. ;Turn in: No need to turn in something for this; Dr. Champion should be able to grade your work right out of GitHub. '''Steps''' # Think about the levels or facets of system architecture involved in your project. # Identify a layer or aspect for each group member to cover. # Be concise and accurate in your description and clear in your diagrams. ;Tips: * Divide up the work so that everyone has a piece to contribute * Include both system architecture and code architecture * Consider different audiences: your future self, a curious customer for your bot, a future employer * Feel free to use AI tools as a tutor or source for debugging any issues that come up, however you are responsible for the accuracy of the content. ==== Bot Project Task #5 ==== ;Task: Identify bugs and technical debt in your assigned bot ;Due: Friday, October 31, 11:59 p.m. Pacific time ;Deliverables: You are done with Task 5 if you have conducted an analysis of limitations and weaknesses in your assigned bot by (1) publishing a report to the main repository and (2) creating user stories drawing from both the problems you've found and any new ideas for improving your bot that arise through this process. ; Turn in: No artifact turn-in required, Professor Champion will grade the state of your repository and project board. '''Steps''' # Divide up the different perspectives on code analysis into tasks for each group member, which might include...: ## Run XXXXXXXX on your code. ## Run XXXXXXX on your code. ## Examine your code for evidence of XXXXX from our reading XXXXX. # Describe your findings in a shared code analysis report in your repo. # Create user stories associated with your findings. ;Tips: * Think about how your bot has been used so far. Did anyone try anything that didn't work or wasn't supported? Maybe that's a bug or feature request? * Think like a bad actor: what happens if you try to break your bot? * Feel free to use AI tools as a tutor or source for debugging any issues that come up, however you are responsible for the content you turn in. ==== Bot Project Task #6 ==== ;Task: Release version 2.0 ;Due: November 21 (Friday), 11:59 p.m. Seattle time. ;Deliverables: You are done with Task 6 if you have each completed at least one user story from your second sprint and deployed version 2 to your production environment for Professor Champion to review. Tag the code so that it is clear which version is 2.0. ;Turn in: A screenshot of version 2.0 of your bot in action. '''Steps''' # In sprint planning, assign a user story to each member of the group. # During the sprint, resolve that user story. # Commit often! Test often! # Open a pull request to merge your code into the team's main branch. # Review your pull requests for conflicts. # Merge code and tag a release when done with the sprint scope. # Deploy your version 2.0 into the production environment. ;Tips: * As with v1.1, expect a ping on Discord for grading coordination. * Feel free to use AI tools as a tutor or source for debugging any issues that come up. ==== Bot Project Task #7 ==== ;Task: Release version 2.1 ;Due: Thursday, December 11, 11:59 p.m. Pacific Time (Note that this is AFTER the demo because you will be incorporating feedback from the demo.) ;Deliverables: You are done with Task 7 if you have each completed at least one user story from your third sprint and deployed version 2.1 to your production environment for Professor Champion to review. Tag the code so that it is clear which version is 2.1. ;Turn In: Screenshots of each new feature added for v2.1. (This is during Finals Week, so a live demo for grading is not possible) '''Steps''' # In sprint planning, think about how your demonstration went and reflect on what refinements you'd like to make # Assign a user story to each group member. # Complete at least one user story. # Commit, test, merge as usual. # Tag a release as 2.1 # Deploy version 2.1 and screenshot for turn-in purposes. ;Tips: * Your group might want to submit this early to boost your finals week flexibility. * Feel free to use AI tools as a tutor or source for debugging any issues that come up. ==== Demonstration of Bot 2.0 ==== You will demonstrate version 2 of your bot to the class in two ways: a live demo and a pre-made demo, as follows. ===== Pre-made Demos ===== Task: Record a pre-made demo of your bot (about 2 minutes). ;Due: Monday, November 24th, 11:59 p.m. ;Deliverables: Each group member will record their own screencapture video of the bot in action with a voiceover. ;Turn In: a video upload to canvas (one per student). ===== Live Demos ===== Task: Conduct a live demo of your bot ;Due: In class on Tuesday, November 25th. ;Deliverables: During your 5-minute slot, show off what your bot can do. ;Turn In: no artifact -- just be present and prepared. '''Steps''' # I'll determine an order for presentation; you'll determine how to present the work. # Slides are not necessary, but a view of your bot in action is. # To avoid awkwardness around switching laptops, my laptop will drive the projector. However, you will present from your own computer. To accomplish this, all presenting laptops will join a Zoom room and screenshare to present. ;Tips: * In case of live demo failure, be prepared to share 2 of your pre-made demos as a fallback so that you can get good feedback. ===== Bot Feedback ===== Task: give feedback to each group ;Due: Monday, December 1, 11:59 p.m. ;Deliverables: a short paragraph of highly specific feedback; grading will be according to my detailed rubric for giving feedback in brief ;Turn In: a text submission on Canvas ;Tips: * If you're not sure what to write based on the demo you saw, take a look at the group's repository and offer feedback based on the code and documentation you see. * The feedback should be your view and grounded in your observations: do not use AI tools for this assignment. ==== Reflection on Software Engineering and the Bot Project ==== See the [[User:Kaylea/Assessment | brief reflection rubric]] for details on my expectations in terms of the content of the reflection. A successful essay will do the following things: # Use content and concepts from the course. # Use evidence from your experience and the bot project. Mention commit IDs, line numbers, dates & times as appropriate. # Cite your sources; these sources must be real, they must provide support for the statements associated with the citation, and they must be viewable by me. Note that AI tools are notorious for fabricating these and use of AI tools for this assignment is forbidden. # Be 800-1200 words. Under 800 is unlikely to achieve the depth I am seeking here, and over 1200 words is unfair to others. # Do not use AI tools. If you are not sure what to write, think about what happened in the project and choose some of these prompts as jumping off points (do '''not''' treat the following as questions to answer in order!). What kind of work did you end up doing, and how well did you do? Was the project easy or hard, which parts, how, and why? How did the analysis go, and what did you learn? Walk through each topic we covered. How did course concepts apply (or fail to apply) to the situations you faced in developing your bot? Did anything surprise you or change your mind during the project? Did you experience any failures or problems? How did you solve them? Based on your experience, what is your advice for the students who take this course next? What did you learn about yourself and the ways you prefer to work? Do not write in a long single paragraph or send me a list of bullets; instead, write a standard essay with an introduction, key points, and conclusion. Choose and use a formatting standard and stick to it (APA, Chicago, ACM, etc.). Do not use AI tools. Do use examples and evidence. This should be an essay that only you could write, because it's about specific events in your experience of the course. ;Turn in: a well-formatted essay via Canvas
Summary:
Please note that all contributions to CommunityData are considered to be released under the Attribution-Share Alike 3.0 Unported (see
CommunityData:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Tools
What links here
Related changes
Special pages
Page information