feat: interactive autograded starter workspace (Module 06) - #1
Open
IshmaelRogers wants to merge 1 commit into
Open
IshmaelRogers wants to merge 1 commit into
IshmaelRogers wants to merge 1 commit into
Conversation
Restructure the LMS-duplicated module into a work-along starter workspace mirroring the approved Module 04 template: - One root toolchain: package.json (typescript, vitest, @types/node), strict tsconfig, vitest config, scripts/grade.mjs, Autograde CI workflow. - 9 self-contained labs + capstone, each with README brief, src/ starter (// TODOs), and tests/ that ARE the spec. No answer keys shipped. - Exercises test pure handler/logic (REST routing, service+repository, boundary validation, scrypt/HMAC auth, role+ownership authz, error envelope/pagination/idempotency/rate-limit, retry queue/DLQ, ops readiness) — no real server or network required. - Capstone integrates the module into one strict module with behaviour and type-level (expectTypeOf) tests. - Remove Lesson_*/guide/syllabus and flat lab/assignment markdown. Verified: stubs grade 20/89 (22%, RED); reference solution 89/89 (100%, type-check clean, GREEN).
Forge SWEXP — Module 06 autogradeScore: 20/89 tests (22%) · Strict type-check: ✅ clean
Keep going — open each exercise folder, implement the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Converts Module 06 — Backend Engineering & API Design from an LMS-duplicated content repo into an interactive, autograded work-along starter workspace, following the approved Module 04 template.
Each lab and the capstone is now a self-contained folder —
README.md(the brief),src/(starter code with// TODOs),tests/(the executable spec). The tests are the spec; no answer keys are shipped. Everything tests pure handler/logic (no real server or network): students implement the decisions a backend makes and call them directly.Toolchain (one root)
package.json(devDeps:typescript,vitest,@types/node), stricttsconfig.json,vitest.config.ts.scripts/grade.mjs— per-exercise score grouped bylabs/&assignments/folder + a stricttscgate (lab-06-specific strict gate from the template removed; uses the roottscgate only)..github/workflows/autograde.yml— runs the grader on push/PR, posts the score to the run summary and as a PR comment.Lesson_*.md,LEARNER_GUIDE.md,MODULE_SYLLABUS.md, and the flatlabs/*.md+ assignment brief markdown. Keptresources/,.devcontainer/, submission templates.Exercises created (10)
labs/lab-00-setup/health200, else 404)labs/lab-01-rest-apiLocation)labs/lab-02-service-layerOrderService+ repository interface; domain errors → status codeslabs/lab-03-validationunknown→ typed value or field issueslabs/lab-04-authlabs/lab-05-authzlabs/lab-06-api-platformlabs/lab-07-jobslabs/lab-08-opsassignments/capstoneVerification
20/89tests (22%), exit 1 — RED, type-check clean.89/89tests (100%), strict type-check clean, exit 0 — GREEN.Confirms the tests are satisfiable and correct, and the starter state fails as intended. Total: 89 tests across 10 exercises.