Update the README file to provide comprehensive information about
All checks were successful
Build and push Probo image on the registry / login (push) Successful in 3m1s
All checks were successful
Build and push Probo image on the registry / login (push) Successful in 3m1s
Probo's functionality, setup, and usage.
This commit is contained in:
parent
273526edc7
commit
c0a0dda3aa
2 changed files with 71 additions and 6 deletions
69
README.md
69
README.md
|
|
@ -1,3 +1,68 @@
|
|||
# Probo Collector
|
||||
# Probo 💯
|
||||
|
||||
A backend to collect quizzes in a RESTful way.
|
||||
Probo is a software tool designed for creating, managing, and administering
|
||||
exams based on multiple-choice quizzes. Its data storage approach is entirely
|
||||
file-based, git-friendly, eliminating the need for an external database. Exam
|
||||
sessions are delivered to participants via a responsive web interface.
|
||||
|
||||
# Features
|
||||
|
||||
* Uses plain text files for storage
|
||||
* Uses Markdown for quiz creation
|
||||
* Uses CSV for participant details
|
||||
* Configures exam sessions via TOML
|
||||
* It's a self-contained executable for easy deployment
|
||||
* Features a responsive web interface for quiz administration
|
||||
* Supports scripting with the [goja](https://github.com/dop251/goja) JavaScript engine
|
||||
|
||||
# Quick Start
|
||||
|
||||
Begin by installing Probo:
|
||||
|
||||
```
|
||||
go get git.andreafazzi.eu/andrea/probo
|
||||
```
|
||||
|
||||
To start using the software, create a directory:
|
||||
|
||||
```bash
|
||||
mkdir $HOME/myprobo
|
||||
```
|
||||
|
||||
Once inside the directory, execute the `probo init` command:
|
||||
|
||||
```bash
|
||||
cd myprobo
|
||||
probo init
|
||||
```
|
||||
|
||||
This will generate a file and folder structure. The `datasource` folder contains
|
||||
files for initiating quiz creation, participant registration, and test
|
||||
construction. Below are the three necessary commands to build your first test.
|
||||
|
||||
```bash
|
||||
probo create participants datasource/participants/participants_math.csv
|
||||
probo create quizzes datasource/quizzes/quizzes_math.md
|
||||
probo create participants datasource/sessions/math_test.toml
|
||||
```
|
||||
|
||||
The previous commands will generate an exam session, which includes students
|
||||
listed in `participants_math.csv`. The quizzes for each participant's session
|
||||
are selected from the `quizzes_math.md` file. Exam session characteristics are
|
||||
configured within the `math_test.toml` file. The `programs/shuffled.js` script
|
||||
defines the criteria for populating participants' exams.
|
||||
|
||||
After generating the exam session, you can administer tests to participants via
|
||||
a web interface. Probo allows you to launch a web server from your working
|
||||
directory using the command:
|
||||
|
||||
```bash
|
||||
probo serve
|
||||
```
|
||||
|
||||
Accessing `http://localhost:3000` in a browser and entering student or
|
||||
administrator credentials will grant access to the testing sessions.
|
||||
|
||||
# License
|
||||
|
||||
MIT
|
||||
|
|
|
|||
|
|
@ -30,20 +30,20 @@
|
|||
<p>{{$quiz.Question.Text|markdown}}</p>
|
||||
</header>
|
||||
{{range $answer := $quiz.Answers}}
|
||||
{{if $.Session.IsActive}}
|
||||
{{if $.Session.IsActive}}
|
||||
<input type="radio"
|
||||
id="{{$quiz.ID}}_{{$answer.ID}}" name="{{$quiz.ID}}"
|
||||
id="{{$quiz.ID}}_{{$answer.ID}}" name="{{$quiz.ID}}"
|
||||
value="{{$answer.ID}}" required {{if $.Response}}{{if ($answer|$.Response.IsSelected)}}checked{{end}}{{end}}>
|
||||
<label for="{{$quiz.ID}}_{{$answer.ID}}">{{$answer.Text|markdown}}</label><br>
|
||||
{{else}}
|
||||
<input type="radio"
|
||||
id="{{$quiz.ID}}_{{$answer.ID}}" name="{{$quiz.ID}}"
|
||||
id="{{$quiz.ID}}_{{$answer.ID}}" name="{{$quiz.ID}}"
|
||||
value="{{$answer.ID}}" required {{if (and $.Session.IsEnded (not $.IsAdmin))}}disabled{{end}} {{if $.Response}}{{if ($answer|$.Response.IsSelected)}}checked{{end}}{{end}}>
|
||||
<label for="{{$quiz.ID}}_{{$answer.ID}}"
|
||||
{{if (and $.Session.IsEnded ($answer|$quiz.IsCorrect))}}correct{{end}}>{{$answer.Text|markdown}}
|
||||
</label><br>
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
<footer>
|
||||
Mandatory choice.
|
||||
</footer>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue