Commit Graph
45 Commits
Author SHA1 Message Date
hz 09b670d5d4 Close the gap between the flashcards study screen and the mockup
Add real session-history navigation (Previous/Next/Shuffle), compact
side panels, and a segmented progress row to match the mockup layout.
Flashcards now opens straight into Study, with library management
moved into the Options menu ("Manage Flashcards") and Export hidden
from the UI (Import stays). Shuffle is backed by a real, due-before-new
randomized pick on the backend, not a decorative toggle.
2026-07-22 00:43:52 -05:00
hz 70aa425fde Rebuild flashcard study screen from mockup, with real backend-backed stats
Study screen now matches the provided mockup's layout: a "Current
Deck" panel with a circular mastery-progress ring, and a "Spaced
Repetition" panel (New/Due/Learning/Review counts, streak, daily
goal) on either side of the card. Kept the app's real global sidebar
rather than the mockup's own nav, per direction.

Mastery/Streak/Daily Goal weren't tracked anywhere, so this adds real
backend support rather than showing fabricated numbers:
- Mastered = graduated to review state AND FSRS stability >= 21 days
  (FlashcardScheduleStore.MasteryStabilityDaysThreshold), stricter
  than the plain Review-state count
- CurrentStreakDays = consecutive UTC days with a review, computed
  from review-log timestamps in the new pure FlashcardScheduling
  .ComputeStreakDays (unit tested, habit-streak semantics: doesn't
  reset to 0 the instant a new day starts before today's first review)
- DailyGoal/ReviewsToday reuse the account's existing ReviewsPerDay
  setting rather than inventing a new one
Also removes the exit "X" button in favor of the same Escape/pause
menu the question-player flow uses (main.gd's shared app_menu, with
an "Exit Study Session" action), and adds a new circular_progress.gd
reusable ring control plus a real "Options" menu (bury/suspend the
current card) wired to schedule endpoints that had no UI before.
2026-07-21 23:20:14 -05:00
hz 72fb6e4776 Rework flashcards library to match the rest of the app's visual language
Compared side-by-side against Dashboard, the library screen used
entirely different visual primitives: a gradient primary button
Dashboard doesn't use anywhere, per-row bordered cards with low
contrast against the dark background, and a translucent pill badge
instead of the icon-circle pattern used everywhere else (stat tiles,
review queue, recent activity).

- Study/Save/Commit import now use Dashboard's actual primary button
  style (flat ROYAL_BLUE, not the login/session-dialog gradient)
- Added a stat-tile row (Due today / New available / Decks) using
  Dashboard's exact icon-circle + value + label construction, replacing
  the due/new counts previously crammed into the deck dropdown's text
- The note list now lives in one bordered card with a section title
  (matching Dashboard's chart/list panels) instead of each row being
  its own separate low-contrast card
- Per-row card-type indicator is now an icon circle (clipboard-list /
  notebook-pen) matching the Recent Activity list pattern, instead of
  a translucent color-coded pill badge
2026-07-21 22:47:21 -05:00
hz 7e19366dcb Redesign flashcards for visual hierarchy and button consistency
Study card: label the answer and "key takeaway" as distinct sections
with a real visible divider (previously an all-but-invisible
HSeparator) instead of one undifferentiated block of text. Also fixes
a real gap where a cloze card's extra field was silently dropped,
since only basic notes combined answer+extra into one label. Bigger
card, gradient Show-Answer button matching the app's signature CTA
style instead of a duller flat teal, and the Undo button now hides
itself when there's nothing to undo instead of sitting there disabled
looking identical to a real action.

Library: colored type badge per card (Basic/Cloze) instead of plain
gray text, more breathing room inside each row, Study promoted to the
same gradient CTA style, and Edit/Archive given a real secondary
button treatment instead of default theme buttons. Note editor fields
renamed ("Back / Extra takeaway" + a separate "Extra" field was
genuinely confusing) and now show which deck a card is being saved to.
2026-07-21 22:05:36 -05:00
hz 4dfbd811b9 Wire flashcard CSV/JSON import/export and fix theme/responsive gaps
Import and export were stubbed with status-text placeholders; wire them
to the existing backend endpoints with a real file picker (web JS
bridge or native FileDialog) and browser/desktop download, plus an
import preview with create/update/skip/error counts before commit.

Also fix the library and study screens' theme-refresh handlers, which
were no-op stubs so cards never restyled on a theme toggle, and add
responsive layout handling for narrow viewports.
2026-07-21 16:41:26 -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 29b89dc404 Remove redundant follow-up retry action 2026-07-20 23:59:07 -05:00
hz c2d000cc48 Add automated UAT smoke tests 2026-07-20 23:54:11 -05:00
hz 121e80b2ea Prefer high-performing distractors 2026-07-20 02:44:58 -05:00
hz dae3a31b71 Add legal consent and reliable external redirects 2026-07-20 02:16:20 -05:00
hz f93b7ac380 Complete resilient Steam login flow 2026-07-20 00:30:06 -05:00
hz d176640cff Rebrand app as RanaZe Step 3 Trainer 2026-07-20 00:04:29 -05:00
hz 743399f647 Improve donation defaults and light contrast 2026-07-19 23:12:51 -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 819a108451 Make note save status transient 2026-07-18 22:25:08 -05:00
hz d0bb271b14 Add synced user notes 2026-07-18 22:22:29 -05:00
hz a232e18c46 Add session expiry renewal flow 2026-07-18 15:53:11 -05:00
hz 8c349314ad Refine question toolbar icons and pause menu 2026-07-18 15:37:05 -05:00
hz eb8747d48e Correct question toolbar controls 2026-07-18 15:29:21 -05:00
hz ea36692c40 Simplify question toolbar branding 2026-07-18 15:22:48 -05:00
hz 102933db44 Count up question bank answer timer 2026-07-18 15:14:48 -05:00
hz c8c877a3a5 Reorder header theme and account controls 2026-07-18 15:01:04 -05:00
hz dca09d818f Launch question bank directly from navigation 2026-07-18 14:57:33 -05:00
hz 33e461fd36 Show blinking caret in authentication fields 2026-07-18 14:45:59 -05:00
hz 722d91fe94 Simplify application header 2026-07-17 21:57:21 -05:00
hz fd372532b5 Fix remaining web study mode artifacts 2026-07-16 23:28:19 -05:00
hz ae283c2243 Fix narrow web layouts and loader branding 2026-07-16 23:07:26 -05:00
hz a778a680e0 Redesign exam and CCS experiences 2026-07-16 22:42:03 -05:00
hz c8bfc26645 Implement nested question remediation and review content 2026-07-16 21:46:56 -05:00
hz 6d1787b3eb Redesign study navigation and light theme 2026-07-16 02:37:37 -05:00
hz aec56f168e Add general app feedback reporting 2026-07-15 20:55:13 -05:00
hz 98fa98b5b1 Make question loading resilient to network failures 2026-07-15 20:32:04 -05:00
hz 17c136ef40 Fix question review interactions 2026-07-15 20:19:47 -05:00
hz d73fd5f2cf Move outcome calibration to profile 2026-07-14 22:14:38 -05:00
hz 3b946c2bc5 Move simulation history into profile 2026-07-14 21:38:03 -05:00
hz 705f079997 Add functional simulation question review 2026-07-14 17:49:23 -05:00
hz 8aaf7d61e9 Improve question review and image handling 2026-07-14 16:02:14 -05:00
hz 7529ed5863 Add post-answer review and per-question loading 2026-07-14 15:34:38 -05:00
hz abbe6cf9f8 Add persistent light and dark themes 2026-07-14 13:39:42 -05:00
hz 93154d5925 Add variable question distractor pools 2026-07-13 10:15:05 -05:00