Skip to content

Allowing student groups to arbitrarily create and join to Big Blue Button conferences and receive help from their instructors.

License

Notifications You must be signed in to change notification settings

thm-mni-ii/digital-classroom

Repository files navigation

THM Digital Classroom

An application allowing student groups to arbitrarily create and join to Big Blue Button conferences. Students are able to create tickets to ask instructors for help, which may then join at the click of a button. Implements parts of the BBB-API to allow for easy deployment in an existing BBB environment.

Current functionality

Create classrooms and join via BBB API. It is possible to configure the feedback system (or any BBB Gateway, like Greenlight or PILOS) to connect to the digital classroom instead of a BBB cluster. Use the classrooms (default: http://localhost:8085) as BBB server address.

How to build

Property Values

Set properties in src/main/resources/application.properties. All relevant properties may be set via an environment variable.

Table 1. Custom property values

Namespace

Property

Env. Variable

Meaning

upstream.bbb

service-url

CLASSROOM_BBB_UPSTREAM_URL

The base URL of the BBB server to create conferences with.

shared-secret

CLASSROOM_BBB_UPSTREAM_SECRET

Shared secret token to compute a checksum of requests against the BBB servers API with. See: BBB API Specification

classroom

host

CLASSROOM_HOST

Base URL (including the port if not default protocol port), at which the Digital Classroom application is contacted by users. Default: http://localhost:8085

prefix-path

CLASSROOM_PREFIX_PATH

URI Path added by a proxy or similar applications to contact the digital-classroom from the internet. Default: "" (empty string)

shared-secret

CLASSROOM_SECRET

Shared secret token a checksum of any request against the classrooms BBB-like API is computed with. Semantics as specified by BBB API linked above.

server

port

CLASSROOM_PORT

Server port at which this application will listen to HTTP requests Default: 8085

server.ssl

enabled

CLASSROOM_SSL_ENABLED

Whether to enable SSL encryption. Default: true

key-store

CLASSROOM_KEYSTORE_PATH

Path to the key store that holds the SSL certificate Default: classpath:keystore.p12

key-store-password

CLASSROOM_KEYSTORE_PASS

Password used to access the key store. Default: passwd

key-store-type

CLASSROOM_KEYSTORE_TYPE

Type of the key store. Default: PKCS12

jwt

secret

CLASSROOM_JWT_SECRET

The key JSON Web Tokens issued by the digital classroom are signed with.

expiration

CLASSROOM_JWT_EXPIRATION

Number of seconds after which JWTs should expire. Default: 900 (15 minutes)

Jar Build & Deploy

The only requirement is a JDK with version 11 or later. The command ./gradlew build on Linux / MacOSX or .\gradlew.bat build on Windows will compile the Angular frontend and produce an executable .jar artifact in build/libs/. which can be started via java -jar digital-classroom-VERSION.jar.

Docker Build & Deploy

A Docker image of the application may be created via docker-compose build in the root directory of this repository. The docker container may be run with docker-compose up. Any environment variables specified in Property Values are propagated to the Docker container.