# quiz package

## Submodules

## quiz.admin module

## quiz.apps module

class `quiz.apps.``QuizConfig`(app_name, app_module)

  Bases: `django.apps.config.AppConfig`

  added quiz app in the configuration

  `name` = 'quiz'

## quiz.forms module

class `quiz.forms.``UploadFileForm`(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)

  Bases: `django.forms.forms.Form`

  This is class is used to create the form for uploading the quiz in CSV form by the instructor

  `base_fields` = {'file': <django.forms.fields.FileField object>}
  `declared_fields` = {'file': <django.forms.fields.FileField object>}
  property `media`

    Return all media required to render the widgets on this form.

## quiz.models module

class `quiz.models.``Permission`(*args, **kwargs)

  Bases: `django.db.models.base.Model`

  This class is used to create the userspermission table in database.Defines the permission of the user default permission is Student the admin can provide staff permission

  exception `DoesNotExist`

    Bases: `django.core.exceptions.ObjectDoesNotExist`

  exception `MultipleObjectsReturned`

    Bases: `django.core.exceptions.MultipleObjectsReturned`

  `id`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `objects` = <django.db.models.manager.Manager object>
  `role`

    The roles are Student(S) and Professor(P) default is student and admin allocates Professor role based on requests

  `userId`

    This is the foreign key pointing to Users table

  `userId_id`

class `quiz.models.``Questions`(*args, **kwargs)

  Bases: `django.db.models.base.Model`

  This class is used to create the Questions table in database.Contains info about the questions within a particular quiz and its attributes like socre and negative marks and correct answer

  exception `DoesNotExist`

    Bases: `django.core.exceptions.ObjectDoesNotExist`

  exception `MultipleObjectsReturned`

    Bases: `django.core.exceptions.MultipleObjectsReturned`

  `answer`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `cribs_set`

    Accessor to the related objects manager on the reverse side of a many-to-one relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Parent.children` is a `ReverseManyToOneDescriptor` instance.

    Most of the implementation is delegated to a dynamically defined manager class built by `create_forward_many_to_many_manager()` defined below.

  `explainations`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `marks`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `negative`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `objects` = <django.db.models.manager.Manager object>
  `option1`

    option 1 for question

  `option2`

    option 2 for question

  `option3`

    option 3 for question

  `option4`

    option 4 for question

  `question`

    Question descirption

  `questionId`

    Unqiue question identifier Primary key

  `quizCode`

    6 random alpha numeric characters for each quiz

  `quizId`

    Foreign key of quiz model

  `quizId_id`
  `submission_set`

    Accessor to the related objects manager on the reverse side of a many-to-one relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Parent.children` is a `ReverseManyToOneDescriptor` instance.

    Most of the implementation is delegated to a dynamically defined manager class built by `create_forward_many_to_many_manager()` defined below.

  `type`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class `quiz.models.``cribs`(*args, **kwargs)

  Bases: `django.db.models.base.Model`

  This class is used to create the cribs table in database.Contains cribs raised by students

  exception `DoesNotExist`

    Bases: `django.core.exceptions.ObjectDoesNotExist`

  exception `MultipleObjectsReturned`

    Bases: `django.core.exceptions.MultipleObjectsReturned`

  `cribs`

    The cribs registered by the student for the given question

  `id`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `objects` = <django.db.models.manager.Manager object>
  `questionId`

    Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Child.parent` is a `ForwardManyToOneDescriptor` instance.

  `questionId_id`
  `quizId`

    Foreign key of quiz model

  `quizId_id`
  `studentId`

    Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Child.parent` is a `ForwardManyToOneDescriptor` instance.

  `studentId_id`

class `quiz.models.``log`(*args, **kwargs)

  Bases: `django.db.models.base.Model`

  This class is used to create the log table in database.stores the student activity information for monitoring the students

  exception `DoesNotExist`

    Bases: `django.core.exceptions.ObjectDoesNotExist`

  exception `MultipleObjectsReturned`

    Bases: `django.core.exceptions.MultipleObjectsReturned`

  `fullscreen`

    Contains value to check whether the student has left fullscreen

  `get_next_by_logtime`(*, field=<django.db.models.fields.DateTimeField: logtime>, is_next=True, **kwargs)
  `get_previous_by_logtime`(*, field=<django.db.models.fields.DateTimeField: logtime>, is_next=False, **kwargs)
  `id`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `logtime`

    The time student last logged in

  `objects` = <django.db.models.manager.Manager object>
  `questions`

    Foreign key for questions model

  `quizId`

    Foreign key of quiz model

  `quizId_id`
  `studentId`

    Foreign key of user model

  `studentId_id`

