Sprint Plan — Feoda BI (ARM Standalone)¶
Overall Progress¶
Timeline¶
gantt
title Feoda BI — Sprint Timeline
dateFormat YYYY-MM-DD
axisFormat %b %d
section Sprints
Sprint 0 — Foundation :done, s0, 2026-03-09, 2026-03-20
Sprint 1 — Billing Engine :done, s1, 2026-03-23, 2026-04-03
Sprint 2 — Billing and Auth :done, s2, 2026-04-06, 2026-04-17
Sprint 3 — AI Agent :active, s3, 2026-04-20, 2026-05-01
Sprint 4 — Portal and Demo :crit, s4, 2026-05-04, 2026-05-15
Sprint 5 — Integrations :s5, 2026-05-18, 2026-05-29
Sprint 6 — Hardening :s6, 2026-06-01, 2026-06-12
section Milestones
Pymble Data Verified :milestone, m1, 2026-04-17, 0d
AI Agent Demo Ready :milestone, m2, 2026-05-01, 0d
MVP Demo — Schools and Investors :crit, milestone, m3, 2026-05-15, 0d
Go-Live Ready :milestone, m4, 2026-06-12, 0d
Story Points by Area¶
pie showData
title SP Distribution by Feature Area
"Core Platform and Auth" : 74
"Billing and Invoicing" : 52
"Payments" : 46
"AI Agent" : 24
"Integration" : 19
"Portal and UI" : 29
"Email and PDF" : 16
"Quality and DevOps" : 17
Sprint Breakdown¶
✅ Sprint 0 — Foundation and Simple Full Billing Cycle¶
| # | Story | SP | Owner | Status |
|---|---|---|---|---|
| 14 | Azure Repos Setup | 2 | Sarah | ✅ Done |
| 15 | Fastify TypeScript Scaffold | 3 | Ola | ✅ Done |
| 16 | Dev Container Setup | 3 | Sarah | ✅ Done |
| 17 | Database Migrations Setup | 2 | Ola | ✅ Done |
| 18 | CI Pipeline | 3 | Sarah | ✅ Done |
| 19 | Environment Configuration | 1 | Sarah | ✅ Done |
| 20 | Logging and Error Handling | 2 | Ola | ✅ Done |
| 21 | Coding Standards Documentation | 1 | Ola | ✅ Done |
| 22 | Core Database Schema | 5 | Ola | ✅ Done |
| 23 | CSV Imports and CRUD APIs | 5 | Sarah | ✅ Done |
| 26 | Admin Dashboard | 10 | Sarah | ✅ Done |
| 28 | Documentation Submodule | 2 | Ola | ✅ Done |
| 29 | Submodule Access | 1 | Ola | ✅ Done |
Delivered: ~38,000 LOC of production code
- Fastify v5 + TypeScript scaffold with modular architecture
- PostgreSQL 16 + Kysely migrations (30 migrations, 15+ tables)
- Next.js 14 + React 19 admin dashboard (12 pages, 40+ components)
- 6 CSV importers (debtors, students, parents, items, campuses, enrolments)
- CI/CD pipelines, dev container, GitHub mirror
- Multi-tenant database schema foundation
✅ Sprint 1 — Billing Engine, Transactions and Custom Fields¶
| # | Story | SP | Owner | Status |
|---|---|---|---|---|
| 24 | Billing Configurator | 8 | Sarah | ✅ Done |
| 25 | Billing Run Engine | 5 | Sarah | ✅ Done |
| 27 | Manual Payment Recording | 13 | Sarah | ✅ Done |
| 30 | Manual Transaction Creation | 8 | Ola | ✅ Done |
| 31 | Discount Items in Manual Transactions | 3 | Ola | ✅ Done |
| 41 | Billing Discount Resolution Sync | 5 | Ola | ✅ Done |
| 42 | Dynamic Tables and Custom Fields | 21 | Sarah | ✅ Done |
Delivered: Billing engine, payment system, condition engine
- 9-tab billing configurator with condition engine (300+ LOC recursive AND/OR SQL builder)
- Billing run engine with atomic transaction generation
- Discount resolver with two-phase compound stacking (500+ LOC)
- Manual payment recording with allocation engine
- Manual transaction creation with full discount handling
- Dynamic tables and custom fields infrastructure
- Data integrity enforcement across all entities
✅ Sprint 2 — Billing Completion, Auth Foundation and Pymble Testing¶
| # | Story | SP | Owner | Status |
|---|---|---|---|---|
| 32 | Mandatory Fields and Data Integrity | 2 | Ola | ✅ Done |
| 37 | Opening Balance Management | 3 | Sarah | ✅ Done |
| 44 | Auth, RBAC and Multi-Tenancy Foundation | 5 | Ola | ✅ Done |
| 45 | Advanced Configurator Conditions (Multi-Entity, AND/OR) | 5 | Sarah | ✅ Done |
| 34 | Billing Cycle Close | 5 | Sarah | ✅ Done |
| 38 | PDF Invoice Generation | 5 | Monther | ✅ Done |
| 55 | Parent Portal: Confirmation and Payment History | 8 | Samawal | ✅ Done |
| 73 | Roles and Permissions Enhancements | 8 | Ola | ✅ Done |
| 76 | CI Pipeline Maintenance — ESLint and Azure Task Warnings | 2 | Ola | ✅ Done |
| 79 | VS Code Launch Config and Idempotent Core Seed Script | 3 | Samawal | ✅ Done |
Delivered: Auth foundation, billing completion, new team members onboarded
- JWT authentication with RBAC and multi-tenancy foundation
- Advanced configurator conditions (multi-entity AND/OR logic)
- Billing cycle close workflow
- PDF invoice generation engine (Monther's first delivery)
- Parent portal confirmation and payment history (Samawal's first delivery)
- Roles and permissions with custom permission system, password reset, error handling
- CI pipeline fixes and dev environment improvements
🔄 Sprint 3 — AI Agent Layer¶
| # | Story | SP | Owner | Focus |
|---|---|---|---|---|
| 46 | Pymble Data Import and E2E Verification | 5 | Ola | Full Pymble dataset import + billing cycle verification |
| 47 | AI Agent Foundation | 5 | Samawal | Claude API, schema context, preview/confirm, RBAC |
| 48 | AI: Natural Language Billing Setup | 5 | Samawal | "Set up $5K tuition for Year 7" → billing instruction |
| 49 | AI: Anomaly Detection | 3 | Samawal | Graduated students still billed, missing fees, outliers |
| 50 | AI: Fee Structure Modelling | 3 | Samawal | What-if analysis: fee changes → revenue impact |
| 51 | AI: Audit and Compliance Queries | 3 | Samawal | NL → SQL on audit logs |
| 80 | Tenant Management — Feature Access, Secure Routes, Logo Upload | 8 | Ola | Tier-based feature flags, secure route middleware, tenant branding |
| 81 | Email Notification System — Password Reset and Invoice Delivery | 8 | Monther | Email foundation, SMTP/SendGrid, password reset emails, invoice delivery |
| 82 | PDF Engine CI and Hardening | 3 | Monther | PDF pipeline stabilisation, CI integration, edge case fixes |
Sprint Goal
Build the AI differentiator — 4 intelligent automation scenarios powered by Claude. Plus: tenant management, email system foundation, and PDF hardening.
AI Scenarios (Samawal)
- Natural Language Billing Setup — Describe fees in plain English, agent creates billing instructions
- Anomaly Detection — Surface billing inconsistencies and errors
- Fee Modelling — What-if analysis for fee structure changes
- Audit Queries — Natural language compliance and audit reporting
Team Split
- Samawal: AI agent foundation + all 4 scenarios (19 SP)
- Ola: Pymble E2E verification + tenant management (13 SP)
- Monther: Email system + PDF hardening (11 SP)
⭐ Sprint 4 — Parent Portal and Demo MVP¶
| # | Story | SP | Owner | Focus |
|---|---|---|---|---|
| 53 | Parent Portal: Auth and Landing Page | 3 | Samawal | Family URL, OTP login, branded landing |
| 54 | Parent Portal: Billing Display and Payment | 5 | Samawal | Balance display, payment methods, levy opt-in |
| 35 | Billing Order to Invoice Conversion | 3 | Ola | Status transition + line item copy |
| 39 | Invoice Email Distribution | 3 | Ola | PDF attachment, payment link, batch sending |
| 56 | Automated Payment Reminders | 3 | Ola | BullMQ scheduler + configurable rules |
| 57 | Basic Reporting Dashboard | 5 | Sarah | Aging, collection, payment breakdown charts |
| 58 | Payment Reconciliation and Pre-Gen Checkpoints | 3 | Samawal | Pre-billing validation |
| 59 | Demo Environment and Data Setup | 2 | Sarah | Clean dataset, scripted flows, UI polish |
Milestone: MVP Demo — May 15 ⭐
Audience: Schools (sales targets) + Investors
Demo showcases:
- ✅ Real Pymble data flowing through complete billing cycle
- ✅ Admin dashboard: billing configurator + condition engine + custom fields
- ✅ AI agent: all 5 scenarios with live data
- ✅ Parent portal: login → view balance → make payment
- ✅ PDF invoices with email distribution + payment reminders
- ✅ Reporting dashboard with aging and collection metrics
- ✅ RBAC: different logins showing different capabilities
🔌 Sprint 5 — Integrations and Payment Automation¶
| # | Story | SP | Owner | Focus |
|---|---|---|---|---|
| 60 | NetSuite REST Adapter | 8 | Sarah | Bidirectional ERP sync (debtors, items, invoices, payments) |
| 40 | ERP Integration and Reconciliation | 8 | — | GL mapping, journal entries, reconciliation |
| 61 | eway Payment Gateway | 5 | Ola | Credit card processing, tokenization |
| 63 | RPS Foundation (Recurring Payments) | 5 | Ola | Payment schedules, BullMQ automation, retry policies |
| 62 | ABA File Generation | 3 | Samawal | Direct debit bank file format |
| 64 | B Pay Integration | 3 | Samawal | Reference generation + reconciliation |
| 65 | Edstart Integration | 3 | Monther | Pymble-specific third-party payment provider |
| 66 | Webhook Infrastructure | 3 | Monther | Event system for external notifications |
| 33 | Billing Generation Performance | 3 | Monther | Optimize for bulk runs |
| 36 | Mid-Year Pro-Ration | 3 | Sarah | Pro-ration formula, school-days calculation |
Heavy Sprint: 44 SP
This is the highest-loaded sprint. Consider moving #40 (ERP Integration, 8 SP) to Sprint 6 if Sprint 5 is at risk.
Sprint Goal
Connect to external systems: NetSuite ERP, eway payments, bank files (ABA, B Pay), and Edstart. Automate recurring payments with RPS engine.
🛡️ Sprint 6 — Hardening and Go-Live Prep¶
| # | Story | SP | Owner | Focus |
|---|---|---|---|---|
| 52 | AI: Mid-Year Adjustment Assistant | 5 | Sarah | Student transfers → pro-ration → credit notes |
| 67 | Multi-Tenant Isolation Hardening | 5 | Sarah | RLS audit, cross-tenant tests, security testing |
| 68 | Automated Test Suite Expansion | 5 | Unassigned | E2E billing, payment, portal tests |
| 69 | Error Handling and Recovery | 3 | Ola | Failed billing runs, payment failures, retry logic |
| 70 | Refund Processing | 3 | Ola | Credit card/DD refunds, credit notes |
| 71 | Migration Tooling (Saint Edwards Pilot) | 5 | Sarah | Strangler fig migration scripts |
| 72 | Documentation and Runbooks | 2 | Unassigned | Deployment, operations, troubleshooting |
Sprint Goal
Harden security (multi-tenant isolation), expand test coverage, add refund processing, prepare migration tooling for Saint Edwards pilot, complete operational documentation, and deliver the final AI scenario (mid-year adjustments). Buffer sprint to absorb spillover.
Team¶
Capacity Ramp-Up¶
xychart-beta
title "Team Capacity (Effective Developers per Sprint)"
x-axis ["S0", "S1", "S2", "S3", "S4", "S5", "S6"]
y-axis "Developers" 0 --> 5
bar [2, 2, 2.6, 3.2, 3.6, 4, 4]
| Sprint | Sarah | Ola | Samaual | Monther | Effective Devs |
|---|---|---|---|---|---|
| Sprint 0–1 | Full | Full | — | — | 2 |
| Sprint 2 | Full | Full | Ramping | Ramping | 2.6 |
| Sprint 3 | Full | Full | Partial | Partial | 3.2 |
| Sprint 4 | Full | Full | Full | Partial | 3.6 |
| Sprint 5 | Full | Full | Full | Full | 4 |
| Sprint 6 | Full | Full | Full | Full | 4 |
Workload by Sprint¶
xychart-beta
title "Story Points per Sprint"
x-axis ["S0", "S1", "S2", "S3", "S4", "S5", "S6"]
y-axis "Story Points" 0 --> 70
bar [40, 63, 46, 43, 27, 44, 28]
Velocity¶
| Sprint | Stories | SP | Devs | SP/Dev | Codebase Output |
|---|---|---|---|---|---|
| Sprint 0 | 13 | 40 | 2 | 20 | ~18,000 LOC — foundation, schema, imports, dashboard |
| Sprint 1 | 7 | 63 | 2 | 32 | ~20,000 LOC — billing engine, payments, conditions, custom fields |
| Sprint 2 | 10 | 46 | 2.6 | 18 | Auth, RBAC, billing close, PDF engine, portal history, permissions |
| Total | 30 done | 149 | 2–2.6 | 23 avg | ~50,000+ LOC production code |
Velocity Calibration
Sprint 0+1 delivered ~38,000 LOC across ~250 files with only 2 developers. This includes a recursive condition engine (300+ LOC), two-phase discount resolver (500+ LOC), billing generation service (400+ LOC), 6 CSV importers, payment allocation engine, 12 frontend pages, 40+ React components, and 30 database migrations. Story points for Sprints 2–6 are calibrated against this baseline.
Key Decisions¶
| Decision | Rationale |
|---|---|
| AI before Integration | AI is the product differentiator — demo it early |
| Pymble testing in Sprint 2 | Proves billing accuracy before building more features |
| Demo MVP by May 15 | Schools and investors need to see a working product |
| 2-week sprints | Consistent cadence, fast feedback loops |
| New devs ramp in Sprint 2 | Monther (PDF generation) and Samawal (portal history) start early |
| Pro-ration deferred to Sprint 5 | Complex, not needed for demo |
| SIS integration out of scope | Not in 6-sprint window |
| Refunds in Sprint 6 | Post-demo enhancement |
Out of Scope (This Phase)¶
- SIS Integration (Synergetic, TASS)
- Microsoft Dynamics Adapter
- WhatsApp/Telegram notifications
- Advanced multi-tenancy (database-per-tenant)
- Custom branding engine
- Public API documentation portal