Skip to content

Status & gaps

An honest current-state assessment against the product vision, informed by a full manager-experience audit. This is the page to read before planning the next quarter.

Where the product stands

The center can be operated on this today, and after the 2026 fixes it can also be set up and billed through the product. The reporting and practice experience is broad and trustworthy; the operational write-paths — historically the weak spot — have been largely closed.

Recently fixed (2026)

  • Create a tuition charge — the ledger is no longer read-only; the manager can bill a student.
  • Auto-charge on enrollment — enrolling a student into a class raises a charge from the class fee, so the ledger populates itself.
  • Overdue status is derived from the due date (in local time), so late payers surface correctly.
  • Change a user's role and block/unblock an account now work (they were dead buttons that failed on every click).
  • A blocked/demoted account loses access immediately.
  • AI budget now counts one grading as one unit (was ~3× too fast, throttling teachers).
  • Dashboard KPIs corrected: "today" uses the center's local time, "still owed" never goes negative, and active-enrollment counts distinct students in active classes.
  • Model names removed from the manager's reports.
  • Grading edge cases fixed (partial AI replies no longer silently fill missing scores; the Reading/Listening band table matches the official scale; concurrent submissions can't lose an update or return the wrong row).
  • Media range/seek, background-job double-charging, and internal-error leakage fixed.

Biggest remaining gaps

The manager audit surfaced these as the highest-value remaining work. They are features to build, not subtle bugs:

Gap Impact Priority
Add-student / add-teacher forms Onboarding still leans on the account-creation flow; a guided form per role is missing P0
Edit a class's core fields A class's fee/capacity/band can't be corrected after creation, and a class can't be archived P0
Editable class schedule UI-created classes get a fixed default timetable; the manager can't set custom weekly times P1
Listening audio upload in the editor Manager-authored Listening tests have no way to attach audio P1
Session status & makeup sessions Sessions can't be marked done/cancelled; no ad-hoc/makeup session P1
Auto-notifications The "keep students/parents informed" module is inert — no delivery P1
Destructive-action confirmations Delete test / assignment / material fire instantly with no confirm P1
Manager-facing grading oversight No dashboard tile or link into the approval queues P1

See the full manager-experience audit for all 77 findings and the prioritized plan.

Against the product roadmap

Phase Vision Reality
Phase 1 8 management modules, 2 practice modes, AI grading + approval, AI Tutor, role dashboards Mostly built. Read/reporting strong; a few operational write-paths and the notifications module still to finish.
Phase 2 Parent portal, mobile app, push notifications, Zalo/SMS Not started (mobile app scaffold exists).
Phase 3 Handwritten-Writing OCR, deep pronunciation, white-label, multi-branch OCR for test creation exists; the rest is future.

Legacy code

The repository contains an older Node.js + MongoDB implementation of the same domain. It is not deployed and not part of the live system, but it still gates code merges and carries a weaker security model. Recommendation: archive it out of the merge gate so it can't be accidentally deployed or confused with production. Two of its unauthenticated internal endpoints were guarded defensively in the meantime.

Full audit reports

Two independent multi-agent audits back this assessment:

  • A security & quality audit (46 verified findings) — access control, data integrity, AI-pipeline abuse, performance. The high-severity items are fixed.
  • A manager-experience audit (77 verified findings) — every management module reviewed for whether the flow works, the data is right, and features exist. The P0 money-in and account-admin items are fixed; the feature gaps above remain.

Both reports are available as standalone documents from the product owner.