A command-line quiz tool with spaced repetition
Project description
QUIZR
A command-line quiz tool with spaced repetition and image support. Questions are stored in YAML files and organized in folders. Progress is tracked automatically.
Installation
Windows:
.\install.bat
Mac/Linux:
chmod +x install.sh
./install.sh
For development:
pip install -r requirements.txt
pip install -e .
Commands
List Available Quizzes
python -m quizr list
Lists all quizzes with their question counts in a hierarchical view.
Start Quiz
python -m quizr start <target> [mode]
Modes:
spaced(default) - Uses spaced repetition algorithmshuffle- Randomizes all questionsquick- Random subset of 10 questions
Examples:
python -m quizr start network+ # All Network+ quizzes in spaced mode
python -m quizr start comptia quick # Quick mode for CompTIA folder
python -m quizr start port_numbers # Specific quiz in spaced mode
View Progress
python -m quizr progress [target] # Global stats if no target
python -m quizr progress network+ # Stats for Network+ folder
python -m quizr progress port_numbers # Stats for specific quiz
Exit Session
Type any of: quit, abort, !quit, !abort, #quit, #abort
Quiz File Format
Questions are defined in YAML files. Each question requires a unique ID and must include prompt and answer. Images and strict matching are optional.
q_001:
prompt: "What is the default port for HTTP?"
answer: "80"
strict: true # Disables fuzzy matching for this question
q_002:
prompt: "What protocol uses port 443?"
answer: "HTTPS"
# Fuzzy matching enabled (90% threshold)
q_003:
image: "diagram1.png" # Must exist in /images
prompt: "What port is used for SSH in this diagram?"
answer: "22"
Directory Structure
workspace/
├── images/ # Required for image questions
│ └── diagram1.png # Use non-descriptive names
├── CompTIA/ # Example organization
│ ├── Network+/
│ │ ├── Port_Numbers.yaml
│ │ └── Protocols.yaml
│ └── Security+/
│ └── Cryptography.yaml
└── progress.yaml # Auto-generated progress data
Progress Tracking
Progress is stored in progress.yaml with this structure:
__meta__:
total_questions_seen: 45
total_reviews: 102
first_use: "2024-03-21"
last_session: "2024-03-21"
daily_log:
"2024-03-21": 32
CompTIA:
Network+:
Port_Numbers.yaml:
q_001:
attempts: 3
correct: 2
last_review: "2024-03-21"
last_correct: "2024-03-21"
Implementation Details
Spaced Repetition
- Questions are scheduled based on performance history
- Never-seen questions get highest priority
- Correct answers increase review interval
- Failed questions return to the queue sooner
Answer Evaluation
- Case-insensitive exact matching
- Fuzzy matching with 90% threshold (configurable)
- Strict mode available per question
- Immediate feedback with correct answers
Image Questions
- Images must be in
/imagesdirectory - Use non-descriptive filenames
- Opens with system default viewer
- Continues after image is closed
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quizr_cli-1.0.0.tar.gz.
File metadata
- Download URL: quizr_cli-1.0.0.tar.gz
- Upload date:
- Size: 45.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e7cc84886f8a4a67c460c894cb70343989591da5cb270c0a8c67636a86cf366
|
|
| MD5 |
d8a51e6bac254ccdb082b6de5a18e1ab
|
|
| BLAKE2b-256 |
8c02ded9723119de063572f2ce1de724c193c33bc37034b7592b0281c429bdd1
|
File details
Details for the file quizr_cli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: quizr_cli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2b25a70bb6c7107f27218e0a255b84aed07c5cee458cf7b7838a26b2f15ff9f
|
|
| MD5 |
ea7f9edb29aa8fdb8ce583a785bbeabd
|
|
| BLAKE2b-256 |
6bbc2934ad1fe88f360572eddab34045ae216b513c51bec6c037456ec38b054d
|