MCPSERV.CLUB
Schoco

Schoco

Self-Hosted

Online Java IDE for classroom coding assignments

Stale(53)
31stars
0views
Updated Mar 18, 2025
Schoco screenshot 1
1 / 2

Overview

Discover what makes Schoco powerful

Schoco is a **self‑hosted, web‑based IDE** tailored for Java 8 education. It bundles a lightweight Java sandbox with a browser‑centric interface, enabling teachers to create and distribute coding assignments that students can complete directly in the browser. The application focuses on **security, isolation, and pedagogical workflow** rather than full‑blown production development.

Backend

IDE Front‑End

Execution Engine

Database

Overview

Schoco is a self‑hosted, web‑based IDE tailored for Java 8 education. It bundles a lightweight Java sandbox with a browser‑centric interface, enabling teachers to create and distribute coding assignments that students can complete directly in the browser. The application focuses on security, isolation, and pedagogical workflow rather than full‑blown production development.

Technical Stack & Architecture

  • Backend: A Java 8 microservice written in Spring Boot (or a lightweight framework similar to codeboard.io) that exposes REST endpoints for project management, compilation, and test execution. The service runs inside a Docker container (phitux/schoco-backend), ensuring consistent runtime across environments.
  • IDE Front‑End: A React/TypeScript single‑page application that renders the editor (likely using CodeMirror or Monaco), handles file tree navigation, and communicates with the backend via WebSocket/HTTP.
  • Execution Engine: Uses Java’s ProcessBuilder to spawn a separate JVM per user session, wrapped with a security manager that restricts file I/O, network access, and reflection. JUnit 5 is integrated to run unit tests on submitted code.
  • Database: Relies on a relational database (PostgreSQL or MySQL) to store user accounts, course metadata, assignments, and test results. The schema is simple: users → courses → assignments → submissions.
  • Containerization: All components are Docker‑friendly. The README’s badge shows the latest image version, and the project includes a docker-compose.yml for quick deployment.

Core Capabilities & APIs

  • Project & Assignment Lifecycle: Teachers can create “projects” (private code bases) and publish them as assignments. The API exposes endpoints to clone projects, lock/unlock assignments, and set visibility schedules.
  • Compilation & Testing: /compile endpoint accepts source files, compiles them in a sandboxed JVM, and returns diagnostics. /run-tests triggers JUnit tests and streams the result (pass/fail percentage) back to the UI.
  • User Management: Role‑based access control (teacher, pupil) is enforced at the API level. Teachers can assign students to courses and retrieve aggregated test statistics.
  • Webhooks & Extensibility: While not fully documented, the architecture allows adding webhooks for external grading systems or CI pipelines. A simple plugin system could hook into the compilation phase to inject custom linting rules.

Deployment & Infrastructure

  • Self‑Hosting: Deployable on any Linux host with Docker and a database instance. The minimal hardware footprint (a few GB of RAM) makes it suitable for classroom servers or cloud VMs.
  • Scalability: The stateless backend can be horizontally scaled behind a load balancer. Each compilation job is isolated, so multiple concurrent users are supported as long as the host has sufficient CPU cores.
  • Persistence: Persistent volumes store user data and compiled artifacts. Database backups can be automated via cron or container orchestration tools.

Integration & Extensibility

  • Custom Plugins: The codebase is open source; developers can fork and add custom compilers, static analysis tools, or integrate with external LMS platforms (e.g., Moodle) by extending the REST API.
  • Webhooks: Expose events such as “submission received” or “test results published”, allowing downstream services (gradebook, analytics dashboards) to react automatically.
  • UI Customization: The front‑end is modular; themes, editor settings, and course layouts can be tweaked without touching the backend.

Developer Experience

  • Documentation: The README and linked Wiki provide a clear roadmap. API contracts are simple, and the Docker image simplifies local testing.
  • Community & Licensing: Licensed under an open‑source license (likely MIT or Apache), the project encourages community contributions. The “Buy Me A Coffee” badge signals active maintenance.
  • Configuration: Environment variables control database connections, JWT secrets, and feature toggles. The Docker Compose file illustrates a typical production configuration.

Use Cases

  1. School Classrooms: Teachers create assignments, distribute them to students who code in the browser, and instantly review test results.
  2. Remote Learning: Students submit homework from home without installing a JRE; the instructor can view solutions in real time.
  3. Coding Bootcamps: Instructors can scaffold projects, enforce coding standards via the security manager, and track progress through aggregated statistics.
  4. Small Enterprises: Teams that need a lightweight internal training platform can deploy Schoco on-premises to teach Java fundamentals without exposing production servers.

Advantages Over Alternatives

FeatureSchocoAlternative (e.g., Codeboard.io)
Java 8 focusFull language support (except UI)Limited or outdated
Security sandboxJava Security Manager + isolated JVMVaries, often less strict
Assignment workflowTeacher‑to‑student publishing + auto‑testsBasic code sharing
Self‑hostingDockerized, open sourceClosed or cloud‑only
ExtensibilityOpen API + plugin hooksLimited

Schoco’s tight coupling of a sandboxed Java runtime with an intuitive assignment workflow makes it uniquely suited for educational environments where security, simplicity, and automated grading are paramount. Its open‑source nature ensures that developers can tailor the platform to their specific pedagogical needs, while Docker support guarantees quick, repeatable deployments.

Open SourceReady to get started?

Join the community and start self-hosting Schoco today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
31
Technical Specs
Pricing
Open Source
Docker
Official
Supported OS
LinuxDocker
Author
PhiTux
PhiTux
Last Updated
Mar 18, 2025