Add support for late submissions
daknob opened this issue · 10 comments
We could add support to turnin(1)
for late submissions that will notify the student the assignment is due but he can still turn in with a small penalty on the final grade. For example, add file DUE
when the assignment is due and from that point on alert all users turning in that n
days have passed since that and there will be let's say n*10 %
penalty on the final grade. The LOCK
file shall close the turnin just as it does now.
👍
It would also be nice if those submissions could be marked or placed in a different folder.
So, if the DUE
file is present in the folder, the program must check the configuration file. In the configuration file (LIMITS
). Inside, it must find:
daypenalty 10
weekendpenalty 5
That means, that for every week day the DUE
file is there, 10% of the final grade will be subtracted. For every weekend day, 5% of the final grade will be subtracted.
If these two options are not discovered in the file, the default values should be 10
for daypenalty
and 5
for weekendpenalty
.
The program must not allow negative grades (the total of all penalties should always be less than 100). If the homework about to be turned in has a penalty grater than 100, the user should not be able to turn in the homework.
All submissions on time must be in the folder on_time
while all the other submissions must be in the folder late
.
In every file name, in both folders, the program must also include the total grade subtraction, for example for on_time
is can be 0-subtraction
and for late
it can be 10-subtraction
or 15-subtraction
, etc.
The user must be notified by showing the contents of LATEMESSAGE
just like README
every time she is about to turn in a late submission.
The verify-turnin
script here must also be updated accordingly to work with the new changes. It should also display whether the submission was on-time or late. If it was submitted as late
, it should also show the penalty.
I would like to propose the inclusion of two new options in the LIMITS
file. Those are:
duedate 20150728 23:59
andlockdate 20150731 23:59
The purpose of these two options is to replace the DUE
and LOCK
files respectively. turnin
should check at turn in whether the duedate
is over (and calculate and print the penalty as above) and whether the lockdate
is over, which means that new turn ins are not accepted any more. This way I believe we keep it more simple.
Additionally, the names of the turned in archives should be formatted as <login>-<number of turn in>-<penalty>
, this way it is relatively simple to find all of a student's turn ins and check the penalty on each of them. In such a scenario folders on_time
and late
might be obsolete and a script could print the late submissions with the respective penalties by simply examining the filenames.
Any thoughts?
DISCLAIMER: This discussion is irrelevant of the bounty set on this issue. The bounty should be valid for both implementations of the initial description or any other we might come up with later.
To the best of my knowledge the issue that the bounty is on must close so I can mark this as done and pay him. But I'm not sure..
Of course I'm willing to pay the bounty since @ru108 did some good work!
You may close issue and reopen it late.
Re-opening until it gets merged into master.