softwareconstruction240 / autograder

Autograder for BYU's CS 240 Chess project
https://cs240.click
3 stars 2 forks source link

Fullstack: Allow Other Phase Config Values to be Edited Dynamically #413

Open frozenfrank opened 2 months ago

frozenfrank commented 2 months ago

This represents a smaller portion of Issue #156.

Overview

Good efforts have already been made to make the Canvas RubricIds, Rubric Points, and Canvas Course number configurable; however, this still represents only a small portion of the settings that need to be configured from time to time. Editing fields other than these require editing the code, rebuilding, and republishing the autograder which then has to restart before the patches are applied.

Current view of phase settings page:

image

Proposal

Include new data structures and fields to be able to remotely edit/configure all magic strings and numbers. Some of these should be housed in a database where we can configure them remotely, but some may only need to be configurable via command line prompts with the current values provided as defaults.

For most of these, implementation should require defining where the configurable value lives, and then reading from that location and falling back to the current value when it's not provided. For others, it may be preferable to require that values be provided and refuse to run otherwise.

Care should be taken to ensure that changes to the dynamic values will be caught quickly, as opposed to requiring an entire restart of the AutoGrader server. Since there is likely no system in place to automatically push remote changes onto the server, fetching the values for each submission is probably sufficient.

List of Identified Values

Phase Data

Other constants and variables

webecke commented 2 months ago

This will be a huge upgrade to the autograder to make it easier to use. Hopefully the config system will allow for easy update processing of config changes. Though I do wonder if it would make more sense to break this into a few separate issues, since a lot is going on here.