Skip to content

Add functionality for 'Included Files' from the Kattis 2023-07-draft package format. #3006

Open
@NathanJCrozier

Description

@NathanJCrozier

Description of the enhancement request

In the newest version of the Kattis problem package format, there is a directory where 'included files' can be provided (i.e. problem/include/default or problem/include/language/). It would be great for this to be implemented in DOMjudge to allow problems with extra files which cannot be seen by contest participants without the need to manipulate compile scripts.

The goal you want to achieve

I would like to create a problem which involves providing contestants with some boilerplate code in the form of a class + functions that they will fill out/implement. I then want to run their code with a driver/main function that I provide which will test their implementation of the class/functions. The contestants should be unable to see the driver that I provide to prevent them from reading/using it to adjust their function implementations.

Expected behaviour

When building/adding a problem through the web interface, there would be an extra field under 'Contests' or 'Attachments' named 'Included Files'. Much like attachments, I would be able to browse my device for one or many file(s) and add them. These files would then be included with all submissions to this problem during compile time (just as if a contestant provided multiple files during submission) and could then be used later when judging the submission(s). For example, a driver file as mentioned earlier or a text file which is read from and manipulated by the contestant's code.

Any other information that you want to share?

Here is an example of how it might look.
Image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions