Flashy is a language learning application that helps you learn and memorize new words using flashcards. The application supports a dynamic set of flashcards and allows users to mark words as known, flip cards to see translations, and restart progress.
- Flashcard Display: Shows a new flashcard every few seconds with an English word.
- Card Flipping: Flip the card to see the translation in Russian.
- Mark as Known: Mark a word as known, removing it from the learning pool.
- Restart Progress: Option to restart learning, clearing all progress.
- Dynamic Learning Set: Updates the set of words to learn based on user progress.
-
Clone the repository:
git clone https://github.com/yourusername/flashy.git cd flashy
-
Install the required dependencies: Ensure you have
pandas
andtkinter
installed in your Python environment.pip install pandas
-
Prepare your data: Ensure you have the necessary CSV files and images:
data/en_words.csv
: The original set of English-Russian word pairs.data/words_to_learn.csv
: Will be created and managed by the application to track learning progress.images/card_front.png
: Image for the front of the card.images/card_back.png
: Image for the back of the card.images/right.png
,images/wrong.png
,images/flip.png
,images/restart.png
: Button images.
-
Run the application:
python flashy.py
-
Interact with the application:
- Click the "Right" button if you know the word.
- Click the "Wrong" button to skip to the next word.
- Click the "Flip" button to flip the card and see the translation.
- Click the "Restart" button to restart your progress.
next_card()
: Displays the next word in the learning set.flip_card()
: Flips the card to show the translation.is_known()
: Removes the current word from the learning set if marked as known.flip_back()
: Manually flips the card back to the English word.restart()
: Restarts the learning progress by removing thewords_to_learn.csv
file.
- The application uses Tkinter for the graphical interface.
- Images are loaded using
PhotoImage
and placed on aCanvas
widget. - Buttons are configured with images and linked to their respective functions.
Feel free to submit issues and enhancement requests.
This project is licensed under the MIT License.