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
Metadata
Release files for quizr-cli 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quizr_cli-1.0.0.tar.gz | 45.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quizr_cli-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 63.7 kB
Release files / quizr_cli-1.0.0.tar.gz
| Download URL | quizr_cli-1.0.0.tar.gz |
|---|---|
| Size | 45.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e7cc84886f8a4a67c460c894cb70343989591da5cb270c0a8c67636a86cf366
|
|
BLAKE2b-256 checksum How to use checksums |
8c02ded9723119de063572f2ce1de724c193c33bc37034b7592b0281c429bdd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / quizr_cli-1.0.0-py3-none-any.whl
| Download URL | quizr_cli-1.0.0-py3-none-any.whl |
|---|---|
| Size | 18.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2b25a70bb6c7107f27218e0a255b84aed07c5cee458cf7b7838a26b2f15ff9f
|
|
BLAKE2b-256 checksum How to use checksums |
6bbc2934ad1fe88f360572eddab34045ae216b513c51bec6c037456ec38b054d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|