|
|
## Manage users and groups
|
|
|
In general, there are three types of users: Admins, employees and normal users. To create an admin, navigate to the register page and create a normal user. After that, change the booleans is_admin and is_employee in the user table of PostgreSQL to true. Admin can edit any exams or groups, while employees are only capable of editing those exams to which they have been assigned to.
|
|
|
|
|
|
It is useful to create a default group, every new user joins on account creation.
|
|
|
|
|
|
## Create exams
|
|
|
### Exams
|
|
|
Beside the name of the exam you have to set save the start- and endtime as well as the duration. The start- and endtime are given as UTC-time and will be converted to the local time of the test takers. Each test taker can start the any time in this time windows and has has to finish after the stated duration or the endtime, whatever comes first. The booleans have the following meanings:
|
|
|
- Visible: Only if selected people can take the exams. Is useful,
|
|
|
- Corrected: If selected, test takers can see their result using the dashboard.
|
|
|
- Show statistics: If selected, test takers can see the exam statistics using the dashboard.
|
|
|
- Can user redo: If selected, users can do the exam multiple teams (especially useful for exercise exams).
|
|
|
- Public overview: If selected, everyone can see all task descriptions and solutions over a special link. No login is required.
|
|
|
|
|
|
Only admins or employee are capable of modifying anything of the exam. When an employee is added as manager, he/she can only see the results and correct manual open taks. Is the edit-flag activated, too, he/she can edit the exam. You can add groups to your exams. Only, if a person is in a group assigned to the exams, he/she can attend the exam.
|
|
|
|
|
|
In the grades table the different grades are stated with inclusive point ranges. You can add images or other files using the media section.
|
|
|
|
|
|
### Pages
|
|
|
The page number defines the ordering of the pages. The first page must have the number 1. It is possible to add a text block in front of all task blocks. You can decide if there is a fixed order for the exams.
|
|
|
|
|
|
In the taks points count section it is stated, how many tasks of which point count should be in the exams. This is useful, when you want to have different tasks when redoing the exam.
|
|
|
|
|
|
### Tasks
|
|
|
The number decides, in which order the tasks appears (if this option is selected at the corresponding page). Furthermore, the maximum possible points can be defined.
|
|
|
|
|
|
#### Choice tasks
|
|
|
You can set one task description and multiple answers. The are multiple grading options:
|
|
|
- Multiple choice: Only one answers is correct; this is visible to the user, because radio buttons are used. If the users chooses the correct answer, full credit is given, otherwise zero.
|
|
|
- Only fully correct: The users gets full credits, if he choose everything correct, otherwise zero.
|
|
|
- Wrong and missing point deduction: For each correct set and correctly not set option points are granted (each time the same). For any other option the same amount is deducted. Minimum zero points are granted.
|
|
|
- Only wrong point deduction: For each correct set points are granted. For each wrong set points are deducted. Otherwise, the total sum is not affected. Minimum zero points are granted.
|
|
|
|
|
|
#### Open tasks
|
|
|
In general, you have tasks and answer blocks. The order of those is defined by the number of the blocks.
|
|
|
|
|
|
#### Programming tasks
|
|
|
There is a correction and a run file. The user submission is inserted in the run file, more precisely you have to add comments of the form `// -i- //` into your submission file, where `i` is the number of the block.
|
|
|
|
|
|
Currently supported is Java and Java Chefscore. In Java, the grader tries to run the main-function of the corrector file. You have to ensure to write the result from the grader into the last line like in the open tasks.
|
|
|
In Java Chefscore, you have to use Junit 4 and the `chefscore.jar` given in `app/libraries`. Then you can add test cases, some which are required (e. g. anti-cheat) and some for points. The result could look like this:
|
|
|
```java
|
|
|
@Forbidden({ "java." }) // You can forbid here classes
|
|
|
@NotForbidden({ "java.lang.", "java.util." }) // and classes, which should be allowed anyways
|
|
|
public class YourTestFile {
|
|
|
@Test(timeout=200) // gives the test timeout in milliseconds. Do not miss this parameter
|
|
|
@Required // this test must be successfull, otherwise there will be zero points
|
|
|
public void testRequired() {
|
|
|
// ... //
|
|
|
}
|
|
|
|
|
|
@Test(timeout=200) // gives the test timeout in milliseconds. Do not miss this parameter
|
|
|
@Points(value=2) // gives the points for this test
|
|
|
public void testPoints() {
|
|
|
// ... //
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
It is important that you do not use any package in Java, otherwise the code cannot be executed.
|
|
|
|
|
|
### Formatting
|
|
|
You can use bbcode, including the `[b]`, `[i]`, `[img]` and `[br]`-Tag. For code inclusion, `[java]`, `[pre]` and `[code]` might be useful.
|
|
|
|
|
|
## Correcting
|
|
|
When the corrected flag is set, the exam will be corrected, as soon as the user has finished the exam and returns to the dashboard, as long there are no manual tasks to correct. |
|
|
\ No newline at end of file |