summaryrefslogtreecommitdiff
path: root/yaksh
diff options
context:
space:
mode:
authoradityacp2017-01-02 15:26:54 +0530
committeradityacp2017-01-02 15:26:54 +0530
commite90b4d07558b757ba14aaa390f22337b6d4f8bf0 (patch)
treecb323334b1a296a8509a85f07709cf20aeaf56c1 /yaksh
parent6893398a9a0dd8dcfb4c5d75a1bb75774a369dc8 (diff)
downloadonline_test-e90b4d07558b757ba14aaa390f22337b6d4f8bf0.tar.gz
online_test-e90b4d07558b757ba14aaa390f22337b6d4f8bf0.tar.bz2
online_test-e90b4d07558b757ba14aaa390f22337b6d4f8bf0.zip
Update rst for latest docs
Diffstat (limited to 'yaksh')
-rw-r--r--yaksh/documentation/installation.rst6
-rw-r--r--yaksh/documentation/moderator_docs/creating_course.rst12
-rw-r--r--yaksh/documentation/moderator_docs/creating_question.rst209
-rw-r--r--yaksh/documentation/moderator_docs/creating_quiz.rst25
-rw-r--r--yaksh/documentation/moderator_docs/other_features.rst16
5 files changed, 233 insertions, 35 deletions
diff --git a/yaksh/documentation/installation.rst b/yaksh/documentation/installation.rst
index 51efea7..57dc2fd 100644
--- a/yaksh/documentation/installation.rst
+++ b/yaksh/documentation/installation.rst
@@ -73,7 +73,9 @@ Running The Code Server
In a new terminal run the command::
- sudo python /path/to/code_server.py
+ cd /path/to/online_test
+
+ sudo python -m yaksh.code_server
Keep this instance running in the background
@@ -93,7 +95,7 @@ Keep this instance running in the background
3. Start a Docker container::
- docker run -d -p 8001:8001 -p 53579:53579 -v /path/to/online_test/yaksh/output:/src/yaksh/output yaksh_code_server:v1
+ docker run -d -p 8001:8001 -p 53579:53579 -v /path/to/online_test/yaksh/data:/src/yaksh/data yaksh_code_server:v1
**Note**:
* The default ports on which the code server runs and the pool port on which the former ports are available is specified in online_test/yaksh/settings.py. The code server also supports multiple ports
diff --git a/yaksh/documentation/moderator_docs/creating_course.rst b/yaksh/documentation/moderator_docs/creating_course.rst
index a700971..e01b73a 100644
--- a/yaksh/documentation/moderator_docs/creating_course.rst
+++ b/yaksh/documentation/moderator_docs/creating_course.rst
@@ -18,18 +18,24 @@ Setting up a new course
Features in Courses
-------------------
- Click on the Courses link located at the navigation bar, to view all the courses created by the moderator.
+ Click on the Courses link located at the navigation bar.
.. image:: ../images/course_features.jpg
+ This page shows all the courses created by a moderator and all the courses allotted to a moderator.
+
The following features are available for courses
* Course Name
Clicking on course name link will display all the enrolled, rejected and requested students list. Moderator can accept or reject the student.
* Quiz Name
Clicking on the quiz name will let you edit the quiz.
+ * Question Paper
+ Click on the **Add** link to create a Question Paper for associated Quiz.
+ If a question paper is already created, click on the Question Paper link to
+ edit question paper.
* Add Teacher
Clicking on Add teacher can let you add teachers for the course. The teachers can edit and modify only the specific course that are allotted to them.
- * View Allotted Course
- Clicking on view allotted courses will display the courses the moderator is added to by other course creators.
+ * Teachers added to the course
+ This shows all the teachers added to a particular course.
diff --git a/yaksh/documentation/moderator_docs/creating_question.rst b/yaksh/documentation/moderator_docs/creating_question.rst
index cdb20ef..0de5e43 100644
--- a/yaksh/documentation/moderator_docs/creating_question.rst
+++ b/yaksh/documentation/moderator_docs/creating_question.rst
@@ -5,7 +5,7 @@ Questions
Setting up questions
--------------------
- Setting up questions is the most important part of the Yaksh experience. Questions can be of multiple types i.e Multiple choice questions (MCQ), multiple correct choices (MCC), Coding questions and assignment upload types.
+ Setting up questions is the most important part of the Yaksh experience. Questions can be of multiple types i.e Multiple choice questions (MCQ), Multiple correct choices (MCC), Coding questions and assignment upload types.
To set up a question click on the questions link in the navigation bar.
@@ -19,23 +19,33 @@ Setting up questions
* **Language** - Programming language on which the question is based.
- * **Active** - If the question is active to attempt or not.
-
* **Type** - Type of the question. i.e Multiple Choice, Multiple Correct Choice, Code and Assignment Upload.
+ * **Points** - Points is the marks for a question.
+
* **Description** - The actual question description is to be written.
- .. note:: To add codes in questions please use html <code> and <br> tags.
+ .. note:: To add codes in questions please use html <code> and <br> tags.
* **Tags** - Type of label or metadata tag making it easier to find specific type of questions.
* **Snippet** - Snippet is used to give any default value or default code or command. This will be displayed in the answer form. This is used only for code questions.
- * **Test case type** - Test cases or answers are to be added. There are multiple type of test cases -
-
- * Standard Test Case which is an assertion based testcase.
- * Stdout Based Test Case is stdout based test where moderator can provide expected output (Only for Python).
- * MCQ Based Test Case is testcase for Mcqs and Mccs.
+ * **Partial Grading** - Click this checkbox to enable partial grading feature.
+
+ * **File** - File field is used to upload files if there is any file based question.
+ For e.g. The question is reading a file say **dummy.txt** and print its content.
+ You can then upload a file **dummy.txt** which will be available to the student while attempting the quiz.
+
+ * Some file features:
+ 1. To delete a file click the delete checkbox and click on Delete Selected Files button.
+ 2. To extract a file for e.g. say **dummy.zip** click the extract checkbox and click on Save button.
+ If **extract** is selected, the file will be extracted while checking
+ the student submitted code.
+ 3. To hide any file from student click the hide checkbox and click on Save button.
+
+ .. Note:: We only support **zip** extension for **extract file** feature.
+
How to write Test cases
-----------------------
@@ -44,39 +54,185 @@ How to write Test cases
* **Create Standard Test Case**
- Select Standard Test Case and click on Save & Add Testcase button to save the question.
+ Select Standard from Add Test Case field.
* For Python:
+ .. image:: ../images/python_standard_testcase.jpg
+ :width: 80%
+
In the test case field write a python assert to check the user code.
For e.g. ::
- assert fact(3) == 6
+ assert add(1, 2) == 3
- for program of factorial.
+ for program of addition.
+
+ * For C, C++, Java and Bash:
+ In Test Case Field write the code as follows
+
+ For C and C++:
+ .. image:: ../images/cpp_standard_testcase.jpg
+ :width: 80%
+
+ Consider a Program to add three numbers.
+ The code in the Test case field should be as follows: ::
+
+ #include <stdio.h>
+ #include <stdlib.h>
+
+ extern int add(int, int, int);
+
+ template <class T>
+ void check(T expect,T result)
+ {
+ if (expect == result)
+ {
+ printf("\nCorrect:\n Expected %d got %d \n",expect,result);
+ }
+ else
+ {
+ printf("\nIncorrect:\n Expected %d got %d \n",expect,result);
+ exit (1);
+ }
+ }
+
+ int main(void)
+ {
+ int result;
+ result = add(0,0,0);
+ printf("Input submitted to the function: 0, 0, 0");
+ check(0, result);
+ result = add(2,3,3);
+ printf("Input submitted to the function: 2, 3, 3");
+ check(8,result);
+ printf("All Correct\n");
+ }
+
+ Assuming Students answer to be as below: ::
+
+ int add(int a, int b, int c)
+ {
+ return a+b+c;
+ }
+
+ .. Note:: 1. In the above example, **add** in the main function is obtained from student code.
+ 2. Please make sure that the student code function and testcase calling function should be same which in this case is **add**.
+
+ For Java:
+ .. image:: ../images/java_standard_testcase.jpg
+ :width: 80%
+
+ Consider a Program to find square of a number.
+ The code in the test should be as follows: ::
+ class main
+ {
+ public static <E> void check(E expect, E result)
+ {
+ if(result.equals(expect))
+ {
+ System.out.println("Correct:\nOutput expected "+expect+" and got "+result);
+ }
+ else
+ {
+ System.out.println("Incorrect:\nOutput expected "+expect+" but got "+result);
+ System.exit(1);
+ }
+ }
+ public static void main(String arg[])
+ {
+ Test t = new Test();
+ int result, input, output;
+ input = 0; output = 0;
+ result = t.square_num(input);
+ System.out.println("Input submitted to the function: "+input);
+ check(output, result);
+ input = 5; output = 25;
+ result = t.square_num(input);
+ System.out.println("Input submitted to the function: "+input);
+ check(output, result);
+ input = 6; output = 36;
+ result = t.square_num(input);
+ System.out.println("Input submitted to the function: "+input);
+ check(output, result);
+ }
+ }
+
+ Assuming Students answer to be as below: ::
+
+ class Test
+ {
+ int square_num(int num)
+ {
+ return num*num;
+ }
+ }
+
+ .. Note:: 1. For Java, class name should always be **main** in testcase.
+
+ 2. In the above example, **Test** is the class of student's code.
+ 3. Please make sure that the student's code class and calling class in testcase is always **Test**. (square_num is the function inside Test class.)
+
+ For Bash:
+ .. image:: ../images/bash_standard_testcase.jpg
+ :width: 80%
+
+ In **Test case** Field write your bash script.
+ For e.g. the question is to move to a particular directory and read a file
+ **test.txt**
+ The Test case code shown is: ::
+
+ #!/bin/bash
+ cd $1
+ cat $2
+
+ In **Test case args** Field type your Command line arguments.
+
+ In this case the test case args are: ::
+
+ somedata/ test.txt
+
+ .. Note:: 1. **Test case args** field is used only for bash.
+ 2. Each argument should be separated by **space**.
+ 3. This field can be left blank.
- * For C, C++ and Java:
- In Test Case Field add the test case file path.
Check Delete Field if a test case is to be removed.
- Finally click on Save & Add Testcase Button to save the test case.
+ Finally click on Save to save the test case.
* **Create Standard Input/Output Based Test Case**
+
+ Select StdIO from Add Test Case field.
- Select StdIO Based TestCase from Test Case Type field and click on Save & Add Testcase button to save the question.
+ .. image:: ../images/stdio_testcase.jpg
+ :width: 80%
In Expected input field, enter the value(s) that will be passed to the students' code through a standard I/O stream.
.. note:: If there are multiple input values in a test case, enter the values in new line.
- In Expected Output Field, enter the expected output for that test case. For e.g type 6 if the output of the user code is 6.
+ In Expected Output Field, enter the expected output for that test case. For e.g type 3 if the output of the user code is 3.
+
+ Setting up Standard Input/Output Based questions is same for all languages.
- * **Create MCQ Based Test Case**
+ * **Create MCQ or MCC Based Test Case**
- Select MCQ Based TestCase from Test Case Type field and click on Save & Add Testcase button to save the question.
+ Select MCQ/MCC from Add Test Case field.
- In Options Field type the option check the correct checkbox if the current option is correct and click on Save & Add Testcase button to save each option.
+ Fig (a) showing MCQ based testcase
+
+ .. image:: ../images/mcq_testcase.jpg
+ :width: 80%
+
+ Fig (b) showing MCC based testcase
+
+ .. image:: ../images/mcc_testcase.jpg
+ :width: 80%
+
+ In Options Field type the option check the correct checkbox if the current option is correct and click on Save button to save each option.
+
+ For MCC based question, check the correct checkbox for multiple correct options.
Features in Question
@@ -84,15 +240,22 @@ Features in Question
* **Download Questions**
- Select questions from the list of question displayed on the Questions page. Click on the Download Selected button to download the questions. This will create a json file of the Questions selected.
+ Select questions from the list of question displayed on the Questions page. Click on the Download Selected button to download the questions. This will create a zip file of the Questions selected.
* **Upload Questions**
- Click on the Upload File button. This will open up a window. Select the json file of questions and click Ok and the questions will be uploaded and displayed on the Questions page.
+ Click on the browse button. This will open up a window. Select the zip file of questions and click Ok and then click on Upload file button, questions will be uploaded and displayed on the Questions page.
* **Test Questions**
Select questions from the list of question displayed on the Questions page. Click on Test selected button. This will take you to a quiz with the selected questions.
- .. Note:: This will not create an actual quiz but a trial quiz. This quiz is hidden from the students and only for moderator to view. You can delete the quiz from moderator's dashboard.
+ .. Note:: This will not create an actual quiz but a trial quiz. This quiz is hidden from the students and only for moderator to view. You can delete the quiz from moderator's dashboard.
+
+ * **Filter Questions**
+
+ You can filter questions based on type of question, language of question or marks of question.
+ 1. Click Select Question Type to filter question based on type of the question.
+ 2. Click Select Language to filter question based on language of the question.
+ 3. Click Select marks to filter question based on mark of the question.
diff --git a/yaksh/documentation/moderator_docs/creating_quiz.rst b/yaksh/documentation/moderator_docs/creating_quiz.rst
index de0f031..3f227ef 100644
--- a/yaksh/documentation/moderator_docs/creating_quiz.rst
+++ b/yaksh/documentation/moderator_docs/creating_quiz.rst
@@ -4,7 +4,7 @@ Quizzes
Quizzes are intrinsically associated with a course, hence to view and/or edit a quiz, we need to navigate to the courses page.
-
+In courses page click on **Add Quiz** button to create a new quiz.
Creating a Quiz
@@ -25,10 +25,13 @@ Creating a Quiz
* **Prerequisite** - Set a prerequisite quiz to be passed before attempting the current quiz.
* **Language** - Programming language on which the quiz is based.
* **Attempts allowed** - Number of attempts that a student can take of the current quiz.
- * **Number of Days** - Number of days between attempts.
+ * **Number of Days** - Number of days between attempts.
+ * **Instructions for students** - Additional instructions for students can be added. Some default instructions are already provided.
+ * **Allow student to view answer paper** - Click on this checkbox to allow student to view their answer paper.
- Once a quiz parameters have been set click on **design questionpaper** button to add questions into a quiz.
+ Once a quiz parameters have been set click on **Save** button to save the quiz.
+To create a Question paper, Click on **Add** link located besides the created quiz in courses page.
Designing Question Paper
------------------------
@@ -37,10 +40,10 @@ Designing Question Paper
A quiz can have fixed as well as random questions. Fixed questions are those question that are bound to appear for every student taking the quiz. In random questions a pool of questions is given and number of questions to be picked from the pool is set. Hence for different students, different questions from the pool will appear.
- To add questions to a questionpaper
+ To add questions to a questionpaper
* Select Question type and marks and a list of questions will be displayed will be in the **select questions to add** section. Do this for both fixed questions and random questions.
-
+ * After adding questions click on **Next** button to go to **Step 3 Finish**.
* Select shuffle paper if you want to jumble up the question sequence for every student and for every attempt.
* Click on save question paper to save it or preview question paper to preview it.
@@ -56,4 +59,14 @@ Editing a Quiz
* Quiz will have the same duration as that of the original quiz.
* Quiz won't start if the course is inactive or the quiz time has expired.
- * You will be notified about quiz prerequisites.(You can still attempt the quiz though) \ No newline at end of file
+ * You will be notified about quiz prerequisites.(You can still attempt the quiz though)
+
+
+Editing a QuestionPaper
+-----------------------
+
+
+ Click on the Question Paper for a Quiz link besides Quiz in courses page and follow steps from Design Question Paper.
+
+ If the questions are already added to a Question Paper then they are shown in the
+ **Fixed Questions currently in the paper** section.
diff --git a/yaksh/documentation/moderator_docs/other_features.rst b/yaksh/documentation/moderator_docs/other_features.rst
index 2e670ac..0b39788 100644
--- a/yaksh/documentation/moderator_docs/other_features.rst
+++ b/yaksh/documentation/moderator_docs/other_features.rst
@@ -17,4 +17,18 @@ Trial Papers
When a moderator attempts a quiz in User or God mode or tests questions, a trial answer paper is created. Moderator can check the answer paper.
- .. note:: It is advisable to delete these trial answer papers. \ No newline at end of file
+ .. note:: It is advisable to delete these trial answer papers.
+
+Grader
+------
+
+ Click the **Grader** link on the navigation bar.
+ This allows you to regrade answerpapers of students using three ways:
+
+ 1. **Question wise regrade**
+ Answerpapers can be regraded per Question.
+ 2. **Quiz wise regrade**
+ Answerpapers can be regraded per Quiz.
+ 3. **User wise regrade**
+ Answerpaper can be regraded for a particular student.
+