working: corrTemplateValidate()
validation on settings and overall json done a 75% need more info about two or three points see corr_template_reader for more detail (todo flag)
update on validation
Full JSON template validation
Generate HTML form from JSON template
Validate ID (match against regex)
Client-side validation for grades
Keep MD5 sum of template file in records

Keeping an MD5 sum of the original template file used to generate the
HTML form in the database records will make it possible to warn the
user when the template has been modified after grading. This is
important since the template file is also used for automatic report
generation.

Also in this commit: use the course name as the MongoDB collection
name.
settings.grading.total may be an integer
Reversed com/sep rows
Also match against negative numbers
JSON template example
JavaScript -> master.js
HTML form generator can preload inputs with data
Do not use is_numeric() (works for strings)

PHP's is_numeric() will return true for a string representing a number,
but what we really want when calling this is is_float() or is_int().
A user function is created for this purpose.
Live client-side total on input blur
Take settings into account for client-side total

The setting "grading.allowOverflow" controls if the client-side
computed total may overflow (passed the total) and the new setting
"grading.allowUnderflow" allows it to go less than zero.
Grade report generator
Grade report formatting

Custom decimal separator and trailing zeroes trimming.
Add warning into insertion page if MongoDB is not running