In this project, you will develop a Python application that helps English learners review vocabulary using an interactive flashcard system, similar to Anki. The app will read vocabulary data from an Excel file (Vocab.xlsx) and allow users to review words and test their knowledge.
-
Data Handling:
- The vocabulary data will be stored in an Excel file (
Vocab.xlsx
). - The file contains multiple sheets, each representing a different unit (e.g., Unit1, Unit2, etc.).
- Each sheet includes the following columns:
- Word (English word)
- Persian Meaning (Translation)
- Part of Speech (Noun, Verb, Adjective, etc.)
- Definition (English explanation)
- Pronunciation (Phonetic representation)
- Examples (Example sentences in English)
- The vocabulary data will be stored in an Excel file (
-
Features to Implement:
- A Graphical User Interface (GUI) using Tkinter.
- A Main Menu where users can select a unit and choose between:
- Review Mode: Displays flashcards with the word first, then reveals its meaning, definition, and example sentences.
- Test Mode: Provides multiple-choice questions where users select the correct Persian meaning of a word.
- Randomization of flashcards and test questions.
- Navigation buttons to move between words/questions.
- A score tracking system in Test Mode.
- A back-to-menu option to allow users to return and select a different unit.
-
Additional Features (Optional, for Extra Credit):
- Implement progress tracking (saving scores for each unit).
- Add audio pronunciation support.
- Implement different test types (e.g., matching words with definitions).
- Improve the UI/UX with better design and animations.
- Python 3.x
- Tkinter (for GUI)
- Pandas (for reading Excel files)
- Random (for shuffling words and options)
- A fully functional Python script with a Tkinter GUI.
- The
Vocab.xlsx
file (sample data). - A short report (or README file) explaining how to run the application.
- Functionality (40%): Does the app work as expected?
- User Interface (20%): Is the GUI intuitive and easy to navigate?
- Code Quality (20%): Is the code well-structured, documented, and efficient?
- Creativity & Additional Features (20%): Have you added any extra features or improved the UX?