DataTalksClub / DataTalksClub/website

D4.1 Database-authored events in DTC

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

Nobody has claimed this yet.

Dominant language
Python
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Plan issue D4.1, phase 4 of the community-base unification plan.

Spec: docs/plan/phase-4.md, section D4.1, in DataTalksClub/community-base. Status is tracked in docs/plan/STATUS.md there, which stays the source of truth.

Depends on: C5.3. Do not start until every one of them is done in STATUS.md.

Process

This repository's AGENTS.md and _docs/PROCESS.md govern this work, with _docs/specs/ as the product authority. The plan says what to build and how to verify it; the site process says how work is done here.

Spec

Repository: DataTalksClub/website. Depends on: C5.3. Playbook P5 for events.

Read first

  • events/models.py, events/identity.py, events/importers.py, events/qna/,
    events/services.py, _docs/specs/05-events-registration-email.md "Event model",
    _docs/architecture/event-qna-integration.md, _docs/compatibility/.

Steps

  1. Export current events, Q&A sessions and historical aggregates (P5 step 1).
  2. Create event_qna app: models from events/qna/ with session.event as a OneToOneField
    to events.Event (integer pk now); views and Studio pages unchanged otherwise.
    historical_registrations app for the aggregate models keyed by event_id.
  3. Remove the events parser from the content sync; remove events/ app; install
    community_base.events with EVENT_URL_STYLE="public_id"; rebuild tables (P5 steps 2 to 4).
  4. Import command: old Event rows -> shared Event with public_id preserved, slug
    preserved, speakers -> Host(kind=speaker, external_ref=<people short>), lifecycle mapped to
    status; Q&A sessions and aggregates re-linked by public_id.
  5. Studio: DTC event pages come from the package; Q&A and historical totals register under the
    Events section.
  6. Public detail keeps speaker links through HOST_PROFILE_RESOLVER; description bridge from
    _docs/event-description-bridge.md becomes the description field content.

Verification

  • Row counts before and after import equal for events, Q&A sessions, aggregates.
  • uv run pytest events event_qna historical_registrations -q -> pass; compatibility route
    test passes; Playwright core events tests pass.

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

First confirm C5.3 is done in docs/plan/STATUS.md, then read AGENTS.md, _docs/PROCESS.md, docs/plan/phase-4.md, and the listed events files and specifications. Trace the existing Event, Q&A, importer, and service models before planning the event_qna and historical_registrations apps and import. Done means the migration preserves row counts and identifiers, the listed pytest and compatibility tests pass, and the core Playwright events tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, database
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.