The (aspirational) foundation of CS at WCU!

Manual Scoring and Example Submissions #77

Open bwc9876.dev
targeting ben/assignment-api from ben/manual-scores
Open opened by and assigned to bwc9876.dev
targeting ben/assignment-api from ben/manual-scores

Adds the manual_score option to manifest TOML, when set makes a manual review (WIP) by the professor required for a final score.

The assignment creation logic now expects the assignment ZIP to have a .example-submission directory. The files in this directory are an example student submission that should pass all test cases. The logic replaces files in the root dir with files in the .example-submission directory and then submits that ZIP to the runner and makes sure all test cases pass. The CLI should at some point add a test subcommand that does similar logic but runs the test cases against the example submission locally.

Finally, this PR makes some changes to the API for assignments and adds some shared logic for calculating final scores, etc. I have edited the CLI to use the shared logic too.

Commits 4

assignments,db,cli: add manual_score options to assignments
assignments: use enclosed_name for ZIP handling
assignments: add example submission check
assignments: use saturating logic for summing scores