Giter VIP home page Giter VIP logo

octave-workspace's Introduction

Desktop GUI Workspace and Autograder with Octave

A modified version of the PraireLearn Desktop GUI Workspace

workspace-image

Image name: margo5/octave-workspace

This image is using Ubuntu 20.04 and provides a desktop environment that users can access from a web browser. There are a few components that are running to get this working:

  • XVFB (Creates a headless X11 server)
  • x11vnc (Provides the VNC server)
  • Websockify (Provides a TCP VNC -> Websocket layer)
  • Custom Node server (Wraps the VNC stuff and serves the client pages)

Building

docker build . -t "margo5/octave-workspace"

Workspace Options

"workspaceOptions": {
    "image": "margo5/octave-workspace",
    "port": 8080,
    "home": "/home/prairielearner"
    ...
}

grader-image

Image name: margo5/octave-grader

Docker image for autograding student code written with GNU Octave.

Building

docker build . -t "margo5/octave-grader"

External Grading Options

"externalGradingOptions": {
    "enabled": true,
    "image": "margo5/octave-grader",
    "serverFilesCourse": ["octave-grader/"],
    "entrypoint": "/grade/serverFilesCourse/octave-grader/run.sh"
}

Acknowledgements

On the client side, noVNC is used to provide the VNC connection. Specifically, their noVNC library API and some of their icon assets are used here. The API and assets are licensed under the MPL 2.0 and CC BY-SA 3.0 licenses, respectively.

The default desktop wallpaper is freely distributed through the permissive Unsplash license. Original image by James Baltz.

octave-workspace's People

Contributors

natmarbal avatar cbm755 avatar

Watchers

 avatar

Forkers

cbm755

octave-workspace's Issues

Docker layering ontop of the default prairielearn workspace

Caveat: I'm not expert on containers!

rough idea:

# Dockerfile / Containerfile

# instead of:
# FROM ubuntu:20.04
# use:
FROM prairielearn/workspace-desktop

# then delete everything and try:
apt-get install -y --no-install-recommends octave

This might make your container only a few hundred megabytes, layered on top of the official one... And potentially lower maintenance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.