Practitionist / Practitionist/elluminar_web
Sandbox/judge vendor spike: Testpress labs vs Judge0 vs Piston (+ grade QUIZ CODE_OUTPUT)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 17h 2m
- Merged PRs (30d)
- 18
Description
2-week timebox. CODE_LAB embed currently only works against Fermion labs (Testpress-dependent); DSA judge functions are dead exports; QUIZ CODE_OUTPUT is a dead enum (excluded from authoring validation/course.ts:163, always-wrong in grading learning.ts:188-198).
- If Testpress outreach lands: wire real school key → existing lab embed path E2E
- Judge0 self-host docker-compose spike (py/js/java/c++; per-user rate caps)
- Piston public API as zero-infra fallback for quick runs
- Feature flag judge.provider; wire ONE surface end-to-end: CODE_OUTPUT questions finally gradeable via code execution + stdout compare
- Meter all runs into SandboxSession; abuse cap/day server-side
- Decision doc: p95 latency, cost @10k runs/mo, ops burden
Spec: temp prompt library 06-sandbox-judge.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the CODE_LAB embed path and inspect authoring validation in course.ts:163 plus grading in learning.ts:188-198. Review the temp prompt library 06-sandbox-judge and compare the Testpress, Judge0, and Piston options. Done means one provider is wired behind judge.provider, CODE_OUTPUT grading works with stdout comparison, runs are metered and capped, and the decision metrics are documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, docker-compose, java, javascript, python, typescript
- Domain
- backend, devops, security, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100