Skip to content

Commit 6aee60e

Browse files
Johan SellströmJohan Sellström
authored andcommitted
Add student working solutions and QA template sync
1 parent 86296b7 commit 6aee60e

36 files changed

Lines changed: 2155 additions & 45 deletions

ATTENDEE_QUICKSTART.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ pnpm dev
8686
## If you get stuck
8787

8888
- Bring a facilitator your repo URL and the exact terminal error.
89+
- If you want to compare against the working state for the current lesson, use [WORKING_SOLUTIONS.md](WORKING_SOLUTIONS.md).
8990
- If GitHub shows `Repository Access Issue`, accept the pending repository invitation first.
9091
- If `pnpm dev` fails with `tsx: not found`, run `pnpm install -r --frozen-lockfile && pnpm env:setup` once, then retry.
9192
- If the lab asks for `curl` while `pnpm dev` is already running, open a second terminal instead of stopping the dev servers.

COURSE_CLASSROOM.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ ISSUER_BASE_URL=http://127.0.0.1:3101 VERIFIER_BASE_URL=http://127.0.0.1:3102 pn
4141
- Student template scaffold: `node scripts/scaffold-classroom-template.js --clean`
4242
- The autograder checks only the active `LAB_ID`.
4343
- Students do not need to finish one lab before you move them to the next.
44-
- Instructor-only working answers and the repo fast-forward helper live in `instructor-cheatsheets/README.md`.
44+
- Instructor-only annotated answers live in `instructor-cheatsheets/README.md`.
45+
- Student-facing fast-forward and peek instructions live in `WORKING_SOLUTIONS.md` and are intentionally included in the classroom template.
4546

4647
## iProov-Education rollout
4748

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Starter repo for the Beyond Compliance learning lab.
44

55
Most students only need GitHub Classroom, GitHub Codespaces, and the lab docs below.
66

7+
If you get blocked and want to compare against a known-good lesson state, use [WORKING_SOLUTIONS.md](WORKING_SOLUTIONS.md).
8+
79
## Start Here
810

911
1. Accept the GitHub Classroom invite shared by the instructors.
@@ -48,6 +50,7 @@ Local terminal fallback:
4850
Student docs:
4951

5052
- Quick start: [ATTENDEE_QUICKSTART.md](ATTENDEE_QUICKSTART.md)
53+
- Working implementations: [WORKING_SOLUTIONS.md](WORKING_SOLUTIONS.md)
5154
- Wallet build guide: [BUILD_THE_WALLET.md](BUILD_THE_WALLET.md)
5255
- Optional mobile wallet runbook: [STUDENT_WALLET_RUNBOOK.md](STUDENT_WALLET_RUNBOOK.md) for local terminal + Xcode/Android Studio
5356
- Deeper technical reference: [TECHNICAL_REFERENCE.md](TECHNICAL_REFERENCE.md)

STATUS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Status
22

3+
- [x] QA the student-facing Learning Lab instructions for conference use
4+
- [x] Verify whether students can see solution material in the student-facing repo/template
5+
- [x] Run the full unit and smoke-test sweep for the Learning Lab repo
6+
- [x] Tighten any unclear student-facing instructions found during QA
37
- [x] Diagnose the iOS wallet repeat-share failure after the first QR presentation succeeds
48
- [x] Fix the PIN-entry empty SF Symbol warning in the iOS wallet
59
- [x] Fix remote/proximity presentation cleanup so a second scan starts from a clean coordinator state

