Skip to main content

Secure Online Judge Platform

Run programming courses with confidence using Docker sandboxing, automated grading, and plagiarism detection powered by Moss.

# Install Wecode
gitclonehttps://github.com/truongan/wecode</div><divclassName="dark:textgreen400textgreen600"> git clone https://github.com/truongan/wecode</div> <div className="dark:text-green-400 text-green-600"> cd wecode
./install.sh -u dbuser -d dbname -p password -s https://yoursite.com</div> <div className="dark:text-gray-400 text-gray-500 mt-4"># Setup Docker for sandboxing</div> <div className="dark:text-green-400 text-green-600 mt-2"> docker —version
Docker version 24.0.0

Quick start

Get your online judge platform running in minutes

1

Install dependencies

Ensure you have PHP 8.0+, Composer, MySQL/PostgreSQL, and Docker installed on your Linux server.
# Check PHP version
php --version

# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
2

Clone and configure

Clone the repository and run the installation script with your database credentials.
git clone https://github.com/truongan/wecode
cd wecode
cp .env.example .env
# Edit .env with your database settings
3

Run installation

Execute the installation script to set up the database and create your admin account.
./install.sh -a admin -e [email protected] -u dbuser -d wecode -p password -s https://yoursite.com
The script will automatically run database migrations and create your first admin user.
4

Configure Docker permissions

Allow the web server user to manage Docker containers for secure code execution.
sudo usermod -aG docker www-data
sudo systemctl restart apache2

Core features

Everything you need to run a professional programming course

User management

Multiple roles (admin, instructor, student) with granular permissions and bulk user import.

Docker sandboxing

Secure code execution in isolated containers with resource limits and timeout controls.

Cheat detection

Automatic plagiarism detection using Moss (Measure of Software Similarity).

Assignment management

Create assignments with multiple problems, time limits, and custom grading rules.

Automated grading

Output comparison and tester code methods with configurable test cases.

Live scoreboard

Real-time rankings with multiple display modes for competitive programming.

Explore by role

Find documentation tailored to your needs

Admin guide

System configuration, user management, and platform administration.

Instructor guide

Create assignments, manage problems, and grade submissions.

Student guide

Submit code, view results, and practice programming problems.

Supported languages

Support for multiple programming languages with customizable compilation and execution

🐍
Python
2.x and 3.x
Java
With security policy
C/C++
GCC compiler
📜
JavaScript
Node.js runtime

Ready to get started?

Set up your online judge platform and start teaching programming courses today.

Build docs developers (and LLMs) love