Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

D5.3b Adopt shared curriculum projection behind existing reader contracts

Open
#447 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python

Research direction

First read DTC AGENTS, _docs/PROCESS.md, _docs/specs/, docs/plan/STATUS.md, the course route contracts, and D5.3a's accepted policy matrix. Then inventory shared_course, curriculum_flow, and course_context callers and their existing tests, alongside D5.1 and D7.3 evidence. Done means existing route, API, access, navigation, Studio, empty/error, and presentation contracts remain intact, with independent QA and deployment evidence recorded.

Written by the indexing model from the issue text.

Description

courses enhancement P1

Plan issue D5.3b, phase 5 of the community-base unification plan; child milestone of DTC #436.

Authority: D5.3b in the reviewed docs/plan/phase-5.md sequencing correction tracked by community-base #348. Implementation waits for that plan change and this milestone’s prerequisites. docs/plan/STATUS.md remains the source of truth.

Process and boundaries

DTC AGENTS.md, _docs/PROCESS.md, _docs/specs/ and coding-standard govern implementation, verification, independent QA and PM acceptance. Use an isolated worktree; preserve other sessions' work. Package changes must be tagged before site dependency adoption. No live source conversion, database reset or production operation is authorized by this issue. No visible UI change or feature removal is allowed.

Spec

Repository: DataTalksClub/website. Depends on: D5.1, D7.3. Freeze required: no.

Goal: consume the package curriculum tree/projection behind existing DTC routes and templates,
with the site policy contract proved by D5.3a and package rows imported through D7.3.

Read first

  • DTC AGENTS, process, spec 04, course route contracts and D5.3a's accepted policy matrix.
  • D5.1 target-model evidence, D7.3 ingest/caller inventory, shared CourseTree/projection APIs.
  • Current shared_course, curriculum_flow and course_context callers and their existing tests.

Steps and acceptance criteria

  • Use CourseTree/shared projection for generic hierarchy and ordered traversal; remove the
    replaced site projection bodies after full caller inventory. Keep DTC URL/policy mapping.
  • Existing flat public HTML and API shapes, canonical/compatibility routes, query context,
    access and publication/retirement filtering, empty/error behavior and Studio remain equal.
  • Previous/next remains within published lessons of the current module where that is today's
    contract. Do not substitute the package's whole-course neighbor policy.
  • Flat, nested, mixed and one-unit module fixtures resolve to real supported destinations;
    preserve section/bonus metadata, project references and explicit homework bindings.
  • Repeated sync and moves preserve selected-mode data/link guarantees through actual site
    callers. Use D5.1 data evidence, adding the reader-specific checks rather than claiming a
    second independent full migration.
  • Independent QA verifies route/API semantics and desktop/mobile presentation on the selected
    development target with synthetic learners. Current visible UI is unchanged. If exposing
    new hierarchy cannot fit that contract, record the concrete product decision before edits.
  • Package/site evidence and deployment verdicts are recorded separately; no adoption claim
    rests only on generic package template tests or generated links that were never resolved.

Verification

  • Run the maintained DTC verification plan, including affected reader/API/route/Studio tests
    and desktop/mobile evidence; resolve generated destinations through real site views.
  • Check representative flat before/after HTML/API contracts, module-local neighbors and
    query counts. Prove nested/mixed and one-unit destinations with approved source fixtures.
  • Record independent QA/PM acceptance and green selected development deployment. Scratch-source
    evidence does not complete D7.4 or authorize a live-source switch.

Docs: DTC course/spec/route-policy documentation; STATUS here. No generic package templates or
route mounting replaces DTC presentation. No source conversion or parser duplication.

Browser and operations scenarios

Use the existing route inventory and the acceptance journeys above: a learner follows current module-local neighbors and retains cohort/access context; a learner opens valid nested/mixed and homework destinations through site-owned URLs; staff retain the existing Studio workflow. Cover existing empty/error/denial states and desktop/mobile presentation through independent QA. Do not invent new URL patterns or replace site templates with the package’s generic views. The versioned site verification plan owns exact routes, scenarios and screenshot evidence.

Sequencing references

  • Source/policy proof: D5.3a / #446.
  • Storage and single source-writer activation: D5.1 / #414.
  • Reader projection: D5.3b / #447.
  • Full preservation acceptance: D5.3 / #436.
  • Coordinated course cutover: D5.2 / #415.
  • Plan sequencing correction: community-base #348; its phase-5/phase-7 and generated STATUS update must merge before these revised dependencies govern implementation. No milestone is completed by this grooming.
  • Package conversion semantics: C7.12b / community-base #347. Package capability, donor compatibility and site adoption remain separate gates.
Dominant language
Python
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DataTalksClub/website

All issues in DataTalksClub/website

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.