Attempt to resurrect qomet code - need some rewrite
[qomet.git] / README.md
CommitLineData
3844df81 1# qomet - WARNING: prototype stage
e99c53fb
BA
2
3### Questions Ouvertes ou à options Multiples pour l'Évaluation des éTudiants
4
3844df81 5Or "... pour Examens sur inTernet", in french. In english, just revert the acronym:
e99c53fb 6
a0fd8dd7
BA
7"sTudents Evaluation with Multiple choices or Open Questions (or ...inTernet Exams with).
8
9Source code of [qomet.auder.net](https://qomet.auder.net)
e99c53fb
BA
10
11## Features
12
13Allow teachers to create courses, containing assessments. Each of them can be public, or
14restricted to a classroom (identification by student ID).
43828378
BA
15Individual answers to an exam are monitored in real time, and answers are sent
16to each participant in the end (allowing them to estimate their grade).
17Once a series of exam is over, the teacher can get all grades in CSV format
18(assuming all questions were either quiz-like or parameterized).
e99c53fb
BA
19
20## Installation
21
22See setup/README
23
24## Usage
25
43828378
BA
26As a teacher, first create an account from the upper-left "login" menu.
27Then create a course using the appropriate button in the middle of the screen.
28Finally, create some exams ("new assessment" button). The syntax for a series of questions is described by the following example:
29
43828378
BA
30 Question 1 text or introduction (optional if there are subquestions)
31
32 Text for question 1.1 (index detected from indentation)
33 * Answer to 1.1
34
35 Question 1.2 (a text is optional since there are subquestions)
36
37 Question 1.2.1 text (mandatory); e.g. quiz-like:
38 + choice 1
39 - choice 2
40 - choice 3
41
42 Question 1.2.2 text (mandatory); e.g. open question:
43 * answer to 1.2.2 (can be on several lines)
44
45 Question 2 text ...
46 * An answer to question 2
47 ...
48
49All question texts (and open answers) can be on several lines.
50HTML markup (slightly limited) can be used, as well as [MathJax](https://www.mathjax.org/) with $ and $$ delimiters,
51and syntax highlighting using [prism](http://prismjs.com/): `<code class="language-xyz">` for language code `xyz`.
52The syntax for parameterized exercises (not working yet) is still undecided.
53
54Use the "exam" mode if browsing the web is allowed, and "watch" mode otherwise to monitor
55students actions like losing focus or resizing window.
56Finally the "secure" mode forbids all attempts to do anything else than focusing on the exam,
57but can be "a bit too much"; keep in mind next section if using it.
58All these modes restrict the access to a classroom. To open a series of question to the world,
59the "open" mode is for you.
e99c53fb
BA
60
61*Note about exams:*
62Once an assessment is started, it's impossible to quit and restart using another browser,
63because a password stored in cookies need to be sent with every request.
64So under normal circumstances it's also impossible for a student to continue the exam of another.
3844df81 65(The password is destroyed when exam ends or when the teacher decides to finish assessment).
e99c53fb 66
43828378
BA
67## Limitations & workarounds
68
69Version "standard classroom": some potential internet cheating ways even in 'secure' mode (in addition to
70the usual ones like using phones, talking, doing signs, using short memos...)
e99c53fb 71
e99c53fb 72 - headless browsers with renamed http-user-agent; difficult to counter with 100% confidence
a39991b9 73 - block JS script using e.g. [uBlock Origin](https://github.com/gorhill/uBlock), then re-inject the script cleaned of listeners
e99c53fb
BA
74 - intercept HTTP response to "start quiz" signal, re-compose the page without listeners and run
75
43828378
BA
76The easy way to prevent these cheating attempts would consist in installing qomet on a local server,
77and restricting exam rooms to the intranet while preventing users to access their account (where they could
78keep a copy of the courses). This also prevent internet-based students communication.
79
80Another option (which seems more complicated, but might be required if the intranet itself shouldn't be accessed)
81would be to force e.g. chromium in kiosk mode restricted to one domain (using SELinux on a special account maybe).
e99c53fb
BA
82
83## Alternative softwares
84
85 * [moodle](https://moodle.org)<br/>
86 Full-featured (open source!) project to manage learning activities.
87 Too big for my purpose; however qomet might be re-thought as a moodle plugin
88 (although [at least one](https://moodle.org/plugins/mod_exam) already exists for this task).
89
ea8b41a9
BA
90 * [nbgrader](http://nbgrader.readthedocs.io/en/stable/)<br/>
91 Assignment module for Jupyter, auto-grading closed and coding questions while providing a feedback to the students.
92 It looks great, but at least for the moment lacks the real-time review (for the teacher).
93
e99c53fb
BA
94 * [evalbox](https://evalbox.com/)<br/>
95 The closest to my goals, but only for simple quizzes, and not actively developed anymore.
96
97 * [wims](http://wims.unice.fr/~wims/)<br/>
98 Full-featured (and open source) training center for students, with various types of exercises,
43828378 99 possibly in exam mode too. The spirit, however, is more "enhanced homework" than "internet exams".
e99c53fb
BA
100
101 * [socrative](https://socrative.com/)<br/>
102 Nice looking realtime feedback (lacking in evalbox), but thought for interactive classes.
103 In this perspective, I also found [educaplay](https://www.educaplay.com) appealing.
104
105 * [testmoz](https://testmoz.com/)<br/>
106 Old-fashioned look, lacking some features. Still interesting to set-up a quick test.