D5.3b Adopt shared curriculum projection behind existing reader contracts
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
- Domain
- backend-api-design, testing, web-dev
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
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
- 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.
More from DataTalksClub/website
-
bug infra operations P1 testing
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
DataTalksClub/website#329 ·
-
bug content data-migration documentation events operations P1
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
DataTalksClub/website#327 ·
-
bug frontend P0 testing
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
DataTalksClub/website#300 · 7 comments ·
-
bug data-migration events P0 testing
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
DataTalksClub/website#295 · 6 comments ·
-
courses enhancement P1
Difficulty 5/5 Over a week Newbie friendliness 25/100
DataTalksClub/website#446 · 1 comment ·
All issues in DataTalksClub/website
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
letsencrypt/cp-cps#353 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
PedestrianDynamics/pyFDS-Evac#394 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
DOI-USGS/pywatershed#421 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
python-pillow/Pillow#10087 · 1 comment ·
Maintainers usually reply within 1 day