Add flashcards script by RibbonUltra ยท Pull Request #524 ยท wasmerio/Python-Scripts

@@ -0,0 +1,73 @@ # Python Interactive Flashcards
A lightweight, desktop-based flashcard application built with Python and Tkinter. This tool utilizes a Spaced Repetition System (SRS) to help you memorize information efficiently by scheduling reviews based on how well you remember each card.
### ๐Ÿš€ Features
* **Dual Modes:** Separate workflows for **Learning** (new cards) and **Reviewing** (existing cards). * **Spaced Repetition Algorithm:** Automatically calculates the best time to review a card based on your performance (intervals of 1, 3, 5, 7, and 15 days). * **Persistent Storage:** All data is saved locally in a JSON file, so you never lose your progress. * **Card Management:** Add, Edit, and Delete cards directly within the app. * **Progress Tracking:** The main menu displays exactly how many cards are pending for learning or review. * **Clean Interface:** Simple, distraction-free GUI.
### ๐Ÿ› ๏ธ Running
1. **Clone the Repository or Download the Script** 2. **Navigate to the Script Location** 3. **Run the Script**
### ๐Ÿ“– Usage Guide
#### 1. The Main Menu
Upon launching, you will see the dashboard.
* **New Learning:** Shows the count of cards you have created but haven't studied yet. * **To Review:** Shows the count of cards due for review today (based on the SRS algorithm).
#### 2. Adding Cards
* Click **"โž• Add Card"** in the main menu. * Enter the **Question** (Front) and **Answer** (Back). * Click **Save**. You can add multiple cards in a row.
#### 3. Learning Mode (New Cards)
* Click **"๐Ÿ†• Start Learning"**. * This mode presents cards you have never seen before. * Click the card to flip it and reveal the answer. * Click **"โญ Next"** to mark the card as "Learned." * *Note: Once learned, a card enters the review cycle and will be scheduled for its first review tomorrow (Day +1).*
#### 4. Review Mode (Memory Training)
* Click **"๐Ÿ”„ Start Review"**. * This mode only shows cards that are due for review today or are overdue. * **Flip the card** to see the answer. You will see two options: * **๐ŸŸฉ Remembered:** The card is upgraded. The interval until the next review increases (e.g., 3 days 5 days 7 days). * **๐ŸŸฅ Forgot:** The card level is reset to 0. It will be scheduled for review again tomorrow to reinforce memory.
#### 5. Managing Cards
While inside the Learning or Review interface, you can manage the current card using the buttons at the bottom:
* **๐Ÿ—‘๏ธ Delete:** Permanently removes the current card. * **โœ๏ธ Edit:** Allows you to modify typos or update the question/answer text.
### ๐Ÿง  How the Algorithm Works
The app uses a simplified interval scheduling logic to maximize retention:
1. **New Card:** Becomes due **1 day** after first learning. 2. **Review Level 0:** If remembered due in **3 days**. 3. **Review Level 1:** If remembered due in **5 days**. 4. **Review Level 2:** If remembered due in **7 days**. 5. **Review Level 3+:** If remembered due in **15 days** (Max interval). 6. **Forgot:** If you mark a card as "Forgot" at any stage, it resets to **Level 0** and becomes due tomorrow.
### ๐Ÿ“‚ Data Storage
* Your cards are stored in a file named `flashcards_data.json` located in the same directory as the script. * **Do not delete this file**, or you will lose your flashcards and progress history. * You can back up this file to save your data.