Schoco
Web-based Java 8 IDE for classroom assignments and automated testing
37 stars 4 forks last commit first released MIT
Slowing down
No commits since 18 Mar 2025. Check the issue tracker before you rely on it.
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:
Similar to Schoco

Atheos
Self-hosted, browser-based cloud IDE and code editor
Atheos is a self-hosted, web-based cloud IDE and code editor with a small footprint, featuring plugins, multi-user support, and built-in Git integration.


TeamMapper
Collaborative web-based mind-mapping application
Real-time collaborative mind-mapping web app with import/export, sharing via links/QR, undo/redo and Postgres storage. Runs with a TypeScript/NestJS backend and Angular frontend.

Gitea
Self-hosted Git hosting with code review, issues, and CI/CD
Gitea is a lightweight, self-hosted Git service with repositories, pull requests, issues, wiki, packages, and built-in CI/CD via Actions and runners.

PlanarAlly
Open-source virtual tabletop for battlemaps and dynamic lighting
Web-based virtual tabletop for TTRPGs offering infinite canvas, layers, dynamic lighting, player vision, initiative tracking, offline support and self-hosting.

Wazo Platform
Open-source programmable IP telecommunication platform
Open-source, API-first platform for carrier-grade IP communications: VoIP, WebRTC, messaging, conferencing and programmable telephony microservices.


Teable
Spreadsheet-like database app builder for PostgreSQL
Teable is an Airtable alternative for building database apps with a spreadsheet UI, multiple views, real-time collaboration, and a plugin system, backed by PostgreSQL.



