Schoco

Schoco

Web-based Java 8 IDE for classroom assignments and automated testing

35stars
4forks
Last commit: 10mo ago
Repo age: 4y old

Schoco is a web-based integrated development environment designed specifically for teaching Java (Java 8) at school. It provides teacher-managed assignments, per-student branches, and automated JUnit-based testing while running user code in isolated worker containers.

Key Features

  • Web-based IDE tailored to Java 8 with editing, compile, run and test capabilities suited for classroom use
  • Teacher and student roles with assignments: teachers create assignments, pupils receive per-student branches and submit solutions
  • Automated evaluation using JUnit tests with visible pass-percent results for teachers
  • Isolated execution using short-lived Docker worker containers for each compile/run/test action to improve security
  • Projects stored in Git repositories via an integrated Gitea instance; each project uses a UUID-based repo and student work uses branches
  • Lightweight metadata storage using SQLite for users, courses, projects and assignment info
  • Live output streamed to the browser via WebSocket connections, requiring reverse-proxy support for websockets
  • Frontend localization (English/German) and configurable runtime limits (e.g., execution time, number of workers)
  • Deployable via Docker Compose with an included Nginx gateway and recommended reverse-proxy configuration

Use Cases

  • Teachers assigning, auto-testing and reviewing Java programming homework in classroom or remote teaching scenarios
  • Students practicing Java programming without needing local JRE installs or complex toolchains
  • Demonstrations and live code comparisons in class by opening student submissions and projecting them for discussion

Limitations and Considerations

  • Language support is focused on Java 8; many JVM features (file IO, networking, spawning processes, UI) are restricted by the Java security manager
  • Requires Docker/Docker Compose and an appropriate reverse-proxy configuration to handle WebSocket traffic securely
  • Uses SQLite for metadata which may not suit very large multi-tenant deployments without modification
  • Some administrator setup steps (Gitea user creation, filesystem permissions, nproc considerations) are required on first start

Schoco is a focused classroom tool that streamlines assignment distribution, isolated code execution and automated testing for Java teaching. It prioritizes safety and easy classroom workflows over features needed for professional software development.

Categories:

Tags:

Tech Stack:

Share:

Similar Services

code-server

code-server

Run Visual Studio Code in the browser on your own server

75.8k
6.5k
Last commit: 4d ago

code-server runs Visual Studio Code in your browser, providing a remote development environment you can self-host on a VM or container and access from any device.

Alternative to:
Visual Studio Code
Visual Studio Code
+10
JupyterLab

JupyterLab

Web-based interactive computing environment for notebooks and code

15k
3.9k
Last commit: 1d ago

JupyterLab is an extensible web-based IDE for Jupyter notebooks, code, terminals, and data exploration with rich outputs and a plugin-based interface.

Alternative to:
Anaconda Notebooks
Anaconda Notebooks
+15
Coder

Coder

Self-hosted cloud development environments for teams and agents

12k
1.1k
Last commit: 21h ago

Open-source platform to provision secure, self-hosted developer workspaces (VMs, containers, Kubernetes) defined in Terraform, with IDE integrations and AI agent support.

Alternative to:
Coder (Coder Cloud)
Coder (Coder Cloud)
+6
A Dark Room

A Dark Room

Minimalist browser-based text adventure game

7.9k
1.7k
Last commit: 7mo ago

A minimalist text adventure game for the browser, featuring incremental progression and multiple language translations.

Eclipse Che

Eclipse Che

Kubernetes-native cloud development environments with a web IDE

7.1k
1.2k
Last commit: 1d ago

Eclipse Che provides Kubernetes-based cloud development environments (CDEs) with containerized workspaces, a web IDE, and Devfile-based project configuration for teams.

Alternative to:
Codenvy Developer Workspaces
Codenvy Developer Workspaces
+6
Livebook

Livebook

Interactive Elixir notebooks for code, data and automation

5.7k
483
Last commit: 21h ago

Web-based interactive and collaborative notebooks for Elixir with data visualizations, integrations, reproducible workflows, and automation.

Alternative to:
Deepnote
Deepnote
+9