WORKING_SOLUTIONS.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Working Solutions
2+
3+
Use this when you are stuck, want to compare your work with a known-good lesson state, or want to jump straight to the working implementation for the current lab.
4+
5+
This workshop is not graded. Peeking is allowed.
6+
7+
This fast-forward guide covers Labs `00` through `05`. Optional Lab `06` does not have a one-command fast-forward path here.
8+
9+
## Fastest path
10+
11+
From your repo root, run the fast-forward helper for the lab you want:
12+
13+
```bash
14+
node scripts/fast-forward-student-lab.js --lab 00 --target .
15+
node scripts/fast-forward-student-lab.js --lab 01 --target .
16+
node scripts/fast-forward-student-lab.js --lab 02 --target .
17+
node scripts/fast-forward-student-lab.js --lab 03 --target .
18+
node scripts/fast-forward-student-lab.js --lab 04 --target .
19+
node scripts/fast-forward-student-lab.js --lab 05 --target .
20+
```
21+
22+
If you want to see what will change before writing files:
23+
24+
```bash
25+
node scripts/fast-forward-student-lab.js --lab 03 --target . --dry-run
26+
```
27+
28+
## After you fast-forward
29+
30+
Run the matching lab check:
31+
32+
```bash
33+
pnpm lab:check -- --lab 00 --start --verbose
34+
pnpm lab:check -- --lab 01 --start --verbose
35+
pnpm lab:check -- --lab 02 --start --verbose
36+
pnpm lab:check -- --lab 03 --start --verbose
37+
pnpm lab:check -- --lab 04 --start --verbose
38+
pnpm lab:check -- --lab 05 --start --verbose
39+
```
40+
41+
Equivalent form:
42+
43+
```bash
44+
LAB_ID=03 pnpm classroom:check
45+
```
46+
47+
## Important note
48+
49+
- Lab 00 restores the starter scaffold.
50+
- Labs 01-05 copy the working integrated files for that lesson edit surface.
51+
- Those integrated files may already contain later-lab behavior around the exact lesson logic, so always verify with the matching `pnpm lab:check` command or `LAB_ID`.
52+
53+
## Which files get replaced
54+
55+
- Lab 00: `issuer/src/index.ts`, `verifier/src/index.ts`
56+
- Lab 01: `issuer/src/index.ts`, `verifier/src/index.ts`
57+
- Lab 02: `issuer/src/index.ts`, `verifier/src/index.ts`, `bbs-lib/src/index.ts`
58+
- Lab 03: `issuer/src/index.ts`, `verifier/src/index.ts`
59+
- Lab 04: `issuer/src/index.ts`, `verifier/src/index.ts`
60+
- Lab 05: `issuer/src/index.ts`, `verifier/src/index.ts`
61+
62+
## When to use this
63+
64+
- You want to keep moving and understand the flow instead of debugging every step live.
65+
- You want a clean baseline before trying the lab again.
66+
- You want to compare your implementation with the working one side by side.

classroom-template/ATTENDEE_QUICKSTART.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ pnpm dev
8686
## If you get stuck
8787

8888
- Bring a facilitator your repo URL and the exact terminal error.
89+
- If you want to compare against the working state for the current lesson, use [WORKING_SOLUTIONS.md](WORKING_SOLUTIONS.md).
8990
- If GitHub shows `Repository Access Issue`, accept the pending repository invitation first.
9091
- If `pnpm dev` fails with `tsx: not found`, run `pnpm install -r --frozen-lockfile && pnpm env:setup` once, then retry.
9192
- If the lab asks for `curl` while `pnpm dev` is already running, open a second terminal instead of stopping the dev servers.

classroom-template/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Starter repo for the Beyond Compliance learning lab.
44

55
Most students only need GitHub Classroom, GitHub Codespaces, and the lab docs below.
66

7+
If you get blocked and want to compare against a known-good lesson state, use [WORKING_SOLUTIONS.md](WORKING_SOLUTIONS.md).
8+
79
## Start Here
810

911
1. Accept the GitHub Classroom invite shared by the instructors.
@@ -48,6 +50,7 @@ Local terminal fallback:
4850
Student docs:
4951

