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

DTC: adopt repository-derived course hierarchy and homework units

Open
#436 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

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

Research direction

Start with community-base#306 and the existing #398/#399 work, then inspect _docs/compatibility/course-route-contracts.json and the current course, cohort, homework, and route entry points. Validate flat and nested fixtures, YAML-plus-Markdown homework re-imports, preserved identities and learner state, compatibility routes, and report package, AISL, and DTC test results separately.

Written by the indexing model from the issue text.

Description

enhancement

Goal

Adopt the generic course repository hierarchy and YAML-backed homework contract from community-base#306 in DataTalks.Club. The site's code should adapt its existing course/cohort records and policies to the shared graph, not re-parse or flatten curriculum structure locally.

Scope

  1. Register the community-base course parser/projection for DTC course sources. Where existing DTC sources express child sections inside manifest lists, convert them to the package's physical directory convention as part of source migration; module.yaml directories define modules and their parentage.
  2. Use homework.yaml plus companion homework.md for a structured homework unit where the course tree authors it. Keep stable unit/question IDs in YAML and instructions prose in Markdown. Keep cohort-specific assignment manifests and bindings separate; adapt those to package coursework bindings without confusing them with the course-tree unit manifest.
  3. Remove duplicate local module/submodule parsing and hierarchy projection once the package contract covers it. Re-scope open #398/#399 to retain only genuinely DTC-owned cohort placement/binding behavior; do not maintain a second generic directory parser or a second renderer for the same hierarchy.
  4. Keep DTC-owned course access, cohort flow, registration and URL compatibility through thin adapters. Resolve project-to-module references from source identity/path, not course slug or module title conditionals.
  5. Preserve existing Course/Module/Unit/Shared* identities and all homework, project, review, submission, answer, progress and certificate rows through the package cutover. Update existing rows in place by stable content identity and provide one-hop redirects for route changes. Keep _docs/compatibility/course-route-contracts.json passing.

Acceptance criteria

  • A flat course and a nested course fixture import according to the physical repository tree; one-unit modules remain modules and are not flattened by a site rule.
  • A YAML homework directory with its Markdown companion imports as one unit; stable IDs, cohort binding, submissions and learner state survive re-import without duplicate rows.
  • DTC-only cohort flow and homework binding semantics still work through a thin adapter; malformed hierarchy fails validation before a DB constraint error.
  • The generic parser/renderer and shared templates come from community-base. DTC templates contain no course-specific hierarchy flattening, title/slug/path exceptions, or duplicate recursive parser.
  • Existing public and compatibility route contracts pass; any changed canonical paths have one-hop redirects preserving valid cohort selection.
  • Package checks plus the affected DTC tests pass; run and report the package, AISL, and DTC results separately before closing.

Dependencies and related work

  • Depends on DataTalksClub/community-base#306.
  • Blocks DataTalksClub/website#414 (D5.1 shared course-model adoption) and #415 (D5.2 cutover).
  • Coordinate the existing submodule work in #398/#399 with this package contract before either duplicates generic parser/rendering logic.
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.