You should always plan to finish (implementation AND testing AND documentation)
a project one week before the due date ...
What if the internet does not work the due day ?
What if you get ill the day before ?
What if your hard drive crash the antepenultimate day ?
What if there is no text editor available in the lab ?
What if you first have to the learn the language before beginning the assignment
?
What if you decide to begin the testing step of your project 2 hours before
the due time, and that eventually a major bug appears ?
What if you decide to post your project at 23H59mn500ms and you forgot than
the "client" mailbox could be more than 500ms away from your mail
tool ? or perhaps is full ?
What if you are so used to program at night that you forgot that midnight
isn't in fact midday ?
What if by the end, you get so tired that you send the wrong version ?
What if the last video data projector get stolen the day before your presentation
?
What is one member of your team decide to resign right in the middle of the
project ?
What if the computer you had planed to work on is not available ?
What if your first child made her first teeth the week before ?
What if your third great mother die this year ?
What if ...
You should had planed something for each situation ...
At least ... you should try to negotiate : keep your client informed
And how much does it cost ?
1500$/day ... 10% a day for late penalties and one or two bonus point