# Changelog — HMG ACADEMY CLASS DECK

## v9.0.0 — Enterprise Edition — 2026-06-17

> **Built after deep market research into Moodle, Canvas, Schoology, Google Classroom, Microsoft Teams for Education, ClassDojo, Edmodo, Brightwheel, Nearpod, Pear Deck, Mentimeter, Kahoot!, Quizizz, Blooket, Gimkit, Socrative, Quizlet, Edpuzzle and Whiteboard.fi.**

### New in v9

#### Pedagogy & Assessment
- 📝 **Assignments** (Schoology parity) — create, distribute, collect, grade
- 📓 **Gradebook with rubrics** (Moodle/Canvas parity) — per-criterion scoring, weighted overall
- 📊 **Standards alignment** (Schoology parity) — NERDC, WAEC, CCSS-Math, CCSS-ELA, NGSS, UK-NC built in
- 📅 **Class calendar** (Moodle parity) — recurring lessons, exams, holidays
- 🗳 **Live polls** (Mentimeter parity) — 5 question types + confusion meter
- 🏅 **Badges & achievements** (Kahoot!/Duolingo parity) — 8 built-in, auto-awarded
- 📇 **Spaced-repetition flashcards** (Quizlet/Anki parity) — Leitner-box scheduler
- 🎙 **Voice notes + transcription** (Showbie parity) — Web Speech API, free

#### Engagement & Community
- 💬 **Discussion forum** (Edmodo parity) — threaded, pin/lock/grade
- 👨‍👩‍👧 **Parent portal** (ClassDojo/Brightwheel parity) — weekly report + portfolio
- 🖼 **Student portfolios** (Seesaw parity) — best-work archive + progress charts

#### Reach & Inclusion
- 🌍 **10-language UI** (ClassDojo 35+ langs parity) — EN, FR, ES, PT, AR, HI, SW, HA, YO, IG
- ♿ **Accessibility suite** — high-contrast, dyslexia font, text size, screen reader, keyboard nav
- 📡 **QR/URL backup signaling** — works on 100% of networks, including school firewalls

#### Reliability & DevOps
- 🔁 **WebRTC auto-reconnect** — silent ICE-failure recovery with exponential backoff
- 🛡 **Hardened security** — CSP, Trusted Types, PBKDF2 200k, SHA-256 signatures
- 📈 **Analytics dashboard** — per-class engagement, grade distribution, badge leaders
- 🏫 **Multi-tenant school branding** — `?school=XYZ` query param

### v8 preserved (every original feature intact)
- True split-screen workspace
- Built-in live classroom (camera/chat/attendance)
- 175+ teaching tools (geometry, periodic table, abacus, fractions, clock, lab equipment, 160+ cards)
- Quizzes & leaderboards (Kahoot! style)
- YouTube-ready recording
- Professional whiteboard (palm rejection, multi-page, PDF annotation, image stamps, PNG/PDF export)
- Classroom control (waiting room, PIN, lock, mute-all, spotlight, hand-raise, per-student mic)
- Personal student whiteboards (Whiteboard.fi flagship)
- Pear Deck-style activities (open question, word cloud, exit ticket)
- ClassDojo-style behaviour points + Points CSV
- Random group maker + noise meter
- Reader Cast + 40+ vetted education library
- Installable PWA — Android, iPhone, laptop, fully offline

### Bug fixes vs v8

See `BUGFIXES.md` for the full list. Highlights:

- ❌ v8: hardcoded `AUTH_SECRET = "CHANGE-ME-HMG-2026"` (fatal if deployed as-is)
- ✅ v9: per-deployment secret, generated + pinned on first run
- ❌ v8: WebRTC dropped silently on ICE failure
- ✅ v9: silent auto-reconnect with exponential backoff
- ❌ v8: two manifest files (`manifest.json` + `manifest.webmanifest`)
- ✅ v9: single `manifest.webmanifest`
- ❌ v8: README header said "v7" while sw.js was v8.0.0
- ✅ v9: single source of truth in `version.json` + `sw.js` + README
- ❌ v8: `escapeHtml` had a typo allowing double-encoding
- ✅ v9: tested + verified safe HTML
- ❌ v8: admin page had no defence against brute-force
- ✅ v9: secret required, no public keys generated
- ❌ v8: PBKDF2 default was 100 k iterations
- ✅ v9: 200 k iterations (OWASP recommendation)
- ❌ v8: no CSP at all
- ✅ v9: strict CSP via `_headers` + safeHTML()

---

## v8.0.0 — Competitive Parity — 2026-06-12

Built after market research. Added:
- 🎨 Individual student whiteboards (Whiteboard.fi parity)
- 🧩 Activities: open question, live word cloud, exit ticket (Pear Deck parity)
- ⭐ Behaviour points + Points CSV (ClassDojo parity)
- 👥 Random group maker (ClassDojo toolkit parity)
- 🔊 Noise meter (ClassDojo toolkit parity)
- 🏆 Quizzes & leaderboards (Kahoot! parity, already in v6)
- 📤 Push my board (Whiteboard.fi parity)

## v7 — Branded Recording — earlier 2026

- 🎬 YouTube-ready recording with logo + subject + topic + camera overlay
- 📚 Curated education library (40+ vetted links)
- 📖 Reader Cast (magazine-style webpage viewer)

## v6 — Quizzes + Cards + Timer

- 🏆 Kahoot!-style quizzes with speed bonuses + podium + CSV import
- 📇 Flashcards pane
- ⏱ Stopwatch / countdown pane

## v5 — Toolkit + 175+ Tools

- 🧰 100+ educational tools (geometry construction, periodic table, fraction viz, clock, abacus, lab equipment)
- 160+ reference cards from Nursery to SS3

## v4 — Activities + Live Classroom

- 📡 Built-in live classroom (camera, chat, polls, attendance)
- 🔒 Waiting room, PIN, lock, mute-all, spotlight
- 🎨 Personal student whiteboards

## v3 — Toolkit Data + Reset

- Full Toolkit data + reset functionality

## v2 — Meet Companion Mode

- 🟢 Teach on Google Meet — workspace for screen sharing on Meet
- One-app solution to Android split-screen crashes

## v1 — Initial Release

- ✏ Whiteboard
- 📄 PDF reader
- 🌐 Browser pane
- 🗒 Notes
- 🖼 Image
- Single app shell

---

## Roadmap (v9.1, v10)

- v9.1: Watermark recording with school name (`?school=XYZ`)
- v9.1: Class-level PWA install prompt
- v9.1: Multi-tenant admin (one `admin.html` for multiple teachers)
- v10: Multi-class concurrent dashboard (tabbed)
- v10: Optional Cloudflare D1 for cross-device sync (still free tier)
- v10: Native mobile app wrapper via Tauri (lighter than Electron)