5052
- Quick start: [ATTENDEE_QUICKSTART.md](ATTENDEE_QUICKSTART.md)
53+
- Working implementations: [WORKING_SOLUTIONS.md](WORKING_SOLUTIONS.md)
5154
- Wallet build guide: [BUILD_THE_WALLET.md](BUILD_THE_WALLET.md)
5255
- Optional mobile wallet runbook: [STUDENT_WALLET_RUNBOOK.md](STUDENT_WALLET_RUNBOOK.md) for local terminal + Xcode/Android Studio
5356
- Deeper technical reference: [TECHNICAL_REFERENCE.md](TECHNICAL_REFERENCE.md)
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Working Solutions
2+
3+
Use this when you are stuck, want to compare your work with a known-good lesson state, or want to jump straight to the working implementation for the current lab.
4+
5+
This workshop is not graded. Peeking is allowed.
6+
7+
This fast-forward guide covers Labs `00` through `05`. Optional Lab `06` does not have a one-command fast-forward path here.
8+
9+
## Fastest path
10+
11+
From your repo root, run the fast-forward helper for the lab you want:
12+
13+
```bash
14+
node scripts/fast-forward-student-lab.js --lab 00 --target .
15+
node scripts/fast-forward-student-lab.js --lab 01 --target .
16+
node scripts/fast-forward-student-lab.js --lab 02 --target .
17+
node scripts/fast-forward-student-lab.js --lab 03 --target .
18+
node scripts/fast-forward-student-lab.js --lab 04 --target .
19+
node scripts/fast-forward-student-lab.js --lab 05 --target .
20+
```
21+
22+
If you want to see what will change before writing files:
23+
24+
```bash
25+
node scripts/fast-forward-student-lab.js --lab 03 --target . --dry-run
26+
```
27+
28+
## After you fast-forward
29+
30+
Run the matching lab check:
31+
32+
```bash
33+
pnpm lab:check -- --lab 00 --start --verbose
34+
pnpm lab:check -- --lab 01 --start --verbose
35+
pnpm lab:check -- --lab 02 --start --verbose
36+
pnpm lab:check -- --lab 03 --start --verbose
37+
pnpm lab:check -- --lab 04 --start --verbose
38+
pnpm lab:check -- --lab 05 --start --verbose
39+
```
40+
41+
Equivalent form:
42+
43+
```bash
44+
LAB_ID=03 pnpm classroom:check
45+
```
46+
47+
## Important note
48+
49+
- Lab 00 restores the starter scaffold.
50+
- Labs 01-05 copy the working integrated files for that lesson edit surface.
51+
- Those integrated files may already contain later-lab behavior around the exact lesson logic, so always verify with the matching `pnpm lab:check` command or `LAB_ID`.
52+
53+
## Which files get replaced
54+
55+
- Lab 00: `issuer/src/index.ts`, `verifier/src/index.ts`
56+
- Lab 01: `issuer/src/index.ts`, `verifier/src/index.ts`
57+
- Lab 02: `issuer/src/index.ts`, `verifier/src/index.ts`, `bbs-lib/src/index.ts`
58+
- Lab 03: `issuer/src/index.ts`, `verifier/src/index.ts`
59+
- Lab 04: `issuer/src/index.ts`, `verifier/src/index.ts`
60+
- Lab 05: `issuer/src/index.ts`, `verifier/src/index.ts`
61+
62+
## When to use this
63+
64+
- You want to keep moving and understand the flow instead of debugging every step live.
65+
- You want a clean baseline before trying the lab again.
66+
- You want to compare your implementation with the working one side by side.

classroom-template/labs/README-lab-00-start.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Lab ID: `00` · Timebox: 10 minutes
44

55
Goal: boot the starter repo, confirm the services are alive, and confirm the unfinished endpoints still return `501`.
66

7+
If you want to compare against the working implementation for this lab or jump ahead, use [WORKING_SOLUTIONS.md](../WORKING_SOLUTIONS.md).
8+
79
## What this lab is for
810

911
Do not build anything yet.

classroom-template/labs/README-lab-01-issuance.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Lab ID: `01` · Timebox: 20 minutes
44

55
Goal: make the issuer mint one SD-JWT credential, then make the verifier accept it.
66

7+
If you want to compare against the working implementation for this lab or jump ahead, use [WORKING_SOLUTIONS.md](../WORKING_SOLUTIONS.md).
8+
79
## Before you start
810

911
- Stay on `main`.

0 commit comments

Comments
 (0)