Structured course player
Sequenced sessions with worked examples, checklists and exam-style problems. Mathematics is typeset with KaTeX.
Structured courses, an AI study buddy, and exam-style assessment with AI-assisted marking.
A private learning platform for VCE students. Invite-only, built to production standards.
What it is
Classroom Glen is an invite-only learning platform for VCE (Victorian Certificate of Education) students in Australia. Students get structured courses, an AI study buddy, and exam-style assessment with AI-assisted marking. Parents get oversight, activity emails and study plans.
It was built multi-tenant and data-driven from day one, so growing means switching on signup and billing, not a rewrite. One active cohort today.
Courses · versioned content packs
All courses are enrichment, written with original problems and marking keys. No publisher or VCAA material is hosted, and no formal VCE enrolment is implied.
Feature highlights
Course delivery, AI tutoring, exam workflow and parent oversight. Each one gated, capped and logged.
Sequenced sessions with worked examples, checklists and exam-style problems. Mathematics is typeset with KaTeX.
Maths Buddy and Business Buddy: a subject-aware tutor on Claude Haiku that streams replies live over SSE. Every conversation is consent-gated, capped and logged.
Timed papers served as PDFs from R2 behind signed URLs (≤120 s), capped attempts, and photo upload of handwritten work.
Multi-dimension marking on Claude Opus with a confidence-gated auto-release. Low-confidence marks queue for human review, and students can appeal.
A multi-guardian model (M:N) with 10 per-guardian permission toggles, per-course activity emails, and parent-owned study plans with reminders.
A safety pre-pass on every tutor turn, a crisis-flag sweep, and an operator triage queue.
An 8-tab operator portal: dashboards, people, courses, exam provisioning, grading and appeals, privacy and DSAR queues, ops health, cost rollups.
A consent ledger, data export (DSAR), a scheduled deletion purge, and a PII-free audit log holding ids and hashed emails only.
By the numbers
Architecture
One Worker holds all the server logic. Everything inside the dashed boundary is a managed Cloudflare primitive; outside it sit the browser and the two external services the Worker calls.
Scroll the diagram sideways to see the storage and service columns.
The gate lives inside the Worker, and the wires show it: the student-scoped store reads leave from the gate itself, deny by default, and a denial is indistinguishable from “not found”: a plain 404. The KV session cache and rate-limit counters are not student-scoped, so that wire leaves above the gate and never touches it. Marking jobs go on a queue that the Worker consumes itself, so nothing but the Worker calls Claude.
Explore the interactive diagram →Tech stack
Seven managed Cloudflare primitives carry the platform. Two outside services are called from the Worker, and never from the browser: Anthropic Claude and Resend. The last row is the test toolchain, which runs on the same workerd runtime the platform deploys onto.
Privacy and security by design
Classroom Glen handles children’s data. These are not policies pinned to a wall, they are invariants enforced in code, on every request.
Every student-scoped read passes the permission gate canExercise(actor, student, permission) before anything is returned. Denials are indistinguishable from “not found”, a plain 404, so there is no way to enumerate what you cannot see.
AI processing, email and accounts each need explicit guardian consent, re-checked on every send and every turn, not just at signup.
Every tutor and marker call goes through consent, then spend caps, then per-student daily caps, then a safety pre-pass, and lands in an AI processing ledger.
IDs and hashed emails only. The record of what happened never becomes a second copy of who it happened to.
Every file lives in a private bucket, reachable only through a signed URL that expires within 120 seconds.
Secrets live in the deployment secret store. Sessions use PBKDF2 with signed cookies, and the operator signs in with a password plus TOTP.
Export and deletion are first-class flows, backups are encrypted, and there is no analytics or tracking script on any page, including this one.