Commit Graph
41 Commits
Author SHA1 Message Date
hzandClaude Sonnet 5 6f41906101 Gate Rz Coins on correct-first-try-within-time-limit; match coin-flight animation to it
Credits were previously awarded on any first attempt regardless of
correctness or timing. The award now requires the first-ever attempt
to be correct (record.Attempt.IsCorrect) and submitted before the
adaptive per-question timer expired (new MetTimeLimit request field,
computed client-side from the same elapsed/target comparison that
already drives the visible countdown bar). The coin-flight animation
in question_player.gd now only plays when both conditions are met
(BlockSessionService.submit_core_attempt's existing "mastered" flag
plus met_time_limit), so the effect never promises a coin that isn't
actually earned.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-07-28 20:17:07 -05:00
hz 22b0df7aed Add isolated question completion credits 2026-07-28 18:40:49 -05:00
hz 500477b612 Add dashboard performance trends 2026-07-25 22:43:34 -05:00
hz fcbc288a49 Add data-driven dynamic question mode 2026-07-23 12:33:23 -05:00
hz 8e216eac32 Rebuild CCS case workflow 2026-07-23 04:43:02 -05:00
hz d69a1fd0e3 Sync text zoom preference through the account instead of local settings
Local user://settings.cfg meant zoom level didn't follow a student
across devices/browsers. Question bank and CCS text scale now live on
the user's study profile in Mongo (QuestionTextScale/CcsTextScale),
synced through a new PUT /api/profile/me/text-scale endpoint and the
existing preferences GET/cache already used for study preferences.

Both question_player.gd and ccs_service.gd read the synced value at
startup and react to AccountProfileService.profile_changed so a value
pulled down after login (or changed from another session) applies
without a restart. Backend validates the 0.85-1.35 range and updates
only the field(s) provided via a targeted $set, so it can't clobber
the other scale or the unrelated study-profile preferences.
2026-07-23 03:59:02 -05:00
hz 9f62444a63 Add a review-flag state for questions, independent of publish status
Flagged questions disappear from every student-facing surface (search,
exam simulation sampling, the missed-question review queue, bookmarks,
direct fetch) while staying published - flagging and unpublishing are
now separate, reversible actions with their own audit trail (who
flagged it, when, why). Backend-only for now: SUPER-only flag/unflag/
list endpoints, no client UI. Includes a one-time CLI sweep
(flag-media-questions) to flag every existing question with an image
so they can be reviewed.
2026-07-22 22:42:19 -05:00
hz 7f76ca0fdc Add system (curated) vs. user-uploaded flashcards
System decks/notes are owned by a reserved sentinel user id, reusing
all existing per-user store/index plumbing unchanged. Regular users
see them under a separate "Official Decks" section, can study them
with fully independent per-user FSRS progress (lazily materialized on
first visit), but can never edit or archive them - enforced both in
the client (no Edit/Archive controls) and server-side (ownership guard
on every mutating endpoint). Includes a small idempotent seed command
(`dotnet run -- seed-flashcards`) for testing, since there's no in-app
authoring UI yet.
2026-07-22 15:52:19 -05:00
hz 48a8c8361d Add flashcards feature with spaced repetition scheduling
Adds a full flashcards system: FSRS-based scheduling, cloze/basic
card types, CSV import/export, media storage, and study UI, wired
into navigation and the dashboard alongside existing question flows.
2026-07-21 15:08:52 -05:00
hz 72fd1e3e0f Add provider-neutral Google authentication 2026-07-20 21:42:56 -05:00
hz 5c406a271f Merge authentication into Questions API 2026-07-20 17:21:15 -05:00
hz dec5e74aa7 Add Stripe donation flow 2026-07-19 22:26:33 -05:00
hz f12904bf73 Unify CCS case management flow 2026-07-19 21:29:24 -05:00
hz dacf2b89b2 Implement responsive profile and account data controls 2026-07-19 13:39:15 -05:00
hz 7508d4fe1d Implement persistent review queue 2026-07-19 12:51:24 -05:00
hz 2dcac51452 Add user progress dashboard 2026-07-18 23:45:38 -05:00
hz 2e52a7ea0a Add synced question bookmarks 2026-07-18 23:07:22 -05:00
hz d0bb271b14 Add synced user notes 2026-07-18 22:22:29 -05:00
hz a778a680e0 Redesign exam and CCS experiences 2026-07-16 22:42:03 -05:00
hz aec56f168e Add general app feedback reporting 2026-07-15 20:55:13 -05:00
hz 52d435fa2e Complete CCS results and rating flow 2026-07-15 11:08:13 -05:00
hz 9f379cda5c Add CCS study tools and case reporting 2026-07-15 10:43:03 -05:00
hz 7256f93002 Add interactive CCS case practice 2026-07-15 10:17:53 -05:00
hz 27c48411f1 Add SUPER simulation review sample 2026-07-14 21:46:29 -05:00
hz 3b946c2bc5 Move simulation history into profile 2026-07-14 21:38:03 -05:00
hz 52e82391ee Fix history cursor parsing build 2026-07-14 21:22:09 -05:00
hz 0f43a51f2b Fix completed simulation history cursor 2026-07-14 21:21:13 -05:00
hz 705f079997 Add functional simulation question review 2026-07-14 17:49:23 -05:00
hz bbb373acf4 Add SUPER exam results preview 2026-07-14 17:25:25 -05:00
hz 206a5c0124 Add full-length Step 3 Day 1 simulation 2026-07-14 16:54:11 -05:00
hz 292f8ff9b4 Embed question verification references 2026-07-13 22:29:20 -05:00
hz 93154d5925 Add variable question distractor pools 2026-07-13 10:15:05 -05:00
hz f2c59388eb Scale unique answer tracking 2026-07-13 02:11:54 -05:00
hz 700da4e415 Add question reporting and reference reviews 2026-07-13 01:30:01 -05:00
hz 9c8775d740 Add question image media support 2026-07-11 03:12:46 -05:00
hz ad6b3863cc Add wrong answer follow-up prompts 2026-07-11 02:16:01 -05:00
hz c716b16c53 Add server-side ELO ratings 2026-07-11 02:05:43 -05:00
hz bdd32c9dac Simplify wrong answer percentage display 2026-07-11 01:46:37 -05:00
hz 8a86734a0b Track real first attempt question stats 2026-07-11 01:42:18 -05:00
hz e991dccbb2 Add core game retry flow and question stats 2026-07-10 14:05:57 -05:00
hz 277076a245 Initial STEP 3 study game and questions API 2026-07-09 20:50:33 -05:00