A secure, scalable system for automatically testing student programming assignments in university workshops. This system integrates with Gitea for submission handling and uses Docker for secure code execution. Additionally, it seamlessly integrates with SSHContainer to provide secure SSH access to the containers for debugging and interactive sessions.
- 🔒 Secure Execution: All student code runs natively in isolated Docker containers
- ⚙️ Parallel Processing: Handles multiple submissions simultaneously (configurable)
- ⏱️ Real-time Feedback: Students receive immediate test results on their commits
- 📈 Scalable: Handles large classes (100+ students) efficiently
- 🔐 Privacy: Students can't access other students' solutions (depending on the Git setup)
- 🏫 Multiple Workshop Support: Organize test cases by workshop and task
- 📝 Flexible Test Cases: Support for YAML configuration of test cases
- 🏆 Leaderboard and Statistics: Track student performance and display leaderboards
- 🔐 OAuth2 Integration: Supports OAuth2 for user authentication for non public leaderboards
- 📄 Problem PDF Exports: Export problem statements and test cases to PDF
- 💻 Multiple Programming Languages Support: Supports testing code in various programming languages (currently Python, Go)
- 📅 Time Constraints: Set start and end dates for tasks
- 🖥️ Interactive Development: SSH access to development containers via SSHContainer
- Quick Start Guide
- Web Handlers
- Architecture Overview
- Configuration Guide
- Test Case Setup
- Instructor Guide
- Student Guide
- Development Guide
This project is licensed under the AGPL - see the LICENSE file for details.
For support, please open an issue in the repository.