Edurun uses a modern microservices architecture designed for scalability and security in code evaluation.
Component Diagram
The system consists of three main blocks interacting through LTI 1.3:
- Frontend (Vue.js): Reactive interface for students and teachers.
- Backend (FastAPI): Manages business logic and container orchestration.
- Execution Engine (Docker): Isolated and ephemeral environments for each code execution.
Execution Flow
When a student submits their code:
- The Frontend sends the script to the
/api/run-code/endpoint. - FastAPI spins up a Docker container with memory and CPU limits.
- The code executes in complete isolation (no external network access).
stdoutandstderrare captured and returned to the browser.
Security Note: Operating system libraries (
os,sys) are blocked to prevent privilege escalation.