A flashcard application for learning Russian letters and simple words with intelligent progress tracking, spaced repetition, contextual learning, and word frequency-based selection.
- Letter Fill-in Exercises: Practice Russian letters by filling in missing letters in simple words
- Sentence Completion Exercises: Learn words in context by completing Russian sentences
- Word Frequency-Based Selection: Learn high-frequency words first for faster practical communication
- CEFR Level Tracking: Progress through standardized language levels (A1-C2)
- SM-2 Spaced Repetition System: Optimized review scheduling based on memory strength for long-term retention
- Contextual Learning: See example sentences and definitions after each exercise to improve retention
- Audio Pronunciation: Listen to Russian word pronunciation with text-to-speech support
- Progress Tracking: Automatically tracks which letters you struggle with most
- Adaptive Lesson Length: Lessons get shorter when you make many errors, longer when you're doing well
- LM Studio Integration: Optionally uses LM Studio to generate contextual sentences and lessons
- No External Dependencies: Built using only Node.js built-in modules
The application prioritizes high-frequency words based on Russian word frequency lists, allowing beginners to achieve practical communication ability faster. Research shows that the most common 1,000 words account for approximately 80% of everyday conversation.
Key Features:
-
CEFR Level System: Words are organized by internationally recognized levels:
- A1 (Beginner): 297 most frequent words - Basic everyday expressions
- A2 (Elementary): 276 words - Common phrases and routine tasks
- B1 (Intermediate): 208 words - Work, school, leisure topics
- B2 (Upper Intermediate): 110 words - Complex topics and abstract concepts
- C1 (Advanced): 98 words - Demanding topics and nuanced expression
- C2 (Mastery): 133 words - Native-like proficiency
-
Automatic Level Progression: Advances to the next level when 80% of current level words are mastered
-
Manual Level Selection: Choose your starting level based on your knowledge
-
Vocabulary Statistics: Track your progress across all CEFR levels
-
Smart Word Selection: Prioritizes high-frequency words while still focusing on your problematic letters
Research Backing:
- JSTOR: Word frequency is a strong predictor of vocabulary acquisition
- Reading Matrix (2024): High-frequency words provide greater communicative value
- CEFR Framework: Standardized levels used across European language education
The application now uses the proven SM-2 algorithm (SuperMemo 2) to optimize long-term retention:
- Intelligent Scheduling: Each letter-word-position combination is tracked individually with its own review schedule
- Memory-Based Reviews: Items are scheduled based on how well you remember them
- 4-Button Rating System: After each answer, rate your recall:
- Again (quality=1): Forgot completely - resets the item
- Hard (quality=3): Recalled with difficulty - increases interval slightly
- Good (quality=4): Recalled with effort - standard interval increase
- Easy (quality=5): Recalled instantly - larger interval increase
- Prioritized Reviews: Due items appear first in lessons, ensuring you review at optimal times
- Progress Tracking: See your learning progress across four stages:
- New: Items you haven't reviewed yet
- Learning: Items with intervals less than 21 days
- Young: Items with intervals between 21-60 days
- Mature: Items with intervals over 60 days
Research shows that SM-2-based systems can improve long-term retention by 30-50% compared to fixed-interval review systems.
Research shows that learning words in context improves retention by 40-60%. After completing each exercise, you'll see:
- Word Definition: Translation, part of speech, and gender (for nouns)
- Example Sentences: Real Russian sentences showing how the word is used
- English Translations: Clear translations to understand meaning
The application includes:
- 58 words with detailed definitions
- 171 example sentences at beginner (A1-A2) level
- Two exercise types mixed throughout lessons:
- 60% Letter fill-in exercises
- 20% Sentence completion exercises
- 20% Future exercise types
The application includes built-in audio pronunciation support to help you learn Russian word pronunciation:
- π Audio Button: Click the speaker icon next to any Russian word to hear its pronunciation
- Keyboard Shortcut: Press the Space bar to play audio pronunciation of the current word
- Customizable Settings:
- Enable/disable audio
- Autoplay pronunciation on new words
- Adjust speech rate (0.5x - 2.0x)
- Select from available Russian voices
- Browser Compatibility: Uses the Web Speech API, supported by Chrome, Firefox, Safari, and Edge
- Graceful Degradation: Works even if Russian voices aren't available (falls back to default voice)
- Node.js v20 or higher
- Clone the repository:
git clone https://github.com/Xoin/Flashcards.git
cd Flashcards- No npm install needed - the project uses only built-in Node.js modules!
- Start the server:
npm start- Open your browser and navigate to:
http://localhost:3000
- Start learning Russian!
If this is your first time running the application, you should load the initial content database:
node migrate.js
node migrate-frequency.jsThis will import:
- 58 word definitions with translations and grammatical information
- 171 example sentences to provide contextual learning
- 989 frequency-ranked words with CEFR level classifications
The migration scripts will only run once - they skip if data already exists.
Note: The frequency data is essential for the word frequency-based selection feature. Running migrate-frequency.js will load approximately 1,000 words ranked by frequency and tagged with CEFR levels.
For enhanced lesson and sentence generation, you can optionally connect to LM Studio:
- Install and run LM Studio
- Load a language model
- Start the local server (default: http://localhost:1234)
- The application will automatically use LM Studio when available
LM Studio can be used to:
- Generate new contextual sentences for words
- Create custom lessons based on focus areas
If LM Studio is not available, the application will use a built-in set of Russian words and sentences.
- Practice: Fill in missing letters in Russian words or complete Russian sentences
- Rate Your Memory: After each answer, rate how well you recalled it (Again/Hard/Good/Easy)
- Listen: Click the π button to hear Russian pronunciation
- Learn Context: After each exercise, see the word's definition and example sentences
- Spaced Repetition: The SM-2 algorithm schedules your next review at the optimal time
- Progressive Learning: Items you struggle with appear more frequently until mastered
The application uses a mix of exercise types to optimize learning:
- Letter Fill-in (60%): Practice individual letters by filling in blanks in words
- Sentence Completion (20%): Learn words in context by completing sentences
- Future exercises (20%): Reserved for planned features like word recognition
After completing each exercise (correct or incorrect), a context panel appears showing:
- The word in Russian with its English translation
- Grammatical information (part of speech, gender for nouns)
- An example sentence in Russian with English translation
- Option to view more example sentences
To access audio settings:
- Click the βοΈ Settings button in the top-right corner
- Adjust audio preferences:
- Toggle "Enable Audio" on/off
- Enable "Autoplay on New Word" for automatic pronunciation
- Adjust speech rate using the slider (slower for beginners, faster for advanced learners)
- Select your preferred Russian voice (if multiple are available)
- Click "Test Audio" to preview your settings
Keyboard Shortcuts:
- Press Space to play audio for the current word
User progress, mistakes, SRS items, word definitions, example sentences, and frequency data are stored in flashcards.json in the project directory. This file is automatically created on first run and includes:
- Letter mistakes tracking (legacy)
- SRS items with individual review schedules
- User progress statistics
- Audio settings preferences
- Word definitions database
- Example sentences database
- Frequency-ranked words with CEFR levels
- User level tracking and progression
The application provides several REST API endpoints:
GET /api/lesson- Get a new lesson with frequency-based and SRS-based word selection (prioritizes due items and high-frequency words)
POST /api/review- Submit a review rating for an item- Body:
{ itemId, quality (1-5), responseTime (optional) }
- Body:
GET /api/due-count- Get count of items due for reviewGET /api/srs-stats- Get SRS statistics (new, learning, young, mature)
POST /api/mistake- Record a letter mistakePOST /api/progress- Update session progressGET /api/statistics- Get mistake statistics
GET /api/settings- Get user settingsPOST /api/settings- Save user settings
GET /api/user/level- Get user level information and vocabulary distributionPOST /api/user/level- Update user level- Body:
{ level: 'A1'|'A2'|'B1'|'B2'|'C1'|'C2' }or{ auto_progress: boolean }
- Body:
GET /api/words/level/:level- Get words for a specific CEFR levelGET /api/statistics/vocabulary-distribution- Get vocabulary distribution across all levels
GET /api/word/:word/definition- Get word definition and translationGET /api/word/:word/sentences- Get example sentences for a wordPOST /api/generate-sentence- Generate new sentence using LM Studio (optional)
This project is backed by comprehensive research on language acquisition and cognitive science. We've researched:
- Spaced repetition algorithms (SM-2, FSRS)
- Retrieval practice and flashcard effectiveness
- Russian language acquisition pedagogy
- Cyrillic alphabet learning challenges
- Contextual learning and word frequency optimization
See our research documentation:
- π Research Summary - Quick overview of findings and recommendations
- π Full Research Document - Comprehensive research with citations
- π‘ Proposed Features - Detailed specifications for planned enhancements
Key recommendations from research:
- SM-2 Spaced Repetition - 30-50% better retention
- Audio Pronunciation - Critical for Cyrillic letter-sound mapping
- Contextual Learning - 40-60% improvement with example sentences
- Word Frequency - Faster path to practical communication
MIT