DataTalksClub / DataTalksClub/relay
R6.2 History import
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 16m
- Merged PRs (30d)
- 5
Description
Plan issue R6.2, phase 6 of the community-base unification plan.
Spec: docs/plan/phase-6.md, section R6.2, in DataTalksClub/community-base. Status is tracked in docs/plan/STATUS.md there, which stays the source of truth.
Depends on: R6.1. 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. The plan says what to build and how to verify it; the repository process says how work is done here.
Spec
Repository: DataTalksClub/relay. Depends on: R6.1.
Read first
~/git/ai-shipping-labs/email_app/models/(EmailLog,SesEvent,EmailCampaign,
CampaignDelivery),email_app/services/email_log_history.py.
Steps
POST /api/import/messages(batch, idempotent onclient_reference) creating historical
transactional_messagesrows with original timestamps, status, template key, recipient;
POST /api/import/eventsfor bounce, complaint, open and click events;
POST /api/import/campaignsfor campaigns and their recipient rows.- Contact history must show imported rows in order with the rest.
- Management command
import_history --from-json <file>for operators.
Verification
- Import a 10,000-row synthetic fixture twice -> second run creates zero rows; contact history
for one address shows the imported messages.
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
First confirm R6.1 is marked done in docs/plan/STATUS.md, then read docs/plan/phase-6.md, AGENTS.md, and docs/PROCESS.md. Inspect the models in ~/git/ai-shipping-labs/email_app/models/ and email_app/services/email_log_history.py, then trace the import endpoints and management-command entry point. Done means both imports are idempotent, campaign and event data is present, and contact history shows imported messages after the 10,000-row fixture is run twice.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend, cli, databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100