Spec 17 Decisions Taken Inside the Answers - SekiroKenjii/Quizzivy GitHub Wiki

Section of Quizzivy — Frontend Portal & Data Model Specification · Previous · Next

17. Decisions taken inside the answers — worth a second look

All original open questions are closed. These sub-decisions were made while implementing the answers, and are the ones most likely to want changing.

  1. Self-join is Google-only (§6.3). Password self-signup needs verified email, which needs an email provider. If Thuong wants that in v1, add Resend/SES and an email_verifications table — the join flow itself is unchanged. Decide before Phase 1.
  2. No admin approval queue for self-join (§6.5). Rotate-and-remove is judged sufficient for a small practice. If enrolments become high-volume or a code leaks in practice, add a pending membership state. Non-blocking.
  3. mp3 and m4a only (§11.1). Covers every current browser with no transcoding. Adding .ogg/.wav means a transcoding pipeline or a Safari support matrix. Decide before Phase 2.
  4. Cloud AI processing is on for the assistant's features (D19), with per-feature minimisation (D20) and a pool-constrained budget (D21), decided by Thuong on 2026-10-10. The provider is Anthropic's API. Each feature sends only what it needs and none sends a student's name, email or id (§15). The centre's $200 a month is a hard stop that only credits an Admin adds can lift, and the product bills nobody (§13.10). Removing ANTHROPIC_API_KEY turns the assistant off and changes nothing else. Two pieces stay open and block nothing: the student-facing sentence about cloud processing on the Test intro waits for Thuong's wording and is not built, and the provider account's data-retention setting is his to confirm before the key is set in production (docs/plan/70-redesign-overview.md §10).

Section of Quizzivy — Frontend Portal & Data Model Specification · Previous · Next


Generated from docs/quizzivy-spec-v0.3.md. Edit that file in the repository; changes made on this page are overwritten.

⚠️ **GitHub.com Fallback** ⚠️