-
Notifications
You must be signed in to change notification settings - Fork 1
FAQ
No. The app runs entirely in the browser — open it and start. Connecting a Supabase backend is optional and only needed for cloud features (sync across devices, colleague sharing, the student portal, the marketplace).
Without Supabase, everything stays in your browser's localStorage (plus IndexedDB for recordings) — nothing is sent anywhere. With Supabase, data is mirrored to the instance you connect (your own project or school server). See Data & Privacy.
Chrome, Edge, Firefox, and Safari (recent versions). Voice grading and voice feedback need Chrome or Edge. The app is installable as a PWA on desktop and mobile.
Yes. In local mode everything works offline from localStorage. With Supabase connected, the app keeps working offline and syncs changes when the connection returns.
Yes — the grading interface is optimised for tablets (iPad portrait/landscape), and the student portal works on phones.
Total points, weighted percentage, and single-point rubric. See Features → Rubric Builder.
Yes — select 2+ students from the Rubrics list and grade them as a group; scores fan out to everyone. Individual criteria can be excluded from the fan-out with the per-criterion "Group grading" toggle.
Yes — peer review, plus self-assessment. See Features → Self-Assessment & Peer Review.
Yes — send a graded submission to a colleague for co-grading; disputes surface in the Moderation queue. See Features → Co-grading & Moderation.
Yes — save any question to the Question Bank and insert it into other tests, including whole reading/listening passage bundles. See Tests & Practice.
No. Practice-mode results appear in a separate panel and never blend into the graded CEFR chart or statistics.
With three calibration-free engines (multistage, staircase, generator) that adapt from the answers the student gives during the test — no historical data needed. See Tests & Practice → Placement.
Connect Supabase, add students, then generate share links/QR codes from the Rubrics, Tests, Essays, or Students pages. See Student Portal.
Yes — share a rubric or class with another teacher (viewer or editor), publish to the school Marketplace, or use department sharing. See Supabase Sync.
The Marketplace publishes a cloned snapshot colleagues can browse, clone, and upvote. Department sharing makes the live rubric read-only-visible to every teacher in your school.
PDF and Word (.docx) reports (including branded mail-merge templates), CSV score tables, Markdown (essays), JSON backups, Magister/SOMtoday gradebook presets, and .ics calendar files for due dates. See Features → Export.
Regularly — especially on shared/managed devices. Use Settings → General → Export backup (or the admin flow in Settings → Administration). See Data & Privacy.
They download as a JSON file to your device. With Supabase connected, nightly per-owner backups are also written to the backups storage bucket.
teacher (default for staff), admin (full control — users, schools, database, retention, audit), observer (read-only access), and student (portal access). Roles are enforced via Supabase Row-Level Security. See Features → Admin Dashboard.
Students can be soft-deleted, then Restore or Anonymize from Admin → Archive. Anonymizing scrubs personal data while keeping aggregate grade history for reporting.
Only admins — Admin → Audit. It logs role changes, deletions, grade saves, rubric edits, exports, and auth events, with configurable retention (see Data & Privacy).
It's designed for compliance: no telemetry, opt-in network requests, an in-app privacy page, data anonymization, configurable retention, and EU-region hosting guidance for Supabase. The institution running the app is the data controller — see Data & Privacy and the repository's PRIVACY.md.
No AI generation anywhere. Document analysis, grammar checking, vocabulary profiling, and learning-path recommendations are rule-based and deterministic. See Features.
Check the browser console (F12). A missing module usually means npm install didn't complete — see Installation → Troubleshooting.
By design, only one tab can run the app at a time (a Web Locks API lock prevents two tabs from racing on the same data). Close the other tab or window and reload.
Check the URL (https:// for cloud, http://127.0.0.1:54321 for local) and that the anon key is the full JWT string — see Supabase Sync → Troubleshooting.
Use Pull database → local (or Push local → database) from Admin → Database to force a refresh in the right direction.