class `quiz.models.``quiz`(*args, **kwargs)

  Bases: `django.db.models.base.Model`

  This class is used to create the quiz table in database.Contains information about the quiz time,length,code and instructor who has created it

  exception `DoesNotExist`

    Bases: `django.core.exceptions.ObjectDoesNotExist`

  exception `MultipleObjectsReturned`

    Bases: `django.core.exceptions.MultipleObjectsReturned`

  `cribs_set`

    Accessor to the related objects manager on the reverse side of a many-to-one relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Parent.children` is a `ReverseManyToOneDescriptor` instance.

    Most of the implementation is delegated to a dynamically defined manager class built by `create_forward_many_to_many_manager()` defined below.

  `date`

    The Start date of quiz

  property `end_datetime`
  `get_next_by_date`(*, field=<django.db.models.fields.DateField: date>, is_next=True, **kwargs)
  `get_previous_by_date`(*, field=<django.db.models.fields.DateField: date>, is_next=False, **kwargs)
  `length`

    The duration of the quiz in minutes

  `log_set`

    Accessor to the related objects manager on the reverse side of a many-to-one relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Parent.children` is a `ReverseManyToOneDescriptor` instance.

    Most of the implementation is delegated to a dynamically defined manager class built by `create_forward_many_to_many_manager()` defined below.

  `objects` = <django.db.models.manager.Manager object>
  `questions_set`

    Accessor to the related objects manager on the reverse side of a many-to-one relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Parent.children` is a `ReverseManyToOneDescriptor` instance.

    Most of the implementation is delegated to a dynamically defined manager class built by `create_forward_many_to_many_manager()` defined below.

  `quizCode`

    Random 6 Alhpa numeric characters assigned to each quiz

  `quizDone`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `quizId`

    The quizid to uniquely identiy the quiz (Primary key)

  `quizInfo`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `quizInstructor`

    The instructor who created the quiz

  `quizInstructor_id`
  `result_set`

    Accessor to the related objects manager on the reverse side of a many-to-one relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Parent.children` is a `ReverseManyToOneDescriptor` instance.

    Most of the implementation is delegated to a dynamically defined manager class built by `create_forward_many_to_many_manager()` defined below.

  `startTime`

    Start Time of the quiz

  `submission_set`

    Accessor to the related objects manager on the reverse side of a many-to-one relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Parent.children` is a `ReverseManyToOneDescriptor` instance.

    Most of the implementation is delegated to a dynamically defined manager class built by `create_forward_many_to_many_manager()` defined below.

class `quiz.models.``result`(*args, **kwargs)

  Bases: `django.db.models.base.Model`

  This class is used to create the result table in database.Stores cumulative score by each student in each quiz

  exception `DoesNotExist`

    Bases: `django.core.exceptions.ObjectDoesNotExist`

  exception `MultipleObjectsReturned`

    Bases: `django.core.exceptions.MultipleObjectsReturned`

  `id`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `marks`

    cumulative marks for each student

  `objects` = <django.db.models.manager.Manager object>
  `quizId`

    Foreign key of quiz model

  `quizId_id`
  `studentId`

    Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

    In the example:

        class Child(Model):
            parent = ForeignKey(Parent, related_name='children')

    `Child.parent` is a `ForwardManyToOneDescriptor` instance.

  `studentId_id`

class `quiz.models.``submission`(*args, **kwargs)

  Bases: `django.db.models.base.Model`

  This class is used to create the Submission table in database.Contains info about each questions answer submitted by each student

  exception `DoesNotExist`

    Bases: `django.core.exceptions.ObjectDoesNotExist`

  exception `MultipleObjectsReturned`

    Bases: `django.core.exceptions.MultipleObjectsReturned`

  `id`

    A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

  `objects` = <django.db.models.manager.Manager object>
  `option`

    The option selected by the student

  `questionId`

    Foreign key of question model

  `questionId_id`
  `quizId`

    Foreign key of quiz model

  `quizId_id`
  `studentId`

    Foreign key of user model

  `studentId_id`

## quiz.newQuiz module

`quiz.newQuiz.``printTable`(rows)

  prints out the csv file uploaded by professor for debugging purposes

`quiz.newQuiz.``readCSV`(file)

  Reads out the csv file uploaded by professor

## quiz.tests module

## quiz.views module

`quiz.views.``add_quiz`(request)

  This function makes insert into database for all the manually entered quiz questions

`quiz.views.``create_quiz`(request)

  This function renders the create quiz page for manually entering questions

`quiz.views.``getbeat`(request)

  This function track the student activity for displaying the same on the instructor monitor page

`quiz.views.``handle_uploaded_file`(f, q1)

  This function reads the csv file uploaded by the instructor and makes insert into the database

`quiz.views.``heartbeat`(request)

  This function keeps track of student whether he exited full screen and which question he is currently on

`quiz.views.``index`(request)

  This function is responsible for for rendering the quiz page to the student for the selected quiz by the student

`quiz.views.``instructor`(request)

  This function is used to display the instructor with graphs(bell curve and histogram) , cribs raised by the students of the quiz selected

`quiz.views.``monitor`(request)

  Thid function renders the monitor page for the instructor to view ongoing quiz , and monitor the student activity

`quiz.views.``ongoing_quiz`(request)

  Displays all ongoing quiz to the professor who has hosted the quiz

`quiz.views.``quizTable`(request)

  This function helps in rendering all the quiz hosted by the instructor

`quiz.views.``result`(request)

  This function is called on submission of quiz to calculate the marks og the student the marks are added to total score for every correct answer and for every wronf answer the negative marks set by instructor are deducted

`quiz.views.``save_ans`(request)

  this function keeps saving the response of the quiz while the student is attempting in order to ensure if due to network failure student quiz stops then he can continue later from the point where he was interrupted

`quiz.views.``save_cribs`(request)

  This function saves the cribs that the student has raised

`quiz.views.``sign_up`(request)

  This function renders the sign up page for the users

`quiz.views.``student`(request)

  This function depending on the role of the logged in user load the professor dasboard or student dashboard

`quiz.views.``submissions`(request)

  This function helps in rendering the submission page showing the student all the previous attempted quizzes

`quiz.views.``upload`(request)

  This function Renders the upload page for instructor to upload quiz through csv

`quiz.views.``upload_file`(request)

  This function reads the csv file and inserts the questions into the database

`quiz.views.``view_logs`(request)

  THus function helps in viewing all the quizzes logs

`quiz.views.``view_sub`(request)

  This function gives details to the student about the completed quiz consisting of correct answers and choosen answers also the explainations for the questions provided by the professor

## Module contents