feat: overhaul realistic demo seeding#217
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis pull request implements a comprehensive "Realistic Demo Seeding" system that transforms demo data initialization from simple scaffolding into production-like scenarios. It adds academic catalog seeding, realistic finance pipelines with transactions and account balances, comprehensive operations data (timetables, attendance, grades, reporting), engagement signaling, and hardened retry-aware data operations. The changes span documentation, configuration, core orchestration, 15+ new helper modules, seeder updates, and extensive test coverage. Changes
Sequence Diagram(s)sequenceDiagram
participant Seed as Seed Orchestrator
participant Catalog as Academic Catalog
participant Classes as Classes Seeder
participant Ops as Operations Seeder
participant Finance as Finance Seeder
participant Validate as Coverage Validator
Seed->>Catalog: seedAcademicCatalog(gradeNames)
Catalog->>Catalog: Load grades, subjects, coefficients
Catalog->>Catalog: Build/insert program templates & chapters
Catalog-->>Seed: schoolSubjects, schoolSubjectCoefficients
Seed->>Classes: seedClasses(gradeAwareAssignments)
Classes->>Classes: planSeededClassArtifacts(gradeNames)
Classes->>Classes: Bulk insert classes, classSubjects, enrollments
Classes-->>Seed: classes, classSubjects, enrollments
Seed->>Ops: seedOperations(contexts)
Ops->>Ops: Provision staff users & roles
Ops->>Ops: assignTimetableSlots(classSubjects)
Ops->>Ops: Generate class sessions & curriculum artifacts
Ops->>Ops: buildSeededAttendanceRows(scenarios)
Ops->>Ops: buildStudentAverages(grades)
Ops->>Ops: buildReportCards(averages, attendance)
Ops->>Ops: buildOperationalEngagementArtifacts(signals)
Ops->>Ops: Bulk insert with chunked retry
Ops-->>Seed: attendance, curricula, averages, reports, messages
Seed->>Finance: seedFinance(config)
Finance->>Finance: Ensure chart of accounts
Finance->>Finance: Resolve feeTypeTemplateIds(blueprints)
Finance->>Finance: allocatePaymentToCharges(scenarios)
Finance->>Finance: buildChargeTransactionLines() + buildPaymentTransactionLines()
Finance->>Finance: applyTransactionLinesToAccountMap()
Finance->>Finance: Chunked writes with adaptive retry
Finance-->>Seed: payments, transactions, account balances
Seed->>Validate: validateRealisticDemoCoverage()
Validate->>Validate: Count covered tables
Validate->>Validate: summarizeRealisticDemoCoverage()
Validate-->>Seed: {isValid, missingTables}
alt Coverage Complete
Seed-->>Seed: Seeding succeeded
else Coverage Gaps
Seed-->>Seed: Throw error, fail fast
end
Estimated code review effort🎯 5 (Critical) | ⏱️ ~90 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Test Plan
pnpm exec vitest run src/tests/demo-finance-helpers.test.ts src/tests/demo-metrics-helpers.test.ts src/tests/demo-profile-kpi-helpers.test.ts src/tests/demo-catalog-realism-helpers.test.ts src/tests/demo-academic-realism-helpers.test.ts src/tests/demo-operations-helpers.test.tspnpm typecheckDEMO-REALSummary by CodeRabbit
New Features
Documentation
Configuration
DemoSeedConfignow requires explicitgradeNamesdeclaration for demo profiles.Tests