How enzouk/runora works
Runora is a cross-platform flashcard app centered on a study loop: users organize decks and cards, review scheduled prompts, rate recall, and have FSRS determine future intervals. The React app also supports configurable note types, media, import/export, addons, settings, and Google Drive sync. The README lists statistics as a capability, but the supplied tree and excerpts do not establish a distinct statistics implementation. Some subsystem links below are supported by the SOURCE INDEX rather than inspected source excerpts.
Main entry points: App.tsx App coordinator · storage.ts Collection storage · StudyView.tsx Study session · gdriveSync.ts Google Drive sync
Components 24
App and authoring
- App coordinator
src/App.tsx - Deck management
src/components/decks/DeckList.tsx - Deck options
src/components/decks/DeckModal.tsx - Card browser
src/components/cards/CardBrowser.tsx - Card editor
src/components/cards/CardEditorModal.tsx - Note types
src/components/notetypes/NoteTypeManager.tsx
Study and scheduling
- Study session
src/components/study/StudyView.tsx - Card rendering
src/components/study/CardContentRenderer.tsx - Review ratings
src/components/study/RatingButtons.tsx - FSRS scheduler
src/fsrs/algorithm.ts - Interval formatting
src/fsrs/timespan.ts
Local data and media
- Collection storage
src/services/storage.ts - Cloze templates
src/services/clozeService.ts - Media storage
src/services/mediaStore.ts - Import and export
src/services/exportImport.ts - Settings
src/components/settings/SettingsModal.tsx
Extensions and sync
- Addon manager
src/components/addons/AddonsView.tsx - Addon runtime
src/services/addonSystem.ts - Addon storage
src/services/addonStorage.ts - Addon filesystem
src/services/addonFs.ts - Sync controls
src/components/sync/useDriveSync.ts - Google Drive sync
src/services/gdriveSync.ts
Other components
- Learner
- Google Drive
Connections 35
- Learner → App coordinator: uses
- App coordinator → Deck management: shows
src/App.tsx - App coordinator → Deck options: opens
src/App.tsx - App coordinator → Card browser: shows
src/App.tsx - App coordinator → Card editor: opens
src/App.tsx - App coordinator → Note types: shows
src/App.tsx - App coordinator → Study session: shows
src/App.tsx - App coordinator → Collection storage: reads
src/App.tsx - App coordinator → Import and export: imports
src/App.tsx - Card browser → Collection storage: reads
src/components/cards/CardBrowser.tsx - Card browser → Cloze templates: uses
src/components/cards/CardBrowser.tsx - Card browser → Media storage: uses
src/components/cards/CardBrowser.tsx - Card browser → Card editor: opens
src/components/cards/CardBrowser.tsx - Card editor → Collection storage: uses
src/components/cards/CardEditorModal.tsx - Card editor → Addon runtime: uses
src/components/cards/CardEditorModal.tsx - Note types → Collection storage: reads
src/components/notetypes/NoteTypeManager.tsx - Study session → FSRS scheduler: schedules
src/components/study/StudyView.tsx - Study session → Collection storage: uses
src/components/study/StudyView.tsx - Study session → Cloze templates: uses
src/components/study/StudyView.tsx - Study session → Card rendering: renders
src/components/study/StudyView.tsx - Study session → Review ratings: shows
src/components/study/StudyView.tsx - FSRS scheduler → Interval formatting: formats intervals
src/fsrs/algorithm.ts - Collection storage → Cloze templates: uses
src/services/storage.ts - Collection storage → Media storage: uses
src/services/storage.ts - Settings → Collection storage: uses
src/components/settings/SettingsModal.tsx - Settings → Google Drive sync: uses
src/components/settings/SettingsModal.tsx - Settings → Import and export: uses
src/components/settings/SettingsModal.tsx - Addon manager → Addon runtime: manages
src/components/addons/AddonsView.tsx - Addon runtime → Addon storage: loads data
src/services/addonSystem.ts - Addon storage → Addon filesystem: reads files
src/services/addonStorage.ts - Sync controls → Google Drive sync: invokes
src/components/sync/useDriveSync.ts - Google Drive sync → Collection storage: uses
src/services/gdriveSync.ts - Google Drive sync → Media storage: uses
src/services/gdriveSync.ts - Google Drive sync → Import and export: uses
src/services/gdriveSync.ts - Google Drive sync → Google Drive: syncs with