A quiz app
Project description
Quizapp 
The quizzing app is an interactive application that enables teachers to create and manage quizzes, and students to take each quiz. Each quiz must be multiple choice and contain a single answer. Upon quiz completion, students can view their quiz score and score averaged across all quizzes. Teachers can view all student quiz scores. Some features of quizapp include:
- The student selecting which course they want to take a quiz for.
- Saving the students score for each quiz and storing in a file for a given course.
- Outputting the student's average quiz score of all quizzes taken by a given student to the screen.
- Teachers can create new quizzes.
- Teachers can view and modify student quiz scores.
- Teachers can calculate and display overall quiz statistics for any course
Project Structure
Main package name is quizapp. It contains a main.py module and two sub-packages: student and teacher. The student sub-package contains two modules: readquiz.py and takequiz.py. The teacher sub-package contains two modules: createquiz.py and checkstudentscores.py. There is an assets directory which contains data files for quizzes and scores.
student sub-package
The student sub-package contains two modules to handle the flows that a student user will interact with:
-
readquiz.py:
This module involves reading individual quizzes, enabling student users to complete them. This is accomplished with 2 classes and 4 functions:
-
class Quiz: This consists of a quiz object with three attributes, the name (i.e. course code) of a quiz, the individual problems in a quiz, and the total number of problems.
-
class Problem: This consists of a problem object with three attributes, the question itself, the multiple choice options for a question, and the answer.
-
read_quiz(): Individual quizzes stored as json files are outputted to the screen
-
get_available_courses(): Lists all available quizzes students can take
-
save_score(): Saves the score a student achieved into a csv file of student quiz scores
-
get_percentage(): Converts a students quiz score into a percentage.
-
-
takequiz.py:
This module handles the flow of student users taking quizzes. This is accomplished with 1 classes and 3 functions:
- class Student: This consists of a student object with two attributes, student name and student number
- student_handler(): Initializes a student's name and number into a Student class object
- start_quiz(): The function where a student actually completes the quiz
- select_quiz(): Displays all available quizzes then prompts a student to select a quiz to complete.
teacher sub-package
The teacher sub-package contains module to handle the flows that a user with teacher role will interact with. It contains two modules:
-
createquiz.py:
This module handles the workflow of creating a quiz through an interactive menu through which a teacher can add a quiz for a course. It achieves this using the following methods:
- create_quiz(): This serves as a driver function to create a quiz and then writes the quiz into a JSON file in the appropriate directory with the appropriate filename.
- questionInput(): Takes the user input for questions, options and the answer and creates an object for the same.
- create_score_csv(): Creates a template score file whenever a new quiz is added. After each student has taken the quiz, their score is saved to the file created using this method.
- convert_to_json(): Converts the quiz from a dictionary object to JSON object and writes object into a JSON file.
-
checkstudentscores.py:
This module handles the workflow of viewing the scores for the quiz by the teacher and also allows them to view other statistics like mean, minimum, maximum etc. It achieves this using the following methods:
- get_student_scores(): It displays the student's quiz score for a course by taking student number and course code as arguments.
- set_student_scores(): It modifies the student's score if there is an error in the quiz.
- quiz_score_statistics(): It calculates and display metrics like average, minimum, maximum etc. for the course grade of all students.
- score_driver(): This is the driver method allowing the teacher to view a students mark, modify a students mark, calculate quiz summary statistics, or leave the program.
- quiz_or_score(): This is the driver method directing teacher to create a quiz, check quiz score marks, or leave the program
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
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 quizapp-1.0.1.tar.gz.
File metadata
- Download URL: quizapp-1.0.1.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7151710cf020e56e65b718ef3384e5da3af4eec4038ac10793bde81951e9ccc
|
|
| MD5 |
6b6ad83f6056e22532509b523cecaf1b
|
|
| BLAKE2b-256 |
31738c922e6b5863aaf18ecb321988250b26f73e8b7438076864c15b91cad9d1
|
File details
Details for the file quizapp-1.0.1-py3-none-any.whl.
File metadata
- Download URL: quizapp-1.0.1-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b4487f760d8692fdb6e16c2766d47d7fdca2c436fc62537437f430ff068a12e
|
|
| MD5 |
ed4f300b5d50e15af2a381163f5f7ea3
|
|
| BLAKE2b-256 |
589127df230e2f5708f72b41367f9d20a448e2cc2310e7f1cbfd7814c49f4aa7
|