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.
This commit is contained in:
hz
2026-07-21 15:08:52 -05:00
parent 29b89dc404
commit 48a8c8361d
41 changed files with 4458 additions and 8 deletions
+23
View File
@@ -0,0 +1,23 @@
extends SceneTree
const NavigationRoutes := preload("res://scripts/ui/navigation_routes.gd")
var failures := 0
func _initialize() -> void:
_assert(NavigationRoutes.key_for_screen("flashcards_hub") == "flashcards",
"the flashcards library screen should activate the Flashcards nav entry")
_assert(NavigationRoutes.key_for_screen("flashcards_study") == "flashcards",
"the flashcards study screen should activate the Flashcards nav entry")
_assert(NavigationRoutes.key_for_screen("dashboard") == "home",
"unrelated routes should be unaffected by the new flashcards prefix rule")
quit(1 if failures > 0 else 0)
func _assert(condition: bool, message: String) -> void:
if condition:
return
failures += 1
push_error(message)