Skip to content

GatorIncubator/quizagator

Repository files navigation

Quiz-A-Gator

logo

Travis Build Status Docker Cloud Build Status codecov.io All Contributors made-with-python

A Quiz Creation Tool for File Upload and Custom Grading

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.

Pipenv

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.

Commands

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

Docker

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.

Contributors

Check out our contributors!

Joshua Yee
Joshua Yee

💻 🚇 👀 📖
Saejin Mahlau-Heinert
Saejin Mahlau-Heinert

💻 🚇 📦 👀
Carson Quigley
Carson Quigley

📖 💻
Matt
Matt

📖 💻
Andrew Everitt
Andrew Everitt

💻 📖
Karol Vargas
Karol Vargas

📖 💻

Don't know what the emoji's mean? Check out the key!