Final Project: Choose Your Own Adventure
For your final project, you will work with a partner to create an interactive "Choose Your Own Adventure" story using Markdown and demonstrate all the Git skills you've learned throughout this course.
Show/Hide Video
Project Overview
You will create an interactive story where readers make choices that lead to different outcomes. The story will be built using Markdown files that link to each other, creating a branching narrative experience.
Example Story: Space Battles - Episode IV: A New Spark
Project Repository: https://github.com/fvtc/choose-your-adventure
Note
Make sure to read the README file in the repository carefully - it explains how the choose-your-own-adventure format works and provides examples.
Instructions
Part 1: Find a Partner and Set Up
Find a partner: Use the Teams channel for this course to find a partner. Make sure to specify that you are looking for a partner for the Final Project.
Decide who will create the fork: One partner should fork the choose-your-adventure repository to their GitHub account.
Add your partner as a collaborator: The person who created the fork should add their partner as a collaborator:
- Go to your forked repository on GitHub
- Click "Settings" → "Manage access"
- Invite your partner by their GitHub username or email address
Both partners clone the repository: Both partners should clone the forked repository to their local machines.
Part 2: Plan Your Story
Before you start coding, plan your story together:
Choose a theme: Decide on a setting/theme for your story (adventure, mystery, sci-fi, fantasy, etc.)
Important
Keep your story appropriate for school - no inappropriate content or offensive material. Some action/adventure violence is acceptable (think Star Wars level).
Create a story outline: Plan out at least 12-15 different "scenes" or pages for your story. Your story should have:
- A clear beginning
- Multiple branching paths with meaningful choices
- At least 3 different endings
- Interesting consequences for different decisions
Divide the work: Decide who will work on which parts of the story, but make sure both partners contribute to the actual writing and Git operations.
Part 3: Development Workflow
Use proper Git workflow throughout your development:
Initial Setup
- Create a dev branch from main:
git checkout -b dev
- Plan your branching strategy: You'll create feature branches for different parts of your story.
Feature Development
For each major section of your story, use this workflow:
- Create feature branches from dev (not main):
git checkout dev
git checkout -b feature/opening-scene
Work on your story sections: Create and edit Markdown files for your story.
Use proper commit messages: Write clear, descriptive commit messages:
git commit -m "Add opening scene with character introduction"
git commit -m "Create forest path choice with two outcomes"
Merge using the cautious approach:
- First merge dev into your feature branch
- Test your story links
- Then merge feature branch into dev
Regularly push your changes and pull your partner's updates
Use stashing when needed if you need to switch contexts quickly
Collaboration Requirements
Important
Both partners must contribute meaningfully to the project. I expect to see commits from both team members throughout the development process. No "I helped my partner but they submitted it" - both partners must have visible Git contributions.
Part 4: Story Requirements
Your story must include:
- At least 12-15 different scenes/pages
- Multiple branching paths (not just linear)
- At least 3 different endings
- Proper Markdown formatting (headers, links, emphasis, etc.)
- Clear navigation between scenes
- A starting point
- Consistent file naming (lowercase, hyphens for spaces)
Example Story Structure:
start.md → choice-1.md → path-a.md → ending-1.md
→ choice-2.md → path-b.md → ending-2.md
→ path-c.md → ending-3.md
Part 5: Technical Requirements
Your project must demonstrate these Git skills:
- Branching: Use dev branch and feature branches
- Merging: Use cautious merge approach
- Collaboration: Both partners making commits
- Pull Requests: Create a PR to the original repository
- Proper Commits: Clear, descriptive commit messages
- Conflict Resolution: Handle any merge conflicts properly
- Remote Operations: Pushing, pulling, and syncing work
Part 6: Final Steps
- Merge dev into main when your story is complete:
git checkout main
git merge dev
- Push your final version:
git push origin main
Create a pull request to the original
fvtc/choose-your-adventurerepositoryTest your story thoroughly: Make sure all links work and lead to the correct scenes
Submission
Every team member should submit the following in Blackboard:
URL of your forked repository
URL of your pull request to the original repository
Git log output: Run
git log --oneline --graphand paste the outputTeam reflection: Answer these questions:
- Describe how you divided the work between partners
- What Git features did you find most helpful during collaboration?
- Did you encounter any merge conflicts? How did you resolve them?
- What was the most challenging part of the project?
- How did using branches help organize your work?
Assessment Criteria (40 Points Total)
Git Skills (20 Points)
- Branching & Merging (5 points): Proper use of dev and feature branches with cautious merging
- Collaboration (5 points): Both partners have meaningful commits throughout the project
- Commit Quality (4 points): Clear, descriptive commit messages
- Pull Request (3 points): Successfully created PR to original repository
- Repository Management (3 points): Clean repository structure, proper pushes/pulls
Story Content (15 Points)
- Completeness (6 points): At least 12-15 scenes with multiple paths and 3+ endings
- Quality (4 points): Engaging story with meaningful choices and consequences
- Appropriateness (3 points): School-appropriate content and themes
- Navigation (2 points): All links work correctly
Technical Implementation (5 Points)
- Markdown Formatting (2 points): Proper use of headers, links, emphasis
- File Organization (2 points): Consistent naming and logical structure
- Functionality (1 point): Story flows properly from start to endings
Bonus Opportunities (Up to 5 Extra Points)
- Creative Use of Markdown (2 points): Images, tables, or advanced formatting
- Complex Story Structure (2 points): More than 20 scenes or innovative branching
- Exceptional Collaboration (1 point): Evidence of sophisticated Git workflow
Note
This project is worth 40 points and represents the culmination of everything you've learned about Git and version control. Take your time, plan well, and demonstrate your skills!
Tips for Success
- Start early - don't wait until the last week
- Communicate regularly with your partner
- Test your story frequently as you build it
- Make small, frequent commits rather than large ones
- Use meaningful branch names like
feature/dragon-encounter - Pull your partner's changes regularly to avoid conflicts
- Ask for help if you get stuck with Git commands
Good luck, and have fun creating your adventure!