Skip to content

How to assess a project

VirtualDiegox edited this page Dec 7, 2022 · 20 revisions

How to assess a project

Introduction

Project evaluation is possible throughout the project upload subproblem type. As well as code multiple languages subproblem it can be added to a specific task. It manages the same parameters such as time limit, memory limit, and output limit. Additionally, the grader tab allows to create the subproblem run file dynamically.

Project upload is supported for the following languages:

  • Java
  • C/C++
  • Python

Do not forget to select the multiple_languages container to be capable to judge projects with the languages mentioned above.

Upload a project

A .zip, .tar.gz or .tar.bz2 file must be submitted to assess a project and depending on the selected language there is a convention to submit a project onto the platform, these conventions are described for each language bellow:

Java

Submissions for projects written in Java are supported for 1.8 JDK versions. To submit a Java project, the zip or tar file containing a src folder and a lib folder must be provided.

  • src: this is the folder where all the written code must be located, this includes a Main.java file which starts the program execution.

  • lib: this is the folder where all the dependencies used must be located, this includes .jar files and .class files.

Note: Now you can compress a folder containing the src and lib folders, also, you can select src and lib folders and compress them into a .zip .tar file. See the picture below and download the Java example for a better understanding. Both ways are accepted.

C/C++

GCC and G++ 4.8.5 are already installed. To submit a C/C++ project, a zip file must be provided. This zip file must contain the source code and dependencies or a single folder with source code and dependencies inside, in the way the user likes, thus, a Makefile ( Go to How to create a Makefile) has to be submitted within the zip file. The makefile is in charge of compiling the project and execute it.

Download and see the C++ example for a better understanding.

Python 3

The only requirement is having a main.py script which would be the entry-point for the application. You can include as many folders and sub-folders as you need. However, that the main.py script must be put in the root of the compressed file, or inside a unique folder of the compressed file.

Python3 zip example

Remember that the zip file must contain directly the main.py file, or a single folder with the main.py file inside. That is to say that you have to be careful when you are compressing the folder. Be sure to compress the files inside the folder or the folder so that when INGInious decompress the file the file it has access to the elements of the project in both cases.

Correct ways

Clone this wiki locally