This is the team's execution plan for the quarter — every epic we're moving, tech and non-tech, as epics → stories you can act on. Each epic carries a maturity badge and a tracker; the stories under it are the open work.
Epics is the companion page: it's the GitHub tracker map, where each issue is the source of truth. This page is the execution plan — the machine-readiness prerequisites, the cash position, and the non-tech tracks (sales, fundraising, content) the tracker doesn't carry. Per-feature truth lives in the hogwarts docs — MVP and Roadmap; if anything here conflicts, those win.
Everyone: the warm-intro list
The fastest path to a pilot is someone we already know — a warm intro from a real relationship converts far better than any scraped or cold lead. So this one is on everyone, not just sales. The sales block now has a one-click Network filter — add/edit every school owner, principal, or manager you personally know.
Get your machine ready
Every block ships through the kun engine and one workflow — issue → branch → PR → merge. Full detail in Onboarding.
1. Install everything — one paste (macOS / Linux):
curl -fsSL https://kun.databayt.org/install | bashWindows (PowerShell or cmd.exe):
powershell -ExecutionPolicy Bypass -Command "iwr https://kun.databayt.org/install.ps1 | iex"2. Verify green:
bash ~/.claude/scripts/health.sh && claude doctor3. Start work:
c "/issue"Pick a task
Every item under Epics is a tiny piece of the quarter — each one is ~half-day to ~1-day of work, shippable as a single PR. Find one that interests you, comment "I'll take this" on the linked issue, then run c "/issue" to start. Nothing fits? Open one with /idea.
Tasks marked needs issue don't have a GitHub issue yet — open one with /issue before claiming. Tasks marked needs discussion are open team questions — start a thread under databayt/hogwarts Discussions, gather input, then summarize the decision back on the thread.
Epics at a glance
| # | Epic | Track | Bet | Maturity | Detail |
|---|---|---|---|---|---|
| 01 | Finance & billing | Tech | 1 | Built+Polish | hogwarts#313 |
| 02 | Admission | Tech | 1 | Built | hogwarts#314 |
| 03 | Exams & grading | Tech | — | Built+Polish | exams |
| 04 | Attendance | Tech | — | Built+Polish | attendance |
| 05 | LMS / Stream | Tech | — | Built+Polish | clickview |
| 06 | Communication / Messaging | Tech | — | Built+Polish | messages |
| 07 | Role-aware UI sweep | Tech | — | In Progress | — |
| 08 | Internationalization & translation | Tech | — | In Progress | translation |
| 09 | Mobile API Layer | Tech | 2 | In Progress | hogwarts#315 |
| 10 | iOS app | Tech | 2 | In Progress | swift-app#3 |
| 11 | Android app | Tech | 2 | Vaporware | kotlin-app (repo TBD) |
| 12 | Sales & Pilots | Non-tech | both | Built+Polish | hogwarts#316 |
| 13 | Fundraising | Non-tech | — | In Progress | fundraising |
| 14 | Content & Marketing | Non-tech | — | In Progress | — |
| 15 | Global Catalog | Tech | — | Vaporware | — |
| 16 | Letters & Proposals | Non-tech | both | In Progress | proposal · outreach |
| 17 | Community | Non-tech | — | In Progress | community |
Owner-by-epic mapping lives in Epics — that's the GitHub tracker map. This page is interest-first: pick by topic, not by name.
Epics
01 — Finance & billing · Tech · Built+Polish
The 14-sub-block finance system — fees, invoice, salary, payroll, ledger, the lot. Block-level ~79% ready (see the honest status matrix). Top blockers: 5 of 6 ledger posting functions are orphaned (only postFeePayment is wired), no finance Prisma model has a lang field, 11 sub-modules still need the ValidationHelper migration, and 11 sub-modules have zero tests. Every line below is a step toward making this block fully production-ready end-to-end.
Fees · 85%
The most feature-rich sub-block — structures, assignments, payments, fines, scholarships, sibling-discount calc, dictionary-driven notifications. What's left is hardening + the long tail of polish.
- Migrate
validation.tstoValidationHelper· needs issue - Fee defaulters list — #56
- Add
langfield toFinesoreasoncan usegetDisplayText()· needs issue - Translate fine-type enum badges (
LATE FEE,DAMAGE FINE,LIBRARY FINE,DISCIPLINE FINE) on AR viadictionary.finance.fees.fineTypes.*· needs issue - Translate fines overview card titles (currently hardcoded English in
content.tsx) · needs issue - Installment-plan UI flow — schema
FeePaymentPlanexists, no UI yet · needs issue - Scholarship auto-apply based on merit / need criteria · needs issue
- Fee-waiver workflow distinct from scholarship · needs issue
- Per-grade / per-class fee templates · needs issue
- Fee refund on withdrawal · needs issue
- Late-fee auto-calculation cron · needs issue
- Wire
postFeeAssignmentto the ledger (today: orphaned) · needs issue - Roll back fee-payment ledger post on failure — today it's fire-and-forget · needs issue
- Test: sibling-discount edge cases (3+ siblings, partial enrollment) · needs issue
- Test: scholarship coverage types (percentage / fixed / full) · needs issue
- Test: partial → full payment transition · needs issue
- Test: fine waive vs. delete rules · needs issue
- Fee forecast vs. actual report · needs issue
- Class-level collection-rate dashboards · needs issue
Invoice · 90%
131 tests passing, multi-tenant via getTenantContext(), RBAC wired. What's left is PDF + print, an email-template upgrade, and closing the ledger gap.
- PDF adapter:
mapInvoiceToGenerateData()mapping PrismaUserInvoice→InvoiceData· needs issue - PDF: "Download" + "Print" buttons on
view-content.tsx· needs issue - PDF: wire school logo (
UserInvoiceSettings.invoiceLogo) into header · needs issue - PDF: wire signature (
UserInvoiceSignature) into footer · needs issue - PDF: add download action to the DataTable action menu · needs issue
- Email: school name + logo in header, itemized table in body, signature in footer · needs issue
- Email: replace hardcoded
Invoice App <onboarding@resend.dev>with a school-specific verified sender · needs issue - Email: RTL + Rubik font for Arabic recipients · needs issue
- Email: migrate plain JSX to
@react-email/components· needs issue - CSV export — wire Export button in
all.tsxto existingexportInvoiceToCSV()· needs issue - Bulk invoice generation from
FeeAssignmentrecords for a class / year · needs issue - Wire
postInvoicePaymentto the ledger (today: zero callers) · needs issue - Migrate
InvoiceSchemaZodconsumers tocreateInvoiceSchema(dictionary)(6 files) · needs issue - Migrate
onboardingSchemaconsumers tocreateOnboardingSchema(dictionary)(2 files) · needs issue - Recurring-invoice scheduling (data model already in
util.ts.calculatePaymentSchedule) · needs issue - Partial-payment tracking —
amountPaidexists in PDF template, missing in Prisma model · needs issue - Invoice duplication (clone existing) · needs issue
- Invoice preview before email send · needs issue
- Public share-link generation · needs issue
- Localize page metadata —
generateMetadataneeds alocalearg (titles like "Fees & Penalties" still English) · needs issue - E2E tests for the full invoice workflow · needs issue
- Component tests for
form.tsxmulti-step flow · needs issue - Audit logging for invoice mutations · needs issue
- Rate limiting on
sendInvoiceEmail· needs issue
Reminders & dunning
Today: WhatsApp reminder hooks exist in src/lib/whatsapp/ but aren't scheduled; the invoice backlog has email-reminder automation flagged as still-todo. Production dunning needs all three channels (email, WhatsApp, in-app) with policy + schedule + locale-aware templates.
- Reminder-policy schema: days-before-due, days-after-due, escalation tiers (per school) · needs issue
- Reminder cron — daily sweep over overdue invoices + unpaid fee assignments, dispatch per policy · needs issue
- Email reminder templates (AR + EN) via
getDictionary(school.preferredLanguage)· needs issue - WhatsApp reminder dispatch through the Evolution-API bridge (cross-link Epic 06) · needs issue
- In-app reminder notification on overdue invoices · needs issue
- In-app notification on invoice creation (recipient-side) · needs issue
- In-app notification on payment received · needs issue
- Reminder log + delivery tracking (open / click via Resend webhooks) · needs issue
- Per-guardian quiet hours + opt-out switch · needs issue
- Snooze-reminder action on the invoice / fee-assignment detail page · needs issue
- Reminder analytics — open-rate, payment-after-reminder lift · needs issue
Salary · 75%
Structures, allowances, deductions, calculator. Creating a new structure deactivates the prior one — there is no history yet.
- Salary-revision approval workflow · needs issue
- Salary history — track structure changes per staff over time · needs issue
- Pay-scale management UI · needs issue
- Dedicated salary-structure form component (today: inline in
content.tsx) · needs issue langfield on salary-component names (allowance / deduction types) for AR display · needs issue- Test coverage for compensation-calculator edge cases (mid-cycle changes, prorations) · needs issue
Payroll · 65%
Run processing, payslip generation, approval → disbursement. Tax is hardcoded flat 15% at actions.ts:286; the progressive brackets in config.ts are unused. No payslip PDF yet.
- Replace flat 15% tax with the progressive brackets already in
config.ts· needs issue - Social-security rate calculation from
config.tsconstants · needs issue - Payslip PDF generation (mirror the invoice PDF pattern) · needs issue
- Build dedicated
table.tsx/columns.tsx/form.tsx— UI is all incontent.tsxtoday · needs issue - Wire
postSalaryPaymentto the ledger on disbursement (today: zero callers) · needs issue - W-2 / per-country compliance reports · needs issue
- Test coverage for the payroll-run lifecycle (draft → approved → disbursed → posted) · needs issue
- Bulk-payslip email dispatch on disbursement · needs issue
- Bank-transfer file export (per-country format — SWIFT, local clearing) · needs issue
Accounts & ledger · 75%
Chart of accounts + the double-entry engine. Only postFeePayment reaches the ledger today; the other 5 posting functions are tracked in their consuming sub-blocks above.
langfield onChartOfAccountso account names work withgetDisplayText()· needs issue- Journal-entry audit-trail UI · needs issue
- Trial-balance + balance-sheet generation from the ledger · needs issue
- Period close (lock prior period, block back-posting) · needs issue
- Manual journal-entry form for accountants (debit / credit with balance assertion) · needs issue
- Validation migration + test coverage (today: 10 tests, partial) · needs issue
Banking & reconciliation · 80%
- Bank-statement import (CSV / OFX / camt.053) · needs issue
- Auto-match imported transactions to ledger entries · needs issue
- Reconciliation report (matched / unmatched / disputed) · needs issue
- Multi-bank-account support per school · needs issue
- Migrate banking validation strings to the dictionary · needs issue
Wallet · 75%
- Wire
postWalletTopupto the ledger (today: orphaned) · needs issue - Wallet-to-wallet transfer (parent → child) · needs issue
- Wallet auto-top-up rules · needs issue
- Transaction-history export per wallet · needs issue
- Validation migration + test coverage (today: zero tests) · needs issue
Expenses · 80%
- Wire
postExpensePaymentto the ledger (today: orphaned) · needs issue langfield onExpenseCategoryso names usegetDisplayText()· needs issue- Multi-level approval workflow · needs issue
- Receipt-upload + OCR amount-capture · needs issue
- Validation migration + test coverage · needs issue
Budget · 85%
- Variance report (budget vs. actual, with per-category drill-down) · needs issue
- Multi-year budget rollover · needs issue
- Department-level budgets · needs issue
- Test coverage (today: zero tests) · needs issue
Receipt · 85%
- Receipt-template editor (per-school branded receipts) · needs issue
- Email + WhatsApp delivery on payment · needs issue
- Bulk re-print of historical receipts · needs issue
- Test coverage (today: zero tests) · needs issue
Reports · 75%
- Replace dashboard mock trends with real ledger reads · needs issue
- Revenue report — collected vs. due, per period, per fee category · needs issue
- Outstanding-fees report with aging buckets (0–30 / 31–60 / 61–90 / 90+) · needs issue
- Collection-rate report per class / grade / homeroom · needs issue
- Payment-method breakdown (cash / Stripe / wallet / bank transfer) · needs issue
- Cash-flow forecast based on
FeeAssignmentdue dates · needs issue - PDF + CSV export on every report · needs issue
- Validation migration · needs issue
Timesheet · 75%
- Approval workflow — staff submit → manager approve → payroll consumes · needs issue
- Geofencing on clock-in (per-school location boundary) · needs issue
- Mobile clock-in via iOS / Android (cross-link Epic 09) · needs issue
- Validation migration · needs issue
- Test coverage · needs issue
Permissions · 75%
- Audit log of permission changes per
FinancePermissionrow · needs issue - Bulk-assign permissions by role template · needs issue
- Validation migration · needs issue
- Test coverage · needs issue
Dashboard · 80%
- Replace mock trends with real ledger reads · needs issue
- Per-role default landing widgets · needs issue
- Configurable widget set per school · needs issue
- Test coverage · needs issue
Cross-cutting hardening
- Add
langfield across every finance Prisma model (Fine,Scholarship,ExpenseCategory,ChartOfAccount,FeeStructure) — unblocksgetDisplayText()everywhere · needs issue - Migrate
validation.tstoValidationHelperacross the 11 remaining sub-modules · needs issue - E2E happy path: fee → invoice → pay → receipt → ledger entry · needs issue
- E2E happy path: salary → timesheet → payroll-run → payslip → disbursement → ledger entry · needs issue
- Per-school currency on
Schoolmodel + propagate to invoices, salary, payroll — #305 - Currency selector in school settings (paired with the per-school currency task) · needs issue
- Field-level encryption for sensitive financial data · needs issue
Payment gateways
- Payment-umbrella P0 — make the gateway abstraction real so Stripe + a second provider share one interface — #263
- Auto-provision default fee structures on school create — #264
- Fee-structure preview screen at onboarding — #269
- Playwright the fee-lifecycle happy path (create → invoice → pay → receipt) — #273
- Apple Pay on the mobile gateway (cross-link Epic 09) · needs issue
- Local MENA gateway integrations (HyperPay, Tap, Moyasar) · needs issue
- Webhook idempotency hardening across all providers · needs issue
02 — Admission · Tech · Built
Kill the onboarding friction the pilot reported first-hand — make a few users love you.
- Walk #298–307 and fix each pilot-reported friction one PR at a time
- Resolve the
#254blocker — #254 - Compute the merit score from the application form · needs issue
- Section-placement UI on enrollment using the merit score · needs issue
- Re-test the full admission flow on staging after the friction fixes land
03 — Exams & grading · Tech · Built+Polish
Production audit: 14 P0 / 22 P1 / 18 P2.
- Fix the
User.id-as-Student.idsubmission bug · needs issue - Replace the in-memory rate limiter (breaks on serverless) with Upstash / KV · needs issue
- Add
langto the 17 models missing it · needs issue - RBAC test coverage on the grade-entry endpoints · needs issue
- Unit tests for the grade calculator edge cases · needs issue
04 — Attendance · Tech · Built+Polish
The section-centric migration is deployed and DB-migrated; it needs end-to-end testing.
- Playwright MCP run on the section-centric attendance grid · needs issue
- Playwright MCP run on the section-centric timetable surface · needs issue
- Polish any rough edges the QA pass surfaces · needs issue per finding
05 — LMS / Stream · Tech · Built+Polish
The school-scoped LMS is shipped — courses, chapters, lessons, enrollment, completion certificates, per-school storage quota. The remaining work is the asset wave.
- Finish the ClickView CDN asset-download wave (the rest currently fall back to the ClickView CDN) · needs issue
- Verify per-school storage quota enforcement (
videoStorageUsedBytes/videoStorageQuotaBytes) · needs issue - Storage quota indicator in the school admin surface · needs issue
06 — Communication / Messaging · Tech · Built+Polish
Announcements, real-time messages (Socket.io), notifications (in-app + email + push), and the WhatsApp Evolution bridge are all shipped. What's left is hardening + handover.
- WhatsApp Evolution-API retry + exponential backoff · needs issue
- Scheduled-notification cron delivery test (in-app + email + push) · needs issue
- Demo the announcement + messaging surfaces to the pilot and capture feedback · needs issue
- One-page user guide for school admins on broadcasts vs. direct messages · needs issue
07 — Role-aware UI sweep · Tech · In Progress
Sidebar / PageNav / Toolbar / row-action gating across the school dashboard.
- Gate the finance surfaces against
permissions.ts· needs issue - Gate the school-settings surfaces against
permissions.ts· needs issue - Gate the sales surfaces against
permissions.ts· needs issue - Role-matrix test: log in as each role, screenshot what's visible · needs issue
08 — Internationalization & translation · Tech · In Progress
Infrastructure is shipped — two-tier system (ar.json / en.json dictionaries for static UI, getDisplayText() + Google Translate + DB cache for dynamic content). The work left is closing adoption gaps and hardening the contributor workflow.
Infra hardening
- Audit locale routing for edge cases (middleware redirects, RSC streaming, dynamic segments) · needs issue
- Document the dictionary contract (
ar.json/en.json) so contributors can add strings safely · needs issue - Translator workflow doc: how a non-developer proposes string changes (issue → PR with
ar.jsonpatch) · needs issue - Tooling: a script that flags missing AR keys when EN is touched (and vice versa) · needs issue
- RTL framework polish — pages with mixed LTR content (numbers, code, English brand names) inside Arabic flow · needs issue
- Plan a 3rd-language readiness pass (e.g., French for Maghreb / Urdu for South Asia) — no commitment, just a gap-list · needs discussion
String sweep
- Sweep the finance pages for hardcoded English · needs issue
- Sweep the admission pages for hardcoded English · needs issue
- Sweep the LMS pages for hardcoded English · needs issue
- Sweep the messaging pages for hardcoded English · needs issue
- RTL visual pass on each swept page (Arabic side-by-side with English)
- Add Arabic equivalents for any T1–T19 outreach templates still English-only · cross-link to Epic 16 · needs issue
09 — Mobile API Layer · Tech · In Progress
The backend API layer the iOS + Android apps consume. Shares the finance domain (payments + invoices) with Bet 1.
- Account-export endpoint (store-gate) — #315
- Account-delete endpoint (store-gate) · needs issue
- Apple Pay + Stripe payment endpoint (store-gate) · needs issue
- Invoice list + detail endpoints (store-gate) · needs issue
- Consent capture endpoint (store-gate) · needs issue
- Grade-entry + report-card endpoints · needs issue
- Attendance + online-exam + schedule endpoints · needs issue
- Guardian write-action endpoints · needs issue
- Universal-search endpoint · needs issue
10 — iOS app · Tech · In Progress
Ship the Hogwarts app to the public App Store.
- App shell + bottom navigation skeleton · needs issue
- Auth screen consuming the API layer · needs issue
- Dashboard screen consuming the API layer · needs issue
- Attendance screen consuming the API layer · needs issue
- Fees screen consuming the API layer · needs issue
- Privacy + account export/delete + consent screens for store review · needs issue
- App Store submission package + first review reply · needs issue
11 — Android app · Tech · Vaporware
⚠️ The Android repo
databayt/kotlin-appdoes not exist yet — create and push it first.
- Create
databayt/kotlin-appwith the standard databayt repo template · needs issue - Kotlin app shell + navigation · needs issue
- Auth + dashboard screens (Kotlin) on the API layer · needs issue
- Attendance + fees screens (Kotlin) on the API layer · needs issue
- Play Store compliance screens (privacy, export/delete, consent) · needs issue
- Play Store submission package + first review reply · needs issue
12 — Sales & Pilots · Non-tech · Built+Polish
Sales · Pilot · Epic hogwarts#316
Two free MENA-10 pilots actively using finance + mobile, with a documented PMF signal that feeds the Q4 cash decision. The team's own network is the top of the funnel — start with Everyone: the warm-intro list above.
- Send the King Fahad re-engagement message and book a call · needs issue
- Run the King Fahad JTBD interview and write up the notes · needs issue
- Build a 3–5 school pipeline of warm-intro candidates from the Network filter · needs issue
- First-touch WhatsApp message to each Tier-A candidate (Outreach T20 template)
- Discovery call with one new school + onboarding kickoff
- Wire usage tracking on both pilots (login frequency, feature touches) · needs issue
- PMF write-up + case-study draft → Q4 cash brief · needs issue
- Hold the weekly cadence — warm prospects, outreach, discovery calls (see Sales)
13 — Fundraising · Non-tech · In Progress
Non-dilutive first — vendor credits and grants before any equity. We're in Phase 2 (MENA-10 conversion): zero-equity accelerators plus a SAFE-cap only after the non-dilutive routes. See Cash and runway below.
- Claim Microsoft for Startups credits · needs issue
- Claim Google for Startups credits · needs issue
- Claim AWS Activate credits · needs issue
- Claim Anthropic startup credits · needs issue
- Claim OpenAI startup credits · needs issue
- Claim GitHub for Startups credits · needs issue
- Claim Vercel for Startups credits · needs issue
- Draft + submit the NTDP grant application · needs issue
- Draft + submit the Mastercard Foundation EdTech grant · needs issue
- Draft + submit the UNESCO Sudan TEP grant · needs issue
- Apply to Sanabil 500 (zero-equity track) · needs issue
- Apply to Misk500 · needs issue
- Apply to Orange Corners · needs issue
- Apply to MSAR incubator · needs issue
14 — Content & Marketing · Non-tech · In Progress
The creative that unblocks every sales conversation downstream. The pipeline runs brainstorm → decide → produce → publish — pick from whichever stage matches your interest. Brand-curious folks start at the top, video editors and designers land in the middle, distribution-minded folks finish it.
Brainstorm & references
Gather inspiration first. Output of each task is a short doc / Notion / GitHub Discussion that the production tasks downstream can lean on.
- Demo-video moodboard: 5 inspiration links (Linear, Notion, Vercel, plus 2 EdTech — ClassDojo, Brightwheel) with a one-line note on what each does well · needs discussion
- Screenshot-pack moodboard: how Linear, Vercel, and Notion frame product shots (light/dark, device chrome vs. raw, gradients vs. flat) · needs discussion
- Tagline brainstorm: 10 English + 10 Arabic candidates with rationale; thread becomes the shortlist for the "lock the tagline" tasks below · needs discussion
- Brand-voice doc: "How does Hogwarts sound?" — concise, builder-y, Arabic-first warm; 6–8 dos / don'ts with sample lines · needs discussion
- Case-study layout references: pull Stripe customer stories, Plaid, Ramp — note structure (hero metric → quote → before/after → call to action) · needs discussion
Decide the toolkit
Each item below is a Discussion thread. Whoever claims it lists 3+ candidates with cost, Arabic support, and a single recommendation; the thread closes with the team's call.
- AI video toolkit selection: evaluate Runway, Pika, Sora, Veo, Synthesia, HeyGen — Arabic-voiceover support is a hard constraint · needs discussion
- Build vs. buy: Envato Elements / Motion Array / Storyblocks template subscription vs. starting in Adobe Premiere from scratch — compare cost, time-to-first-cut, and how much each locks our look · needs discussion
- Outsource path: brief two MENA freelance editors on Upwork / Khamsat with the moodboard, collect quotes + sample reels, compare against the in-house path · needs discussion
- AI image stack for hero art + social cards: Midjourney vs. Ideogram vs. Recraft vs. Flux — pick one for the quarter · needs discussion
- B-roll & motion source: Pexels vs. Coverr vs. Envato Elements (free vs. paid trade-offs) · needs discussion
- Voiceover: ElevenLabs Arabic vs. native VO talent on Khamsat — sample both, compare on dialect + warmth · needs discussion
Produce
Once decisions land above, this is the actual making. Production tasks reference the toolkit thread so the picker inherits the decision.
- Publish the King Fahad case study with real numbers and real screenshots · needs issue
- 2-minute demo video script (English) · blocked until the video-toolkit + brand-voice threads land · needs issue
- Arabic adaptation of the demo script (not a literal translation — adapt for warmth) · needs issue
- Record the voiceover (English + Arabic) using the chosen VO path · needs issue
- Edit + publish the demo video using the chosen toolkit / template / editor · needs issue
- Screenshot pack — light theme, English · needs issue
- Screenshot pack — light theme, Arabic · needs issue
- Screenshot pack — dark theme, English + Arabic · needs issue
- Hero illustrations + social cards using the chosen AI image stack · needs issue
- Lock the English tagline from the brainstorm shortlist (3 finalists → pick one) · needs issue
- Lock the Arabic tagline from the brainstorm shortlist (3 finalists → pick one) · needs issue
Publish & distribute
The artifacts only matter once they're in front of someone. These are the last-mile tasks.
- Publish the case study on the marketing site (English + Arabic) · needs issue
- Cut a 30-second social version of the demo (vertical for Instagram / TikTok / Reels) · needs issue
- Update the hogwarts + kun READMEs with the new screenshots and tagline · needs issue
- Schedule the Arabic + English social rollout (X, LinkedIn, WhatsApp Status) · needs issue
- Drop the demo + screenshots into the sales deck and re-export · needs issue
15 — Global Catalog · Tech · Vaporware
A platform-wide content catalog — curriculums, subjects, chapters, lessons, videos, textbooks, mock exams, qbanks — that any school can bridge into its own data. Today every school re-creates content from zero; the catalog flips that. Strong upstream of Epic 17 (Community), which exposes the catalog free to the public.
Schema & data model
- Design the global catalog Prisma schema:
Curriculum,Subject,Chapter,Lesson,Resource(video / textbook / mock-exam / qbank),platform-scoped vs. school-scoped boundary · needs discussion - Bridging model: how a school links one of its
Sections to aCurriculumand inherits the tree · needs issue - Migration plan: take the King Fahad pilot's existing per-school content and re-attach to the platform catalog where it overlaps · needs issue
Content seed
- Seed the Sudan national curriculum (subjects + chapters tree) · needs issue
- Seed the Saudi (Tatweer) curriculum spine · needs issue
- Seed the IGCSE / IB skeleton for international schools · needs issue
- Source the first mock-exam pack (Arabic — math, Arabic, science — grades 6–9) · needs issue
UI to consume the catalog
- Catalog browse + bridge UI in the school admin (
/admin/catalog/bridge) · needs issue - Lesson detail view consuming
Resourceitems (video / pdf / qbank) · needs issue - "Add to my class" flow for teachers — pick a catalog lesson, attach to a section's timetable · needs issue
Ops
- Storage strategy for catalog video/PDF — reuse the CDN from Epic 05 (LMS) · needs issue
/docs/catalogpage on hogwarts: what it is, schema, bridging guide · needs issue
16 — Letters & Proposals · Non-tech · In Progress
The templates library is mature. This epic is the specific drafts going out this quarter — each task names the target and the template it inherits from, so the work is fill-in-the-blanks, not write-from-scratch.
Schools (pilot conversion)
- Draft the King Fahad paid-conversion proposal using the "paid-conversion" template · needs issue
- Draft a free-pilot proposal (Arabic) for the next Tier-A warm-intro school · needs issue
- Draft a multi-school bundle proposal for the Sudan diaspora school network · needs issue
Investors (Phase 2)
- Investor letter for the Sanabil 500 application using T7 · needs issue
- Investor letter for Misk500 using T7 · needs issue
- Cold-investor letter (3 MENA-aware angels, T6 variant) · needs issue
Grants (non-dilutive)
Sibling to Epic 13 — there we apply; here we draft the narrative.
- NTDP grant narrative draft (impact + budget + timeline) · needs issue
- Mastercard Foundation EdTech narrative draft · needs issue
- UNESCO Sudan TEP narrative draft · needs issue
Sponsors & ecosystem
- Sponsor letter for one MENA EdTech NGO using T11 · needs issue
- Press / advisor outreach using T15 to one MENA EdTech journalist · needs issue
Library maintenance
- Arabic versions of any T1–T19 still English-only · cross-link to Epic 08 · needs issue
17 — Community · Non-tech · In Progress
Offer the Catalog content (textbooks, mock exams, qbanks) free at /en/community. Free users come for the content, talk about it, and the school version converts. Most tasks block on Epic 15 (Catalog) — schema + seed must land before public consumption.
Free-content surface
- Public community browse UI (no auth) consuming the platform-scoped catalog · blocked on Epic 15 schema · needs issue
- Free textbook reader (PDF + bookmarks) · needs issue
- Free mock-exam runner (timed, no auth, share-result page) · needs issue
- Free qbank practice mode (topic filter, immediate feedback) · needs issue
Conversion funnel
- "Use this in your school" CTA on every public lesson/exam → routes to the pilot intake form · needs issue
- Track community-→-school conversions in analytics (which free user converted which school) · needs issue
- Onboarding email for free users who sign up (lightweight account, optional) · needs issue
Marketing & word of mouth
- Shareable result cards for mock exams ("I scored 87% on the Grade 9 Math mock") — Arabic + English · needs issue
- Brief one teacher influencer in Sudan + one in KSA on the free offering for a launch post · needs discussion
/docs/communitydoc on hogwarts: what's free, who's behind it, and the school product · needs issue
Open-source contributor lane
- Publish
CONTRIBUTING.mdacross hogwarts + kun (good-first-issue labels, dev-setup link) · needs issue - Stand up a Discord or Slack as the chat home — pick one, link from
/en/community· needs discussion - Monthly contributor spotlight on the marketing site · needs issue
Cash and runway
We do not monetize this quarter — that is a Q4 decision. The plan is to prove product-market fit on two free pilots first, then choose how to fund the next leg.
We're in Phase 2 (MENA-10 conversion) and raise non-dilutive first — vendor credits and grants before any equity instrument. A small SAFE-cap from MENA-aware investors comes only after the non-dilutive routes are exhausted; a priced seed waits for 10 paying schools and meaningful MRR.
Once PMF is proven, Q4 opens the cash decision — light monetization, a pre-seed bridge, a sponsored build, or cutting burn. The full instrument ladder, use-of-funds, and posture live in Get support.
Not built yet
| Module | Status | Notes |
|---|---|---|
| Health | Schema Only | HealthRecord on the student profile, no clinic UI |
| Hostel | Vaporware | Dictionary mentions only |
| Cafeteria | Vaporware | Dictionary mentions only |
Native iOS / Android is Vaporware in the hogwarts roadmap (deferred to 2027+); we promote it to a Q3 bet as epics 09–11 above. The divergence is deliberate. The Global Catalog is also Vaporware today but now an active epic — see Epic 15 above.
See also
- hogwarts MVP — shipped state across 14 epics with maturity badges
- hogwarts Roadmap — quarter outlook + active initiatives
- hogwarts PRD — requirements, role model, NFRs
- hogwarts Sales · Get support — the non-tech execution detail
- kun Epics — the GitHub tracker map · Onboarding · Issue pipeline · master tracker kun#76
On This Page
Everyone: the warm-intro listGet your machine readyPick a taskEpics at a glanceEpics01 — Finance & billing · Tech ·Built+PolishFees · 85%Invoice · 90%Reminders & dunningSalary · 75%Payroll · 65%Accounts & ledger · 75%Banking & reconciliation · 80%Wallet · 75%Expenses · 80%Budget · 85%Receipt · 85%Reports · 75%Timesheet · 75%Permissions · 75%Dashboard · 80%Cross-cutting hardeningPayment gateways02 — Admission · Tech · Built03 — Exams & grading · Tech · Built+Polish04 — Attendance · Tech · Built+Polish05 — LMS / Stream · Tech · Built+Polish06 — Communication / Messaging · Tech · Built+Polish07 — Role-aware UI sweep · Tech · In Progress08 — Internationalization & translation · Tech · In Progress09 — Mobile API Layer · Tech · In Progress10 — iOS app · Tech · In Progress11 — Android app · Tech · Vaporware12 — Sales & Pilots · Non-tech · Built+Polish13 — Fundraising · Non-tech · In Progress14 — Content & Marketing · Non-tech · In ProgressBrainstorm & referencesDecide the toolkitProducePublish & distribute15 — Global Catalog · Tech · VaporwareSchema & data modelContent seedUI to consume the catalogOps16 — Letters & Proposals · Non-tech · In ProgressSchools (pilot conversion)Investors (Phase 2)Grants (non-dilutive)Sponsors & ecosystemLibrary maintenance17 — Community · Non-tech · In ProgressFree-content surfaceConversion funnelMarketing & word of mouthOpen-source contributor laneCash and runwayNot built yetSee also