zakkak/turnin

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.

Implementing this comes with a monetary reward:

Bountysource

If you fix this and match this specification, you are eligible for reward.
If you want this fixed, you can add more money to the pool.

ru108 commented

See #31

I would like to propose the inclusion of two new options in the LIMITS file. Those are:

  1. duedate 20150728 23:59
    and
  2. lockdate 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.

4afc474 (#33) implements this feature, but I plan to keep this issue open until it gets merged into master. I believe @ru108 should be awarded the bounty.

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!

ru108 commented

You may close issue and reopen it late.

The Bounty has been awarded to @ru108 for his amazing work.

Re-opening until it gets merged into master.