Designing and Implementing an Online Judging System Based on Docker and Vue
摘要
With the widespread and promotion of programming competitions, online judging systems (OJ) for learning and training algorithms and programming are also increasing. In this case, the difficulty of selecting a suitable OJ for trainers has greatly increased, and each OJ has its own advantages and disadvantages. If there is a system that can combine the characteristics of our school students and the advantages of current OJs, it will greatly facilitate programming training. This paper has designed and implemented an online judging system based on Docker and Vue from the above requirements. The system runs on Docker container services at the bottom layer to solve scalability and security issues, isolating the environment while facilitating rapid deployment and horizontal expansion. The overall system adopts a front-end and back-end separation design. To reduce the front-end UI development workload, the Vue framework is used with the iView component library to quickly organize page elements. The back-end adopts the Django framework, which has low coupling, fast development, and high reusability. For convenient teaching, the system (1) designs a real-time testing function for problem sets, which returns the results through submitted code. (2) includes problem sets classified by tags for students to choose from. (3) can rank submission results for competitions. (4) can collect submission information. (5) can manage and maintain basic information such as users and problem sets. This system has the characteristics of complete functions, ease of use, easy expansion, and modularization of frameworks, and has high practical value.