CentreAI
A multi-role SaaS product that turns one teacher's report into a polished parent update and an owner-level operations view — no re-typing between roles.
- Role
- Product owner & builder — directed the full build via Claude Code
- Timeline
- 2025 – Present
- Outcome
- 5 product surfaces shipped, one shared data model
The problem
Teacher progress reports, parent communication, and owner-level visibility were three disconnected manual tasks inside language centre operations. A teacher would write an observation note, someone would manually rewrite it into a parent-friendly update, and the owner had no single view of what was actually happening across classes. Every handoff meant re-typing the same information in a different voice for a different audience.
What I built
CentreAI is a multi-role SaaS product built around one idea: one report, three roles, no re-typing. A teacher's report automatically becomes a polished, bilingual (English + Vietnamese) Zalo-ready parent update, plus an owner-level operations view — with no manual rewriting between roles.
Shipped product surfaces:
- Front Desk overview — a real-time snapshot of daily operations
- Class Schedule — with embedded coaching notes per class
- Student Records — support notes, trial links, and full report history
- Admissions pipeline — enquiry → trial → placement → enrolment
- Parent Updates — auto-generated, bilingual, ready to send
The product is deployed live on a custom domain and used as a real operational tool, not a prototype.
How I worked
I'm not an engineer — my role was directing the build. That meant scoping each surface against a real operational pain point I saw firsthand as a manager, writing precise specs for Claude Code, reviewing every generated surface against how a front desk, a teacher, and an owner would actually use it, and iterating until the bilingual parent-facing output read like something a human, not a template, had written.
Outcome
CentreAI replaced a manual, error-prone reporting chain with a single source of truth that automatically reshapes itself for each audience. It's live on a custom domain and actively used for day-to-day language centre operations.