In the summer of 2022, I spent the first month learning the design and structure of submitty as well as the basics of languages such as PHP and JavaScript to get myself started. Then, for the rest of the summer, as I became more familiar with Submitty and I worked mainly on improving various aspects of PDF functionalities in the grading interface, especially in PDF annotation. I also spent a significant amount of time working on the expected string feature, which allows the usage of “expected_string” on assignment configurations.

PDF annotation

PDF annotation is a feature that allows graders to make custom marks over submitted PDF files during grading. Some of the work I did regarding PDF annotation consisted of:

Expected String

When creating a new gradeable, instructor users need to specify the full path to the auto-grading configuration config.json file, where they can only set answers by giving a file and using the “expected_file” option. Therefore, I provided an alternative usage of “expected_string” so that instructor users can enter the solutions in a string format. In addition to the feature, I added samples and automatic testing cases. The implementation is based on Eddie Krystowski’s previous work.

Smaller Tasks

Here are some smaller front-end oriented tasks I worked on this summer:

Future Work

In my work to add the expected string functionality, I noticed that the code responsible for creating the diff-view for the expected and actual solution locates mainly inside a custom class called DiffViewer. Since the code was written long ago and the implementation is rather lengthy, I believe it is best to refactor the functionality using CodeMirror entirely. Even though I am unlikely to finish the work this summer, I plan to continue working on the diff-view refactoring as I transition into the coming fall semester. In particular, future works are needed in the following general areas: