Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

JOE: Java Online Exercises

This repository provides scripts and information to offer web-based Java (and C++, Python) assignments.

It uses Jupyter Notebook for web access and the extension nbgrader for automatically graded assignments. Additionally, JupyterHub manages multiple users, IJava provides language support, and files are managed by Docker.

If you haven't heard of nbgrader yet, you can watch the video YouTube: nbgrader at SciPy 2017.

Quick start

  1. Install Docker
  2. Download and unpack JOE
  3. Build Docker image
    sudo docker build -t nbgjava:latest JavaOnlineExercises-master/docker/
    (This takes about 9 minutes.)
  4. Run Docker container
    sudo docker run -t -d -p 8000:8000 --name nbgjava nbgjava:latest
  5. Initialize the system
    sudo ./JavaOnlineExercises-master/scripts/
    (This creates example student accounts nbgtesta, nbgtestb, and nbgtestc. It also copies assignment templates.)
  6. Go ahead
    Open https://localhost:8000/
    Ignore messages like 'Your connection is not private' for now.
    You can use the teacher account nbgadmin, and the student test accounts nbgtesta, nbgtestb, nbgtestc, and nbguser.
    All passwords are nbgpsw. You have to change the passwords for public installations.

The wiki provides detailed descriptions.
There are scripts for an installation on a virtual machine. This variant provides a mounted directory to create backups. It is described on the installation wiki page.