/adora-belle

A simple helpdesk tailored for use in remote-only university exercises

Primary LanguageHaskellGNU Affero General Public License v3.0AGPL-3.0

Adora Belle

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

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

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

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

# 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

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.