It may seem obvious that there are many other tools for creating quizzes, but interestingly the quiz creation tools out there all have one thing in common: Web-based GUI. Quizagator is a web application that provides an interface for creating quizzes without the overhead of a GUI making quizzes creation tedious and--in the case that the design of the GUI tool changes--confusing. By allowing quiz creation through a text-based syntax it is possible to make quiz creation lightning fast and much more consistent than fiddling with GUI tools. Not to mention a text-based quiz creation allows for easy question duplication and modification. Quizagator supports uploading quizzes in CSV format and allows for grading with a custom grading program. The tool uses Flask with noSQL to manage quizzes and results, as well as storing any custom grading tools uploaded to the quizzes.
Quizagator uses it's own custom quiz creation syntax in CSV format that is
designed to be programmer-friendly to allow for more mutable quiz creation that
comes with all the benefits a text-based system allows, namely the ability to
use your favorite text editor rather than the ever-present GUI's. It also
supports offline editing and the ability to edit all questions at once.
Quizagator supports two question types, open-ended and multiple choice. Use 0
to identify the question type as open-ended, and 1
to identify it as multiple
choice.
Quiz questions look like this:
"QuestionType","QuizQuestion?","Answer1","Answer2","Answer3","Answer4","CorrectAnswer"
An example CSV can be seen here:
"1","What's the best quiz creation tool?","Quizagator","Google Forms","Sakai Quizzes","Quiz Maker","1"
"0","What makes a quiz tool good?","","","","",""
Once a quiz has been created a grading program can be uploaded to implement a custom grading scheme for the quiz. Quizagator will run the program on the results of the quiz and return the output.
Quizagator uses a Pipenv-built virtual environment
to standardize the execution of the project. If you don't have pipenv we highly
recommend installing it using pip
:
pip install pipenv
If for some reason this doesn't work for you, you can check out the pipenv github.
After cloning the repo for the first time, run
pipenv install --dev
to install the developer and default packages. To get a list of scripts for the
project, inspect the [scripts]
tag in Pipfile
:
cat Pipfile
Finally, to run the project locally in development mode:
pipenv run server
Or use the following to see all the options:
pipenv run python run.py --help
There is a docker image published to
gatoreducator/quizagator.
There are two main parts of configuration: specifying a secret in the
FLASK_SECRET_KEY
environment variable, and forwarding the desired outer port
to 80
inside the container. The following command does both:
docker run --name quizagator -p 5000:80 -e FLASK_SECRET_KEY=d2dbb3 gatoreducator/quizagator:0.0.1-dev
Additionally, developers can use pipenv run create-image
and pipenv run image
to run a development container -- this is not to be deployed to
production.
Check out our contributors!
Joshua Yee 💻 🚇 👀 📖 | Saejin Mahlau-Heinert 💻 🚇 📦 👀 | Carson Quigley 📖 💻 | Matt 📖 💻 | Andrew Everitt 💻 📖 | Karol Vargas 📖 💻 |
Don't know what the emoji's mean? Check out the key!