Video Demo: Watch Here
Flashcards is a Python-based application developed as the final project for CS50’s Introduction to Programming with Python. The app enables users to create, manage, and interact with flashcard decks, designed for learning and reviewing information effectively.
- Custom Decks: Create flashcard decks by defining terms and corresponding definitions.
- Deck Browser: View, edit, or delete existing flashcard decks.
- Game Mode: Play a "guessing game" with random flashcards from a selected deck. Players have 3 lives to correctly match all terms and definitions.
- Study Mode: A relaxed mode where users can go through their flashcards without penalties. Cards can also be edited directly in this mode.
- CSV-Based Storage: Flashcard decks are stored in easily accessible CSV files for management and sharing.
- Default Deck: Includes a preloaded math deck for immediate gameplay.
- CSV for Data Storage: Chosen for its simplicity and ease of use, given the small scale of the project.
- Command-Line Interface: A terminal-based menu system ensures a straightforward user experience without requiring additional dependencies for graphical interfaces.
- Error Handling: User inputs are validated to ensure a smooth experience, including standardized inputs for terms and definitions to avoid case-sensitivity issues.
Planned enhancements include:
- Database Integration: Replace CSV storage with a more robust database system.
- Graphical User Interface (GUI): Add a user-friendly graphical interface.
- Deck Enhancements:
- Rename decks.
- Mark decks as favorites.
- Delete individual cards from decks.
- Game Mode Settings:
- Match either terms or definitions.
- Add a time limit for answers.
- Enable or disable case-sensitivity.
- New Game Modes: Implement a memory game (e.g., matching pairs).
flashcards.py
: Core application logic, including menu navigation, deck management, and gameplay.README.md
: Documentation for the project.requirements.txt
: List of dependencies (if any).test_flashcards.py
: Unit tests for key functionality.
- Clone the repository to your local machine:
git clone https://github.com/your-username/CS50-Flashcards-v1.0.git cd flashcards
- Install the required Python libraries:
pip install -r requirements.txt
- Run the application using Python:
python flashcards.py
This project is open source and distributed under the MIT License. Feel free to use, modify, and distribute it as long as the original license is included.