DataTalksClub / DataTalksClub/website
Publish authoritative homework questions for every current non-legacy course
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Outcome
Every homework exposed by a current, non-legacy, live schema-v2 cohort must contain its real, source-authoritative questions rather than the generated placeholder “Describe one practical idea you took from this module.” The structured YAML in each course repository remains the publication authority; the website must not patch content in templates, Python, migrations, or fallback files.
Normative references:
zoomcamp-ops/docs/shared-curriculum-v2.mdzoomcamp-ops/docs/curriculum-contract.md_docs/design/specs/unit-content-pipeline.md_docs/runbooks/course-content-push-and-pull.md_docs/architecture/database-only-content.md
Boundary and authority decisions
- In scope are mapped homework manifests of the one
course.yaml.current_cohortwhosecohort.yamlsaysdelivery: liveandcurriculum: currentin schema-v2 repositories. Today that means AI Dev Tools 2026, Data Engineering 2027, Machine Learning 2026, and LLM 2026. - MLOps
self-pacedis intentionally excluded: its v2 contract requireshomework: []; this issue must not weaken that rule or invent scored self-paced assignments. - Stock Markets Analytics is schema v1 with no current/non-legacy homework-manifest graph, so CMP’s 2026 questions are not published by this issue. Migrating that course is a separate product/content decision.
- Authority precedence is: (1) sanitized current CMP public-content prompts/options/points for a matching current cohort/homework (currently AI homework 1–2 and LLM homework 1–5); (2) the matching current repository
homework.mdand current teaching material for gaps (AI homework 3–4, LLM homework 6–7, ML 2026, and DE 2027 drafts); (3) a named course owner. Older cohorts are corroboration only, never silently copied forward. - CMP answers are sensitive and were not queried or logged. Never inspect, export, infer, or commit them. A native choice question without an approved encrypted answer may remain a choice question only with
points: 0; do not degrade it into generic free text or pretend it is gradable.
Scope
- Build a checked inventory of every in-scope
{repository, cohort, module, homework.yaml, homework.md}, its current placeholder/real questions, and the authoritative source used for each replacement. - Replace placeholder-only question arrays with the actual current assignment questions, preserving the authoritative wording, order, question type, options, and points that can be supported safely.
- Give every structured question a stable unique
content_idand stable meaningfulid; preserve existing published homework identities/slugs/routes. - Add encrypted answer envelopes only through the approved authoring workflow and key id. If no approved envelope exists, set the question to unscored without inventing an answer.
- Commit and push reviewed source changes to each course repository’s
mainin focused per-repository commits, then run the normal website pull/import and verify the persisted/rendered result. Record source and website sync SHAs.
Non-goals
- Writing new substitute questions when no authority can be found.
- Reading or exporting CMP learner answers, correct-answer tables, submissions, or other protected data.
- Migrating schema-v1 Stock Markets Analytics, adding MLOps self-paced homework, or editing legacy/archive cohorts.
- Changing homework due dates, open/closed state, form telemetry fields, routes, grading policy, or lesson content.
- Adding a website-side content fallback or hardcoded question copy.
- Bundling the community-notes removal in #424 or lesson/video/navigation work in #425; each must remain an independently reversible change.
Dependencies and safety
- Requires read access only to the sanitized CMP public-content projection plus the public source repositories. Any answer encryption requires the existing approved key/authoring procedure; lack of it is not permission to access sensitive answers.
- Source repositories may have unrelated work in progress. In particular, AI Dev Tools and Data Engineering were dirty during grooming. Implement from a clean, pinned worktree or coordinate ownership; never stash, overwrite, or include unrelated changes.
- Run each source repository’s own
AGENTS.md/checks pluszoomcamp-opsvalidation before push. Pushing focused source commits tomainis authorized by the raw request, but only after review/checks.
Acceptance criteria
- The inventory accounts for every mapped homework in all four in-scope live current cohorts and explicitly records the MLOps and Stock Markets exclusions above.
- No in-scope
homework.yamlcontains the exact generic placeholder or a paraphrased filler replacement; every question has a cited current authority. - CMP-backed entries preserve sanitized prompt, option labels/order, type, and points unless a documented safety normalization is required. No protected answer value appears in a diff, log, issue, screenshot, or report.
- Repository-backed entries are traceable to the exact current
homework.md/teaching source path and commit; wording is not inferred from an older cohort. - Choice/check-box questions remain native structured choices with at least two stable option ids. Free-form questions declare the correct answer type. Stable question ids/content ids are unique and survive replay.
- A question with positive points has a valid approved encrypted answer envelope. Without one it is explicitly
points: 0; imports and UI do not claim it can be auto-scored. - Homework manifest, source-repository, parser/import, duplicate-id, answer-envelope, and mapping checks pass in each affected repository and the website.
- Each source repository change is a focused reviewed commit on
main; the report records repository SHA, authority paths, exclusions, and rollback commit. - Website sync/import pins those accepted SHAs, completes without unresolved homework/question mappings, and a replay is a no-op with unchanged question counts/identities.
- On a real current homework page per affected family, the rendered prompt/order/options/points match source YAML; submission controls and scored/unscored messaging match the manifest. No placeholder remains in the database or rendered current routes.
- Legacy/archive course pages and their stored submissions/questions are byte/row-count stable.
Verification scenarios
Source/repository
- Generate the inventory and provenance table without learner data.
- Run each repository’s curriculum checker and tests against the exact commit to push; run
zoomcamp-opscontract/fixture tests for every supported question shape. - Search current live manifest paths for the placeholder and assert zero matches; separately prove excluded archive paths were untouched.
- Import the pinned commits into an isolated website database twice and compare homework/question identities, counts, prompts, options, points, and answer-envelope metadata.
Browser
- Open at least one current homework for AI Dev Tools, Data Engineering, Machine Learning, and LLM, including one CMP-backed and one repository-backed gap.
- Verify questions/options/order and scored versus unscored treatment against YAML; submit a synthetic response through each supported control type.
- Check anonymous preview plus signed-in open/closed states at desktop and 390px mobile in both themes; no prompt/options overflow and keyboard focus/order remain correct.
- Open a representative legacy/archive page and confirm its content and route are unchanged.
Blocker rule
If an in-scope homework has no defensible current authority, stop on that homework, record the exact missing authority, and request a course-owner decision. Do not close the issue by inventing content.
Evidence to attach
- Inventory/provenance/exclusion table, without sensitive answers.
- Source SHAs and focused check results per repository.
- Website import/replay report and rendered desktop/mobile evidence.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the mapped current-cohort homework.yaml and homework.md files in the AI Dev Tools, Data Engineering, Machine Learning, and LLM repositories, then read the linked curriculum and content-pipeline contracts. Build the inventory and provenance table first, run each repository’s checks plus the website pull/import, and consider the work complete only when replay is a no-op, current rendered homework matches source, and legacy/excluded content is unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, yaml
- Domain
- backend, content, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100