Add quiz support: parse *_quiz_solved.txt files, take and grade quizzes
Scanner indexes quiz files found next to videos ([&] questions, "- " options, "-- Correct" markers; _notsolved twins ignored). Quizzes appear in the folder content list interleaved with videos by filename order. New api/quiz.php serves questions without answers and grades attempts server-side; per-user best/last score and attempts stored in quiz_progress. Folder/course progress now aggregates videos + quizzes with partial credit for partial scores.
This commit is contained in:
@@ -72,6 +72,30 @@ Top-level folders become courses on the home page.
|
||||
|
||||
5. Open the site, create an account, and watch.
|
||||
|
||||
## Quizzes
|
||||
|
||||
Course folders may contain quiz text files next to the videos. Files named
|
||||
`*_quiz_solved.txt` are indexed (a `*_quiz_notsolved.txt` twin is ignored —
|
||||
it's the same content without answers). Format:
|
||||
|
||||
```
|
||||
[&] Which two are supported CLI connectivity methods? (Select two)
|
||||
- RDP
|
||||
- rlogin
|
||||
- GUI widget -- Correct
|
||||
- FortiExplorer -- Correct
|
||||
```
|
||||
|
||||
Questions start with `[&]`, options with `- `, and correct options end with
|
||||
`-- Correct`. Questions with more than one correct option automatically render
|
||||
as checkboxes instead of radios.
|
||||
|
||||
Quizzes are graded server-side (answers are never sent to the browser before
|
||||
submission). A question counts only if the selected set exactly matches the
|
||||
correct set. Best score, last score, and attempt count are stored per user;
|
||||
a quiz is *completed* once every question is answered correctly in one
|
||||
attempt, and quiz scores count toward folder progress alongside videos.
|
||||
|
||||
## How progress works
|
||||
|
||||
- The player POSTs `{video_id, position, duration}` to `api/progress.php`
|
||||
|
||||
Reference in New Issue
Block a user