An open-source online judge system for code evaluation and programming competitions, built with Spring Boot, Spring Cloud, and Vue.
Zui Online Judge (ZOJ) is an open-source online judge system that allows users to submit code solutions to programming problems and evaluates them automatically. It runs code in a secure sandbox environment, checks for correctness, and measures performance metrics like execution time and memory usage. The system is designed for hosting programming competitions, coding practice platforms, and educational coding assessments.
Educators, coding competition organizers, and developers building programming assessment platforms. It's ideal for universities, coding bootcamps, and organizations that need a self-hosted solution for evaluating code submissions.
Developers choose ZOJ because it's a fully open-source, self-hostable alternative to proprietary online judges, with a modern microservices architecture built on Spring Cloud for scalability. Its integration with go-judge provides robust sandboxing security, and support for multiple programming languages makes it versatile for various use cases.
🔥Zui Online Judge(ZOJ)🔥 基于SpringBoot和SpringCloud和Vue的开源在线代码评委系统(OJ)。An open source online judge system(OJ) based on Spring Boot, Spring Cloud and Vue
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses go-judge with resource limits (CPU, memory, process) for safe code execution, as demonstrated in the C/C++ locale test examples, ensuring untrusted code runs without system risks.
Evaluates code in C/C++, Java, Python, and Go with an extensible framework, making it versatile for various programming competitions and educational needs.
Built on Spring Cloud for a distributed backend, allowing horizontal scaling to handle high submission volumes in large competitions or classes.
Provides immediate results on correctness, performance, and resource usage, enhancing user experience with detailed metrics like time and memory.
The README has 'todo' sections for key parts like Java testing, backend startup, and frontend setup, forcing users to fill gaps or rely on trial and error.
Explicitly requires Ubuntu system and specific dependencies (jdk1.8, mysql8.0, redis), limiting deployment flexibility and increasing setup complexity.
Involves configuring multiple services (go-judge on port 5050, MySQL, Redis) with detailed steps, which can be error-prone and time-consuming for newcomers.