You can study the Tutorial Example Assignment Configurations

And additional configuration examples are available.

Each assignment configuration will have a top level directory with a config.json file. Here is the general structure of a homework configuration directory:

   computer_science_1
   └── my_python_homework
       ├── config.json                   [ REQUIRED ]
       ├── provided_code                 [ OPTIONAL ]
       |   └── instructor_code.cpp
       |   └── instructor_code.h
       ├── test_input                    [ OPTIONAL ]
       │   └── input_1.txt
       │   └── input_2.txt
       │   └── input_3.txt
       ├── test_output                   [ OPTIONAL ]
       │   └── output_1.txt
       │   └── output_txt
       │   └── output_3.txt
       ├── instructor_CMakeLists.txt     [ OPTIONAL ]
       └── custom_validation_code        [ OPTIONAL ]
           └── grader.cpp
           └── grader.h
           └── another_file.cpp

Automatically Generated Submission Limit Test Case

Students are allowed to resubmit if they discover an error. And students should be able to submit partial work early and verify they are on the right track.

However, we assume that students will do the bulk of their development, testing, and debugging on a local machine. To prevent overuse of limited resources, Submitty adds a test case that adds a small 1/10th of a point penalty for each submission over 20 submissions. Note that autograding totals round down to the nearest integer.

        {
            "title": "Submission Limit",
            "type": "FileCheck",
            "max_submissions": 20,
            "penalty": -0.1,
            "points": -5
        }

You may adjust this limit by pasting this syntax into your config.json and adjusting the parameters. The student is allowed max_submissions penalty-free submissions. After that, they will be charged penalty points per additional submission. The maximum penalty is set with the points parameter. For example:

Hidden Test Case configuration with customized Submission Limit

Note, you can view the defaults added to your config file by viewing:

   /var/local/submitty/courses/<SEMESTER>/<COURSE>/config/complete_config/complete_config_<GRADEABLE>.json