seed: curriculum content
This commit is contained in:
63
1.solar-system/1.welcome/17.team-build/index.md
Normal file
63
1.solar-system/1.welcome/17.team-build/index.md
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
type: battle
|
||||
title: "Team Build"
|
||||
xp: 200
|
||||
duration: 90
|
||||
difficulty: 3
|
||||
---
|
||||
|
||||
# Team Build
|
||||
|
||||
> **[INCOMING — Mission Control, Earth]**
|
||||
>
|
||||
> Cadets, this is your final task before Python. You and a partner will
|
||||
> automate a mission setup together — one writing, the other
|
||||
> reviewing. Then swap.
|
||||
>
|
||||
> Pair up. Decide who goes first as **defender** and who goes first as
|
||||
> **attacker**.
|
||||
>
|
||||
> [END TRANSMISSION]
|
||||
|
||||
## The Task
|
||||
|
||||
The **defender** writes a single shell script — `launch.sh` — that,
|
||||
when run inside an empty workspace, does the following in order:
|
||||
|
||||
1. Creates a folder called `mission/` and enters it.
|
||||
2. Initializes a fresh Git repo on branch `main`.
|
||||
3. Sets `user.name` and `user.email` on the repo (use your own).
|
||||
4. Creates `manifest.txt` containing exactly:
|
||||
```
|
||||
Mission Apollo
|
||||
```
|
||||
5. Creates `crew.txt` containing exactly:
|
||||
```
|
||||
Cadet A, Cadet B
|
||||
```
|
||||
6. Creates `coords.txt` containing exactly:
|
||||
```
|
||||
lat: 0.0, lon: 0.0
|
||||
```
|
||||
7. Commits each file separately, in this exact order, with messages:
|
||||
- `add manifest`
|
||||
- `add crew`
|
||||
- `add coords`
|
||||
8. Prints `MISSION READY` to stdout when done.
|
||||
|
||||
## Battle Rules
|
||||
|
||||
- **Defender**: writes `launch.sh` from scratch in a clean workspace.
|
||||
Does not show the file until done. Time limit: 30 minutes.
|
||||
- **Attacker**: receives the script, runs it in a clean folder,
|
||||
inspects the resulting `mission/`, and submits a review through the
|
||||
platform's review form.
|
||||
- **Then swap**: roles flip. The new defender writes their own
|
||||
`launch.sh` (no copy-pasting). 30 more minutes.
|
||||
- Both pass the battle if both scripts pass review.
|
||||
|
||||
## Tools You'll Use
|
||||
|
||||
Everything you've learned this module:
|
||||
`mkdir`, `cd`, `echo`, `>`, `git init`, `git config`, `git add`,
|
||||
`git commit`, and a shebang to make the script run.
|
||||
Reference in New Issue
Block a user