Group Assignment: Collaborative Mad Libs Game using Git and GitHub
Objective: The goal of this group assignment is to familiarize students with collaborative software development using Git and GitHub. In this assignment, students will work together to play a Mad Libs game. Each student will contribute by adding words to the story from their own development branches. They will then use pull requests to integrate their changes into the main branch and manage potential merge conflicts entirely within GitHub's online interface.
Instructions:
Step 1: Setting Up the Project Repository
-
After you accept the assignment, you will need to join the group corresponding to your assigned group on Canvas.
-
Each student should clone their team's repository to their local development environment using the following command:
git clone <repository_url>
Step 2: Developing the Mad Libs Story
In their local repository, students should create a new branch for their contributions. The branch should be named according to a convention, for example, <username>-madlibs
.
The madlibs_list.txt
file provided below contains placeholders that need to be filled in without viewing the story template. Each student should fill in some of the placeholders in the madlibs_list.txt
file within his or her own development branch, and the placeholders should be divided evenly among group members.
madlibs_list.txt
File:
1. Friend's Name
2. Adjective
3. Adjective
4. Color
5. Month
6. Number
7. Noun (Plural)
8. Noun (Plural)
9. Noun
10. Room Name
11. Liquid
12. Adjective
13. Material
14. Activity
15. Adverb
16. Number
17. Unit of Time
18. Different Activity
19. Adjective
20. Vehicle
21. Your Name
Step 3: Completing the Mad Libs Story
-
Inside the repository, there should be a
story.txt
file that contains the Mad Libs story with placeholders for different parts of speech (nouns, verbs, adjectives, etc.). -
Each student will fill in the placeholders in the
story.txt
file with the words they chose from themadlibs_list.txt
file.
The Galactic Adventure Story:
Title: The Galactic Adventure
Dear [1],
I am writing to you from a [2] spaceship in a [3] galaxy. I found myself here one day after
going for a ride on a [4] rocket in [5]. There are [6] [7] and [8] of [9] here! In the
[10] there is a pool full of [11]. I fall asleep each night on a [12] bed of
[13] and dream of [14] [15]. It feels as though I have lived here for
[16] [17]. I hope one day you can visit, although the only way to get here now is
[18] on a [19] [20]!!
Best wishes,
[21]
Step 4: Collaborative Development and Pull Requests
-
After filling in his or her part of the story, each student should push their branch to their team's repository on GitHub:
git push origin <username>-madlibs
-
Once all students have pushed their changes, they should open pull requests (PRs) to merge their individual branches into the main branch of the team's repository.
-
All members of the team should participate in reviewing and merging pull requests. Specifically, each student should complete each of the following actions at least once: 1) create a PR, 2) comment on a PR, 3) review a PR, and 4) merge a PR.
Note: Steps for Managing Merge Conflicts
-
If conflicts arise during the PR merging process, they will be indicated in the GitHub interface.
-
Each student whose PR has conflicts should navigate to their PR on GitHub and click on the "Resolve conflicts" button.
-
GitHub will provide a side-by-side comparison of the conflicting files, allowing students to choose the correct changes for each conflict.
-
Students can edit the conflicting portions directly in the GitHub interface, choosing the desired changes from each conflicting branch.
-
Once conflicts are resolved, students can mark the conflicts as resolved within GitHub and add a comment explaining the changes made.
-
After resolving conflicts, students can request another review from a team member and, upon approval, proceed to merge the PR.
Step 5: Finalizing the Project
-
Once all PRs are merged, the Mad Libs story will be complete.
-
The final version of the Mad Libs story should be available in the main branch of the team's repository in the
story.txt
file as well as the complete list of words in themadlibs_list.txt
file.
Assessment:
Students will be assessed based on their ability to effectively use Git and GitHub for collaborative development, their understanding of branching, pull requests, conflict resolution, and the creativity of their contributions to the Mad Libs story. More specifically, the assignment is worth 10 points, and the following grading will apply:
- +2 points for the
story.txt
andmadlibs_list.txt
being complete. - +2 points for creating at least 1 PR.
- +2 points for reviewing at least 1 PR.
- +2 points for adding at least 1 comment to a PR.
- +2 points for merging at least 1 PR.
Submission:
There's no need for a separate submission as the progress will be tracked through the GitHub repository, pull requests, and merged branches.