A small and simple self-hosted python quizz engine
Project description
Pyzzen
Pyzzen is a very simple and basic Python Quizz Engine. Its goal is to offer a simple, lightweight, and ephemeral online quizz platform.
Dependencies
Pyzzen has been tested on Python versions 3.10 and above.
Pyzzen depends on the following Python packages:
- quart
- quart_babel
- pydantic
- toml (for Python < 3.11)
Additionally, Pyzzen uses (and ships with) the following external projects:
- Simple.css (https://simplecss.org/) MIT Licensed
- MathJax (for math formulas in quizzes) (https://www.mathjax.org/) Apache-2.0 Licensed
Installation
Manual
You can manually install Pyzzen's dependencies and run it manually from the sources like any Python module.
Using pip and PyPI
pip install pyzzen
Usage
Launching
Launch Pyzzen like any other Python module with python -m pyzzen for example.
You can change the listening port (default 5000) and the admin password (default "CHANGE ME") using the --port and the --admin-pass options from the command line.
Creating a quizz
- login to the administration panel at
http://localhost:5000/admin(Change the URL if you deploy somewhere else) - Select and upload a quizz file. No formal specification has been made, but the sample__quizz.toml file in Pyzzen's repository covers what Pyzzen can do in quizzes.
- Select the newly created quizz in the list, and give the URL to participants
Running the quizz
The interface is quite straightforward, I might write a better guide in the future.
FAQ
Does Pyzzen asks its users to access resources elsewhere?
No. No CDN is used, no data is sent from the users to another party.
Does Pyzzen stores data on disk?
No. Pyzzen is Ephemeral. It also means than when you restart Pyzzen, you get a clean slate and everything is gone.
Is Pyzzen safe?
Reasonably yes. Although, the admin password is handled in plain text and few considerations has been made about cheating, and no authentication is made at all for the users. Users can, if savvy enough, make multiple accounts for example (by using separate browsers).
I would advise a teacher that wants to grade their students not to use Pyzzen.
Can I use HTTPS with Pyzzen?
Yes, for example by using a reverse proxy. Don't forget to forward the websocket at /ws_reload correctly.
What about i18n?
Pyzzen's interface is in English by default, and translations exist in French. Here is the documentation I use to update the translations:
https://quart-babel.readthedocs.io/en/latest/how_to_guides/using_translations.html
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 pyzzen-0.1.0.tar.gz.
File metadata
- Download URL: pyzzen-0.1.0.tar.gz
- Upload date:
- Size: 280.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b5ab8c3e259773f6786cf8643bf6ed947d16c9fe374d3a8237f3b3daf518a1a
|
|
| MD5 |
2101060f44947afba435976f8cb6977b
|
|
| BLAKE2b-256 |
72a530b8a274cd0a54acd5160419fb876520a5f5eb07ad2e7ba4c74e6ee629f8
|
File details
Details for the file pyzzen-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyzzen-0.1.0-py3-none-any.whl
- Upload date:
- Size: 286.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
026a3fa4f3ec20e6471ce52d5785e24e5c30788877b74766844bd692acfdcedb
|
|
| MD5 |
4c7ee15358cd8e2fe659dd960c7f7dde
|
|
| BLAKE2b-256 |
c523cad350ab00054ea3492a192a208ba6e8361329a2a8726948b3e8dfd8323a
|