Skip to main content

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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyzzen-0.1.0.tar.gz (280.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyzzen-0.1.0-py3-none-any.whl (286.3 kB view details)

Uploaded Python 3

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

Hashes for pyzzen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9b5ab8c3e259773f6786cf8643bf6ed947d16c9fe374d3a8237f3b3daf518a1a
MD5 2101060f44947afba435976f8cb6977b
BLAKE2b-256 72a530b8a274cd0a54acd5160419fb876520a5f5eb07ad2e7ba4c74e6ee629f8

See more details on using hashes here.

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

Hashes for pyzzen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 026a3fa4f3ec20e6471ce52d5785e24e5c30788877b74766844bd692acfdcedb
MD5 4c7ee15358cd8e2fe659dd960c7f7dde
BLAKE2b-256 c523cad350ab00054ea3492a192a208ba6e8361329a2a8726948b3e8dfd8323a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page