OJS (Open Judge System) is an open source system for online algorithm competitions. The algorithm competitions are timed contests where all contestants compete online and are given the same algorithmic problems to solve under the same time and memory constraints. The competitions are currently available in six programming languages: C#, C++, JavaScript, Java, PHP and Python. The system consists of few parts:
- Web interface for users and administrators (ASP.NET MVC)
- Windows service for compiling, executing and checking user submissions
- Restricted process executor using Windows APIs
- Compiler wrappers and checkers
Originally developed by:
- Nikolay Kostov (https://github.com/NikolayIT)
- Ivaylo Kenov (https://github.com/ivaylokenov)
- Vasil Dininski (https://github.com/dininski)
Other contributors:
- Vladislav Karamfilov (https://github.com/vladislav-karamfilov)
- Teodor Kurtev (https://github.com/teodor92)
- Kristian Mariyanov (https://github.com/KristianMariyanov)
- Rositsa Popova (https://github.com/rozay)
- Viktor Kazakov (https://github.com/Innos)
- Svetlin Galov (https://github.com/jicata)
- Georgi Georgiev (https://github.com/gogo4ds)
Code by Nikolay Kostov. Copyright 2013-2015 Nikolay Kostov. This library is licensed under GNU General Public License v3 (full terms and conditions here). Basically:
- If you create software that uses GPL, you must license that software under GPL v3 (see GPL FAQ)
- If you create software that uses GPL, you must release your source code (see GPL FAQ)
- If you start with a GPL license, you cannot convert to another license
- You cannot include any part of OpenJudgeSystem in a closed source distribution under this license