Containers module | Problems module | Compilers module | |
---|---|---|---|
All-round source code execution and skill assessment solution, capable of running any software stack in real-life scenarios | Skills assessment component, perfect for testing algorithmic skills in server-side programming languages and where accurate execution time measurement is required | Robust source code execution module with accurate execution time measurement | |
Is it good for: assessing programming skills? in education, recruitment, e-learning, onboarding, and competitive programming |
Yes | Yes | No |
Is it good for: executing source code? in interactive tutorials, coding playgrounds, and interactive documentation |
Yes | No | Yes |
Source code executed in a safe run-time environment (sandbox) | Yes | Yes | Yes |
High scalability for large events and traffic peaks |
Yes | Yes | Yes |
Supported technologies | |||
server-side/classical programming languages Python, Java, C#, C++ and others |
Yes | Yes | Yes |
front-end technologies JavaScript, React, HTML, CSS, and others |
Yes | No | No |
multi-stack applications, e.g., Node.js+React+MySQL |
Yes | No | No |
data science and machine learning Pandas, TensorFlow, Jupyter Notebook, etc. |
Yes | No | No |
mobile technologies Flutter, React Native, and others |
Yes | No | No |
databases MySQL, MongoDB, etc. |
Yes | Yes (SQLite) | Yes (SQLite) |
tools, e.g., git |
Yes | No | No |
Managing technologies / programming languages | You control what technologies, dependencies, libraries, etc. are included in your project. | Programming languages are managed by the Sphere Engine Team. We can add or update languages and libraries on your request. | Programming languages are managed by the Sphere Engine Team. We can add or update languages and libraries on your request. |
How many technologies / programming languages are supported? | Unlimited. You can install any technology you need. Each project may contain different libraries and frameworks. | 80+. List of all supported programming languages: https://sphere-engine.com/supported-languages | 80+. List of all supported programming languages: https://sphere-engine.com/supported-languages |
Example content | Yes, multiple projects for dozens of technologies | Yes, multiple programming challenges, each compatible with all supported programming languages | Yes, example programs with I/O processing |
Is content cross-language compatible? i.e., is it possible to execute submissions written in different programming languages in the context of the same project / programming challenge? |
No. Projects are typically designed for specific technology stacks. | Yes. By default, all programming challenges can be used with any of the supported programming languages | - |
Content Management System | Yes (for managing projects) | Yes (for managing programming challenges / problems) | - |
General features | |||
Skill assessment / execution evaluation built-in features for testing programming skills |
Yes | Yes | No |
Batch (non-interactive) execution |
Yes via API and in the Workspace (Online IDE) |
Yes via API and in web widgets |
Yes via API and in web widgets |
Interactive execution, i.e., when the end-user can interact with the executed application via web browser, command line, etc. |
Yes in the Workspace (Online IDE) |
No | No |
Internet access does the executed application have access to the Internet |
Yes (can be disabled) | No | No |
Cost efficiency | High to very high | Very high | Very high |
Accuracy of the execution time measurement | Normal | High | High |
Multi-file submissions | Yes (API and Workspace) | Yes (API) | Yes (API) |
Multi-file content (projects / programming challenges) |
Yes 2 GB per project or more upon request |
Yes 20 MB per programming challenge (not counting in test cases) |
- |
Integration | |||
Integration via RESTful API | Yes | Yes | Yes |
Integration via web widget (with ready out-of-the-box end-user UI) |
Yes via workspaces: fully customizable online IDE supporting web, desktop, mobile and interactive applications |
Yes via configurable widgets with built-in programming skills verification |
Yes via configurable widgets with a coding playground |
JavaScript SDK for the web widget | Yes | Yes | Yes |
Content management via API API for managing projects (the Containers module) and programming challenges (the Problems module) |
Yes (coming soon) | Yes | - |
Webhooks | Yes | Yes | Yes |
Detailed execution workflow | |||
Key concepts |
|
|
|
Execution workflow: batch (non-interactive) mode |
|
|
|
Execution workflow: interactive mode |
|
- | - |
Skill assessment / execution evaluation logic |
The evaluation logic can be defined in the optional `test` stage.
The Containers module supports multiple types of evaluation logic and comes with
built-in tools supporting the content manager in implementing the testing process.
The most common evaluation scenarios are
|
The Problems module uses I/O-based evaluation. The evaluation is performed in two steps:
|
The Compilers module is designed for simple and robust source code execution and has no built-in skill assessment features. Suppose you're switching from your in-house compilator/checker, and you have evaluation logic already implemented in your system. In that case, you can use the Compilers module as a backend for executing end-users' source code. Note, however, that you will need to send input data and download output generated by the end-user's program individually for each submission. This can have an impact on the end-user's experience. For programming challenges with a large number of test cases or with large I/O data, we recommend using the Problems or Containers modules. |
Output |
Customizable:
|
|
|