dsci524_group13_quizit¶
Usage |
Development |
Release |
|---|---|---|
A python package for creating and taking quizzes.
Summary¶
Project Summary¶
This Python package is designed to help users to create custom build quizzes. The package allows users to load multiple-choice and/or short-answer question sets. It will then randomly select a user-defined number of questions from the question sets and generate a quiz. Quiz scores and time used will be displayed at the end of the quiz. Optionally, users can also have their quiz scores and incorrect and correct questions in a text file.
Package Functions¶
The package consists of three classes:
Quizit—— The main class for creating and taking quizzes. This class has three methods:
load_questions—— Allows users to load in their own multiple-choice or short answer question setsload_questions(questions: pd.DataFrame = None, input_file: str = None, question_type: QuestionType = None, has_header: bool = True, delimiter: str = None)
take_multiple_choice—— Allows users to take a multiple-choice quiz with optional result tracking.take_multiple_choice(n, save_questions=False, save_score=False, file_path=False)
take_short_answer—— Allows users to take a short answer quiz with optional result tracking.take_short_answer(n, save_questions=False, save_score=False, file_path=False)
QuestionType—— This class is used inload_questionsto specify the type of quiz questions (multiple-choice or short-answer).QuizResult—— This class stores the quiz results returned by thetake_multiple_choiceandtake_short_answerfunctions. It includes the score, time used, question summary and question type of the quiz.
Python Ecosystem Integration¶
dsci524_group13_quizit is a fantastic tool for both educators and learners, providing a seamless way to create and take quizzes. Unlike other Python packages such as quizzer and QuizzingPackage, this package stands out by supporting both multiple-choice and short answer formats. Additionally, it offers the unique feature of saving quiz results to a text file, making it an invaluable resource for tracking progress and performance.
Whether you’re teaching a class or studying for an exam, dsci524_group13_quizit is designed to make the quiz experience as smooth and effective as possible.
Installation¶
$ pip install dsci524_group13_quizit
Documentation¶
To learn more about interacting with this package visit the online documentation.
Usage¶
Below are outlined steps on how to interact with this package as a user. The tutorial assumes you are using Python and have already installed the package.
Import the package and necessary modules:
from dsci524_group13_quizit import Quizit, QuestionType
Load your question sets: ensure the file paths exist
mcq_file_path = "tests/test_data/multiple_choice.csv" shrtq_file_path = "tests/test_data/short_answer.csv" quiz = Quizit() mc_questions = quiz.load_questions(input_file=mcq_file_path, question_type=QuestionType.MULTIPLE_CHOICE, delimiter=";") shrt_questions = quiz.load_questions(input_file=shrtq_file_path, question_type=QuestionType.SHORT_ANSWER, delimiter=";")
Take a multiple-choice quiz:
quiz.take_multiple_choice(n=1)
Take a short-answer quiz:
quiz.take_short_answer(n=1)
These steps will guide you through the basic usage of the dsci524_group13_quizit package. For more detailed information, refer to the online documentation.
Contributors¶
Mavis Wong(@MavisWong295), Shangjia Yu(@shangjiayuu), Sopuruchi Chisom(@cs-uche)
Contributing¶
Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
License¶
dsci524_group13_quizit was created by Mavis Wong, Shengjia Yu, Sopuruchi Chisom.
The software code is licensed under the terms of the GNU General Public License v3.0.
The analysis reports and documentation are licensed under the terms of the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Credits¶
dsci524_group13_quizit was created with cookiecutter and the py-pkgs-cookiecutter template.
Changelog¶
All notable changes to this project will be documented in CHANGELOG.md.