Skip to content

hmrockstar/judge0

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

judge0

Code Climate Test Coverage Build Status Hex.pm

Judge0 is an open source online judge API for code compilation and execution on given test data. It provides extensive documentation for developing, configuring and hosting your own instance with ease. Currently supports 16 compilers and interpreters, and more of them can be added easly. It's powered by Rails, you can use Docker in both development and production environment, and every untrusted code you run is sandboxed using isolate.

Content

  1. Project Organization
  2. Project Goals
  3. Future Plans
  4. Host Your judge0
  5. Contributing

Project Organization

Project is organized in three major components:

judge0-base represents base Docker image on which judge0-api will be build. It installs different compilers, interpreters and sandbox environment which are necessary for judge0-api.

judge0-api is core logic of judge0 which accepts requests, creates background jobs and runs untrusted programs in sandboxed environment.

judge0-demo represents static demo web page located at www.judge0.com. It is irrelevant if you want to host your own judge0, but it is useful when developing judge0 because it provides simple interface for running untrusted code.

Project Goals

My goal is to create configurable, robust, easy to use and fully documented online judge API service which can be used and hosted by anyone for free, and I was motivated to start this project when I saw Sphere Engine.

In the future I would like to build full online judge service which will enable anybody to host their own competition, or it can be used by schools and universities for educational purposes, e.q. writing exams or solving programming exercises.

Host Your judge0

Hosting your judge0 is easy thanks to Docker and Docker Compose. Minimal setup for hosting your judge0 is described here here

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

Open source online judge API for code compilation and execution on given test data.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 77.7%
  • HTML 9.6%
  • Ruby 8.0%
  • CSS 4.7%