# Facilitator Setup Guide This guide helps workshop facilitators set up the cloud-based multiplayer Git module using Azure DevOps. ## Overview The Number Challenge is a collaborative Git exercise where students work together on a shared repository hosted on **Azure DevOps**. **What participants will do:** - Clone a real repository from Azure DevOps - Collaborate to sort numbers 0-20 into the correct order - Experience push/pull workflow and merge conflicts - Learn to communicate and coordinate with teammates - Use SSH keys for secure authentication --- ## Prerequisites ### Azure DevOps Setup You need: - **Azure DevOps Organization** - Free tier is sufficient - Sign up at [dev.azure.com](https://dev.azure.com) - **Project created** within your organization - **Admin access** to create repositories and manage users ### Workshop Materials Participants need: - Git installed (version 2.23+) - VS Code (or any text editor) - SSH keys configured --- ## Pre-Workshop Setup ### Step 1: Add User Accounts Add workshop participants to your Azure DevOps organization. 1. Navigate to **Organization Settings** → **Users** 2. Click **Add users** 3. Enter participant email addresses (Microsoft accounts) 4. Select your workshop project 5. Select **Access level**: Stakeholder (free) or Basic 6. Click **Add** ### Step 2: Create the Repository Create the shared repository: **number-challenge** 1. Sign in to Azure DevOps at [dev.azure.com](https://dev.azure.com) 2. Navigate to your **Project** 3. Click **Repos** in the left navigation 4. Click the repo dropdown → **New repository** 5. Fill in details: - **Name:** `number-challenge` - **Add a README:** Checked 6. Click **Create** ### Step 3: Add the Starter File Create `numbers.txt` with numbers 0-20 in random order. **Option A: Via Azure DevOps web UI** 1. In your repository, click **+ New** → **File** 2. Name it `numbers.txt` 3. Add this content (numbers 0-20 shuffled): ``` 17 3 12 8 19 1 14 6 11 0 20 9 4 16 2 18 7 13 5 15 10 ``` 4. Click **Commit** **Option B: Via command line** ```powershell git clone git@ssh.dev.azure.com:v3/{organization}/{project}/number-challenge cd number-challenge # Create numbers.txt with shuffled numbers @" 17 3 12 8 19 1 14 6 11 0 20 9 4 16 2 18 7 13 5 15 10 "@ | Out-File -FilePath numbers.txt -Encoding UTF8 git add numbers.txt git commit -m "feat: add shuffled numbers for challenge" git push ``` ### Step 4: Verify Student Access Students added to the project automatically have access. Verify: 1. Go to **Project Settings** → **Repositories** → **number-challenge** 2. Click **Security** tab 3. Verify project team has **Contribute** permission --- ## During the Workshop ### Getting Started 1. Ensure all students have cloned the repository 2. Have everyone open `numbers.txt` to see the shuffled numbers 3. Explain the goal: sort numbers 0-20 into correct order ### The Exercise Flow 1. **Students pull** the latest changes 2. **One person** moves a number to its correct position 3. **They commit and push** 4. **Others pull** and see the change 5. **Repeat** until sorted ### Creating Conflicts (The Learning Moment) Conflicts happen naturally when multiple people edit at once. You can encourage this: - Have two students deliberately edit at the same time - Watch them experience the push rejection - Guide them through pulling and resolving the conflict ### Monitoring Progress Check progress in Azure DevOps: - **Repos → Commits**: See who's contributing - **Repos → Files → numbers.txt**: See current state ### Common Issues **"I can't push!"** - Did they pull first? Run `git pull` - Is SSH set up? Check with `ssh -T git@ssh.dev.azure.com` **"Merge conflict!"** - Walk them through removing conflict markers - Help them understand both sides of the conflict **"Numbers are duplicated/missing!"** - Someone resolved a conflict incorrectly - Have the team review and fix together --- ## Success When complete, `numbers.txt` should contain: ``` 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ``` Celebrate the team's success! --- ## Post-Workshop Cleanup To reuse the repository: 1. Reset `numbers.txt` to shuffled state 2. Or delete and recreate the repository --- ## Tips - **Keep groups small** (2 people per repository) for more interaction - **Encourage communication** - the exercise works best when people talk - **Let conflicts happen** - they're the best learning opportunity