The Numworx DWO project contains all source code that builds a Java server WAR archive. Together with a second github project numworx-dwo-resources that contains the content delivery service, it creates the Learning Management platform "Numworx".
This project builds the main platform service. To build you need a Github login and token.
Apart from many libraries from the maven java central repository, the following github projects deliver imported artifacts
- numworx-vendor-geogebra
- numworx-vendor-cbook
- numworx-vendor-jxbrowser
- numworx-vendor-oauth
- numworx-dwo-openmath
- numworx-dwo-gwtclienthtmlui
Describe the organization of your package, including the contents of each folder and the files it contains. Use tables or file trees to make it easy for users to understand your folder structure. Describe where results and figures are stored if not added to the project folder.
Each folder contains a maven module, the most important are:
- DWOplayer, this is the player that executes all activities and navigates between modules.
- DWOGWTCliemt, a shell around the player, that fullfills supporting tasks.
- DWOServer, the REST server, delivering data for activities and the user specific storage
- DWOJClient, a Java application for authoring and previewing activities and supporting tasks, like user management. Overlap with DWOGWTClient the html5 application
The main artifact of this project is the EBServer war which can run in a Servlet/JSP container like Tomcat 9.0. Several external services are needed.
- a MySQL database server, version 8.0 or compatible. Postgres is also possible.
- a redis compatible server. Used for session caching. Maven profile
-Predis-jcache - a xmpp chat server, like prosody, configured with the EBServer as the oidc provider.
- a JupiterHub server to run notebooks inside the web application, e.g. the TLJH, also with EBServer as oidc provider
- a content delivery server, like the one that is build in the numworx-dwo-resources project.
- a SMTP server to send 'password forgotten' mails to.
- an AWS S3, or compatible, or an Azure blob store. See maven profile
-Pupload
The EBServer war can be configured with lots of properties:
ALLOW_ORIGINthe url of the Servlet/JSP container, like https://app.dwo.nlAZ_SHAREDKEYKey to access the Azure blob store, the s3_bucket name is the account nameCDN_HOSTHost:port/prefix of the resource serverCDNURLCDN_HOST plus scheme like https://DWO_ELBIPv4 prefix for a Loadbalancer. e.g. 172.31.DWO_ENVapp or test? And extra features like entree, kiosk.DWO_REDIRECTshould http redirect to https? Some loadbalancers do that already.ENV_IPRANGEIPv4 or IPv6 ranges to restrict exams, default 0.0.0.0/0, ::/0ENV_NOSEBif true, don't use sebs:// urls to start the Save Exam Browser.ENV_ORGIDThe default school, when users log in via OIDC.PROFILE_EXTENSIONChoose variant profile selector in the DWOJClient- mysql://
RDS_HOSTNAME:RDS_PORT/RDS_DB_NAME?username=RDS_USERNAME&password=RDS_PASSWORDparts of the jdbc url for mysql REDIShostname of the redis serverREDIS_PREFIXselect between redis or rediss (redis over ssl)S3_BUCKETname of the AWS S3 bucket where uploaded files are stored.SEB_TOETS_MAC,SEB_TOETS_WINallowed hashes for Safe Exam Browser. Takes some experimentation.SMTP_AUTH,SMTP_EMAIL,SMTP_PASSWORD,SMTP_PORT,SMTP_SERVER,SMTP_SSL,SMTP_TLS,SMTP_USERconfiguration of the JavaMail library. If the k8s configuration is used, you may configure your smtp container instead.UU_INDEXalternative home pageUU_DOWNLOADalternative downloads page
This work is licensed under the GNU General Public License version 3. Copyright © 2026, Utrecht University, all rights reserved.