A simple, elegant Python framework for creating and running interactive quizzes
Project description
Quizy
A lightweight, API-first Python quiz framework for creating interactive quizzes and assessments. Quizy provides a clean, extensible interface without prescriptive UI constraints, allowing you to build quiz applications that fit your specific needs.
Features
- Multiple Question Types: Multiple choice, multiple select, short text, true/false, and matching questions
- Flexible API: Built as a library, not a full application—you control the presentation layer
- Timer Support: Per-question and quiz-level time limits with countdown tracking
- Result Tracking: Comprehensive quiz results with scoring, skipped questions, and timeout metrics
- Type Hints: Full type hint support for IDE autocomplete and validation
- No External Dependencies: Pure Python implementation (Python 3.8+)
Quick Start
from quizy import MultipleChoiceQuestion, Quiz
# Create a question
question = MultipleChoiceQuestion(
text="What is the capital of France?",
options=["Paris", "London", "Berlin"],
correct_option=0
)
# Create and run a quiz
quiz = Quiz(questions=[question])
result = quiz.run(answer_provider=lambda q: 0)
print(f"Score: {result.score_percentage}%")
Documentation
Complete documentation is available in the docs folder:
- Question Types Guide - All supported question types with code examples
- Usage Examples - Real-world examples including timers, callbacks, and web integration
- API Reference - Complete API documentation with constructors and methods
Installation
pip install -r requirements.txt
Running Examples
Try the included example quizzes:
python -m quizy.quiz_101
python -m quizy.quiz_102
Running Tests
pytest tests/
License
MIT
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 quizy-0.2.0.tar.gz.
File metadata
- Download URL: quizy-0.2.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a345c36a3856455642ff99e564a8b4977e3f48a16106761ae58e945f7f0a879
|
|
| MD5 |
09ed3a1aa5ea534e225c385c42298c14
|
|
| BLAKE2b-256 |
104212b7d81cfc975acb165dea8d93929b58eb9fed7176dc56d73ac33d2c542a
|
File details
Details for the file quizy-0.2.0-py3-none-any.whl.
File metadata
- Download URL: quizy-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac24127bfddf975e3ab927bd0e63d20627d80167f9351fba7f058b2fb2d8a034
|
|
| MD5 |
5d62c939fad68b354f686d6f5e025121
|
|
| BLAKE2b-256 |
4361ee509697f9581c5f34fd11c550fcf082462801fb1e0a1ec24a1f5577bb79
|