noctux / adora-belle

A simple helpdesk tailored for use in remote-only university exercises
GNU Affero General Public License v3.0
2 stars 7 forks source link
helpdesk helpdesk-ticketing lecture lecture-lab university

+BEGIN_QUOTE

Hands where I can see them (mister) -- Adora Belle Dearheart (Going Postal)

+END_QUOTE

** Synopsis

A simple helpdesk tailored for use in remote-only university exercises: Students can request help, this will lead to a new request being created, along with an link to a jitsi-instance that tutors will visit to answer the students question via webconf.

** Usage

+BEGIN_SRC bash

stack run -- adora-belle -p 8080 -c config.toml

+END_SRC

This will start an instance listening at port 8080.

Visit =http://localhost:8080/index.html= for the student interface, and =http://localhost:8080/admin.html= for the admin interface. Passwords are configured using the file =config.toml=. The configuration can be updated any time, using the reload button in the admin interface.

** Configuration file

+BEGIN_SRC toml

Name of your lecture, displayed in the GUI

name = "Lecture TITLE"

Base url for generated webconference sessions. Generated url will be:

conferenceurl + UUID-hexstring

conferenceurl = "https://meet.jit.si/"

The admininterface displays a log of all actions modifying the

request-databse. The parameter configures how long to retain these actions,

in minutes. For performance reasons, the log is only cleansed on database

modification.

backlogminutes = 20

List of timeslots the tool should accept new requests on, in the servers

local timezone. If no timeslots are configured (timeslots=[]), submission

will be completely unrestricted

[[timeslots]] day = "Thursday" start = "10:15" end = "18:45"

Authentication accounts

Either plaintext passwords or bcrypt password hashes. Do not use plaintext

passwords that begin with an $, this is used to detect hashed ones

[[authdb]] user = 'user1' pass = 'pw' admin = false

[[authdb]] user = 'bcryptuser' pass = '$2y$14$xBBZdWgTa8fSU1aPFP5IxeVdUKfT7hUDjmusZEAiNBiYaYEGY/Sh6' admin = false

Admin users have the admin flag set

[[authdb]] user = 'admin1' pass = 'pw' admin = true

+END_SRC

** State

Hastily thrown together during the corona crisis as a demo. Use at your own risk.

** Screenshots

*** Student UI:

[[screenshots/public.png]]

*** Admin UI:

[[screenshots/admin.png]]

** License

AGPL3 - Because all the best things in life are free, and want to stay that way.