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

Probo's functionality, setup, and usage.
This commit is contained in:
Andrea Fazzi 2025-06-04 08:24:52 +02:00
commit c0a0dda3aa
2 changed files with 71 additions and 6 deletions

View file

@ -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

View file

@ -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>